Ответ
Стек на текущем проекте:
- Язык: 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))
}
}
}