Bảng Điều Khiển Ôn Phỏng Vấn Android
Kotlin • MVVM • Flow • REST API • Compose • Testing
Về Lộ trình kiến thức0/6
P0 - Bắt buộc vững
MVVM + Jetpack
Trục chính của JD. Bạn cần vẽ và giải thích được luồng UI → ViewModel → Repository → data source, với UiState rõ ràng.
Khái niệm chính
- UI chỉ observe state và gửi event; không chứa business/data logic.
- ViewModel giữ state, gọi Repository, sống qua configuration change.
- Repository là ranh giới data, map DTO sang domain/UI model.
- One-shot event dùng SharedFlow/Channel để không phát lại khi xoay.
Luồng MVVM
Screen / Composable
-> event -> ViewModel
-> Repository
-> Remote API / Local DB
-> UiState: Loading / Success / Empty / ErrorChecklist
Tick những gì bạn đã nắm chắc
Lỗi thường gặp
- •UI gọi thẳng API/DAO thay vì đi qua ViewModel + Repository.
- •Giữ Context/View trong ViewModel làm khó test và gây leak.
- •Dùng StateFlow cho one-shot event khiến snackbar/navigate lặp lại khi xoay màn hình.
Câu trả lời mẫu
Em tách UI khỏi business logic: UI chỉ observe state từ ViewModel và gửi event; ViewModel gọi Repository lấy data rồi expose `StateFlow<UiState>`. One-shot event như navigate/snackbar em dùng SharedFlow hoặc Channel để không bị phát lại.
Câu hỏi liên quan