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

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

FlexiHunt XT01 • Android Developer • Onsite Quận 2

Bảng điều khiển ôn phỏng vấn Android cho mục tiêu sẵn sàng nhất có thể.

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% sẵn sàng P0

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.

P0

Kotlin core

Nền tảng để code sạch và trả lời các câu hỏi cốt lõi.

P0

MVVM + Jetpack

Trục chính của JD: ViewModel, StateFlow/LiveData, Navigation, Repository.

P0

Coroutines + Flow

Phần có xác suất bị hỏi cao nhất sau MVVM.

AI

AI/spec-driven workflow

Điểm khác biệt: biết dùng AI có kỷ luật, có spec, review và test.

Minh họa MVVM

Luồng giải thích nên nói trong phỏng vấn

Đi từ UI đến data source, rồi quay về UiState. Đây là trục chính để trả lời MVVM, Flow và API.

1

UI Layer

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.

2

ViewModel

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.

3

Repository

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.

4

Remote / Local

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.

5

UiState

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

Mỗi yêu cầu đều gắn với một mục ôn tập

Học theo JD để không lan man: ưu tiên P0 trước, sau đó mới mở rộng sang P1/P2.

Kotlin là ngôn ngữ chính
P0

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.

Hiểu rõ MVVM và Jetpack components
P0

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.

Thành thạo Coroutines và Flow
P0

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.

Làm việc với RESTful API
P0

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.

Xây UI bằng XML hoặc Jetpack Compose
P0

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.

Testing, code review, deployment
P1

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.

Tối ưu hiệu năng và responsiveness
P1

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.

Firebase hoặc Google Analytics
P2

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.

Đang làm
Phase 1 - Nền tảng dashboard

Tạo app shell, dashboard, JD match, sơ đồ MVVM và progress store.

  • Dark UI
  • Sidebar collapse
  • Architecture map
  • JD matrix
  • Progress localStorage
Tiếp theo
Phase 2 - Tracks và 21 ngày

Chia P0/P1/P2/AI và lộ trình học theo ngày dựa trên chat.txt.

  • Checklist theo track
  • Roadmap 21 ngày
  • Expandable topic cards
Sắp tới
Phase 3 - Câu hỏi và deep topics

Flashcards, đáp án mẫu và trang đào sâu từng chủ đề.

  • Question filters
  • Answer reveal
  • Topic pages
Sắp tới
Phase 4 - Mini project và AI edge

Project blueprint, feature spec, test cases và câu trả lời AI workflow.

  • Project spec
  • Architecture pitch
  • AI answer models