Kotlin core
Nền tảng để code sạch và trả lời các câu hỏi cốt lõi.
Bảng Điều Khiển Ôn Phỏng Vấn Android
Kotlin • MVVM • Flow • REST API • Compose • Testing
Portal này biến JD và đoạn chat ôn tập của bạn thành hệ thống học có thứ tự: Kotlin, MVVM, Coroutines/Flow, REST API, UI XML/Compose, testing, performance và AI workflow.
Công ty
FlexiHunt XT01
Vị trí
Android Developer
Địa điểm
Quận 2, TP.HCM - Onsite
Lương tối đa
45.000.000 VND
Readiness tracker
0/48 mục P0 đã nắm chắc. Tiến độ được lưu trên trình duyệt và đồng bộ với trang Lộ trình kiến thức.
Nền tảng để code sạch và trả lời các câu hỏi cốt lõi.
Trục chính của JD: ViewModel, StateFlow/LiveData, Navigation, Repository.
Phần có xác suất bị hỏi cao nhất sau MVVM.
Điểm khác biệt: biết dùng AI có kỷ luật, có spec, review và test.
Minh họa MVVM
Đi từ UI đến data source, rồi quay về UiState. Đây là trục chính để trả lời MVVM, Flow và API.
Activity, Fragment, XML, Compose
Chỉ render state và gửi user event. UI không gọi API, DAO hoặc xử lý business logic nặng.
UI observe StateFlow từ ViewModel và render Loading, Success, Empty, Error.
State holder + presentation logic
Giữ UI state, xử lý action từ UI, gọi use case hoặc repository, sống qua configuration change.
ViewModel không giữ Activity Context để tránh leak và dễ test hơn.
Data boundary
Ẩn chi tiết API/local cache, map DTO sang model dùng cho app, quyết định data source.
Repository giúp UI/ViewModel không phụ thuộc trực tiếp Retrofit hay Room.
REST API, Room, DataStore
Thực hiện IO, network, database, preference. Lỗi và response cần được chuẩn hóa.
Data layer xử lý API error, timeout, cache và mapping trước khi trả về domain/UI.
Loading, Success, Empty, Error
State rõ ràng giúp UI dễ render, dễ test, dễ review và ít case bị bỏ sót.
Model UI bằng sealed class/interface để compiler bắt xử lý đủ state.
JD match
Học theo JD để không lan man: ưu tiên P0 trước, sau đó mới mở rộng sang P1/P2.
Null-safety, data/sealed class, extension, collections, clean code.
Interviewer muốn thấy: Giải thích được vì sao Kotlin giảm crash và viết state model gọn.
Mục tiêu: Tự viết được ViewModel state và mapping data không dùng `!!` bừa bãi.
ViewModel, Repository, UI state, one-shot event, Navigation.
Interviewer muốn thấy: Vẽ được luồng UI -> ViewModel -> Repository -> Data source.
Mục tiêu: Trả lời chắc vì sao UI không gọi API trực tiếp.
viewModelScope, Dispatchers, cancellation, StateFlow, SharedFlow.
Interviewer muốn thấy: Phân biệt suspend function, Flow, StateFlow và SharedFlow.
Mục tiêu: Handle loading/success/error bằng StateFlow đúng lifecycle.
HTTP method, status code, DTO mapping, interceptor, timeout, retry.
Interviewer muốn thấy: Biết xử lý 401/403/500, empty state, slow network và error body.
Mục tiêu: Thiết kế Repository gọi API và map DTO sang domain/UI model.
ConstraintLayout/RecyclerView/ViewBinding và Compose state/recomposition.
Interviewer muốn thấy: Không gọi API trong Composable body, biết state hoisting.
Mục tiêu: Làm được list/detail screen có loading/error/empty state.
Unit test ViewModel, fake repository, Gradle, Git, PR review.
Interviewer muốn thấy: Nói được cách test state transition và review code AI-generated.
Mục tiêu: Có 2-3 test case ViewModel trong mini project.
Main thread, ANR, memory leak, list performance, profiler, recomposition.
Interviewer muốn thấy: Có quy trình debug lag/crash/ANR thay vì đoán mò.
Mục tiêu: Giải thích được cách điều tra scroll lag và network chậm.
Crashlytics, Analytics event, Remote Config concept, privacy khi log.
Interviewer muốn thấy: Biết log event đúng mục đích, không đưa PII/secrets vào logs.
Mục tiêu: Nói được vì sao analytics giúp cải tiến sản phẩm.
Tạo app shell, dashboard, JD match, sơ đồ MVVM và progress store.
Chia P0/P1/P2/AI và lộ trình học theo ngày dựa trên chat.txt.
Flashcards, đáp án mẫu và trang đào sâu từng chủ đề.
Project blueprint, feature spec, test cases và câu trả lời AI workflow.