Ответ
- Kotlin/Java: Глубокое знание языков, включая корутины, Flow, расширенные возможности ООП.
- Jetpack Components: Опыт с ViewModel, Room, Navigation, Compose, WorkManager.
- Архитектура: Чистая архитектура, MVVM, MVP, понимание SOLID, DI (Dagger/Hilt).
- Multithreading: Работа с потоками (Coroutines, RxJava), избегание утечек памяти.
- UI/UX: Кастомные вью, анимации, адаптация под разные экраны, Material Design.
- API/Networking: Retrofit, OkHttp, WebSockets, GraphQL, обработка ошибок.
- Тестирование: Unit/UI тесты (JUnit, Espresso, Mockito), TDD/BDD подходы.
Пример:
@HiltViewModel
class UserViewModel @Inject constructor(
private val repo: UserRepository
) : ViewModel() {
val users = repo.getUsers().flowOn(Dispatchers.IO).stateIn(viewModelScope, SharingStarted.Lazily, emptyList())
}