Bảng Điều Khiển Ôn Phỏng Vấn Android

Kotlin • MVVM • Flow • REST API • Compose • Testing

Lộ trình 21 ngày

Ba tuần ôn tập bám sát ưu tiên của JD

Tuần 1 xây nền tảng, tuần 2 làm app demo, tuần 3 luyện phỏng vấn. Mỗi ngày có việc cần làm và output cụ thể để bạn biết mình đã tiến tới đâu. P0 luôn đi trước, đừng sa đà P1/P2 khi lõi chưa chắc.

Nếu chỉ còn 7 ngày, học theo thứ tự này

  1. 1Kotlin core
  2. 2MVVM + ViewModel + Repository
  3. 3Coroutines + StateFlow
  4. 4REST API + error handling
  5. 5Compose basics hoặc XML RecyclerView
  6. 6Android lifecycle
  7. 7Git + testing cơ bản
1

Tuần 1

Nền tảng sống còn

Giải thích được app flow từ UI → ViewModel → Repository → API.

Ngày 1-2

Kotlin core

  • Ôn null-safety, data/sealed class, collection, scope function.
  • Viết lại các model UI state bằng sealed class/interface.

Output: Bộ UiState mẫu bằng sealed interface (Loading/Success/Error).

Ngày 3

Android lifecycle

  • Vẽ lifecycle Activity/Fragment.
  • Giải thích configuration change và ViewModel sống qua rotate.

Output: Sơ đồ lifecycle tự vẽ và phần giải thích ngắn.

Ngày 4-5

MVVM

  • Tạo project nhỏ có ViewModel + Repository + UiState.

Output: Skeleton project MVVM chạy được.

Ngày 6-7

Coroutines

  • Gọi fake API bằng suspend function.
  • Handle loading/error bằng StateFlow.

Output: ViewModel expose StateFlow<UiState> với đủ 3 state.

2

Tuần 2

Làm app thật nhỏ

Có app demo chạy được với API, UI state và navigation.

Ngày 8-9

REST API

  • Dùng Retrofit/OkHttp gọi API, parse JSON.
  • Handle status code và error body.

Output: Repository gọi API thật và map DTO sang model.

Ngày 10-11

Compose hoặc XML

  • Compose: list screen / detail / loading / error.
  • XML: RecyclerView + ViewBinding + detail screen.

Output: List + detail screen có đủ loading/error/empty.

Ngày 12

Navigation

  • List → Detail, truyền id, quản lý back stack.

Output: Điều hướng list-detail hoạt động đúng.

Ngày 13

Error handling

  • Xử lý mất mạng, API lỗi và empty state.

Output: Màn hình error có nút retry và empty state rõ ràng.

Ngày 14

Refactor

  • Tách package rõ ràng, đặt tên tốt, bỏ code thừa.

Output: Codebase gọn, chia layer data/domain/ui.

3

Tuần 3

Chuẩn bị phỏng vấn

Trả lời trôi chảy toàn bộ câu hỏi và sẵn sàng mock interview.

Ngày 15-16

Compose sâu hơn

  • State hoisting, remember, LaunchedEffect, recomposition.

Output: Nói được cách Compose render theo state và tránh side-effect.

Ngày 17

Testing

  • Viết 2-3 unit test cho ViewModel.

Output: Test Success/Empty/Error cho ViewModel.

Ngày 18

Firebase / Analytics

  • Biết cách log event: screen view, item click, search.

Output: Ví dụ log event đúng mục đích, không dính PII.

Ngày 19

Performance / debug

  • Ôn ANR, memory leak, main thread, profiler/logcat.

Output: Quy trình debug lag/crash rõ ràng.

Ngày 20

Git / code review

  • Chuẩn bị nói về branch, PR, conflict, clean commit.

Output: Câu chuyện teamwork qua Git mạch lạc.

Ngày 21

Mock interview

  • Tự trả lời toàn bộ câu hỏi bằng giọng nói, không chỉ đọc thầm.

Output: Một lượt mock phỏng vấn hoàn chỉnh.