Какой стек выберешь для разработки проекта с нуля

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

Ответ

Kotlin + Jetpack Compose для UI, так как это современный декларативный подход от Google.

Архитектура: Clean Architecture + MVVM (ViewModel + Flow) для разделения слоёв и реактивности.

Сетевые запросы: Retrofit + Kotlin Serialization для API, OkHttp с логгированием.

Локальное хранилище: Room + DataStore (для SharedPreferences).

DI: Hilt – упрощает внедрение зависимостей.

Тестирование: JUnit, MockK, Espresso (UI-тесты).

Дополнительно:

  • Coil для загрузки изображений
  • Coroutines для асинхронности
  • Timber для логов

Пример DI модуля:

@Module
@InstallIn(SingletonComponent::class)
object AppModule {
    @Provides
    fun provideApi(): MyApi = Retrofit.Builder()
        .baseUrl("https://api.example.com/")
        .addConverterFactory(Json.asConverterFactory("application/json".toMediaType()))
        .build()
        .create(MyApi::class.java)
}