В чем разница между фреймворком и библиотекой

«В чем разница между фреймворком и библиотекой» — вопрос из категории Архитектура, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Фреймворк задает структуру приложения и контролирует поток выполнения, требуя от разработчика следования его правилам (инверсия управления). Библиотека — это набор готовых функций/классов, которые разработчик вызывает по мере необходимости.

Пример:

  • Библиотека (Retrofit):
val retrofit = Retrofit.Builder().baseUrl("https://api.example.com").build()
val service = retrofit.create(ApiService::class.java) // Вызов по требованию
  • Фреймворк (Android SDK):
    Жизненный цикл Activity (onCreate(), onStart()) управляется системой, а не разработчиком.

👉 Фреймворк — «скелет», библиотека — «инструмент в руках».