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ức
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 / Error

Checklist

Tick những gì bạn đã nắm chắc

0/6

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

Tự luyện trước khi phỏng vấn