Какой стек на текущем проекте

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

Ответ

Стек на текущем проекте:

  • Язык: Kotlin (100% кода)
  • Архитектура: Clean Architecture + MVVM
  • DI: Hilt
  • Async: Coroutines + Flow
  • Сеть: Retrofit + OkHttp + Moshi
  • Локальное хранилище: Room + DataStore
  • UI: Jetpack Compose + Material 3
  • Тестирование: JUnit, MockK, Espresso
  • CI/CD: GitHub Actions + Firebase App Distribution

Пример слоя данных:

@HiltViewModel
class UserViewModel @Inject constructor(
    private val getUserUseCase: GetUserUseCase
) : ViewModel() {
    private val _userState = MutableStateFlow<UserState>(UserState.Loading)
    val userState: StateFlow<UserState> = _userState

    fun loadUser(userId: String) {
        viewModelScope.launch {
            _userState.value = UserState.Success(getUserUseCase(userId))
        }
    }
}