Dan Tech Academy

Mobile Action Pro Update: Tích hợp Gemini AI, Firebase Services & Nhiều cải tiến mới

Cập nhật lớn cho codebase khóa học Mobile Action Pro — Gemini 2.0 Flash làm backend cho AI Assistant, Firebase Analytics & Remote Config, dialog AI được thiết kế lại, hệ thống thông báo overlay, và tái cấu trúc kiến trúc với provider pattern.

Dan TechDan TechSoftware Engineer, Weight Lifter6 phút đọcCập nhật 23/06/2026

Tổng quan

Codebase khóa học Mobile Action Pro vừa nhận được một bản cập nhật quan trọng. Bản phát hành này giới thiệu Gemini AI làm backend cho lifeline AI Assistant, thêm Firebase Analytics và Remote Config, thiết kế lại trải nghiệm dialog AI, và áp dụng nhiều cải tiến kiến trúc giúp codebase sạch hơn và dễ test hơn.

Dưới đây là toàn bộ những thay đổi.


Tính năng mới

Tích hợp Gemini AI

Lifeline AI Assistant giờ đây sử dụng Gemini AI Model làm backend, kết nối thông qua Ktor REST client.

Kiến trúc tuân theo provider-based pattern với hai implementation:

  • GeminiHintProvider — gọi Gemini API để cung cấp gợi ý thông minh, phù hợp với ngữ cảnh
  • LocalHintProvider — cung cấp gợi ý được định nghĩa sẵn làm phương án dự phòng khi API không khả dụng

Hệ thống tự động fallback sang local provider nếu request Gemini thất bại, đảm bảo trải nghiệm người dùng luôn mượt mà bất kể điều kiện mạng.

Mỗi request AI đều theo dõi metadata sử dụng token (input tokens, output tokens, total tokens) để giám sát mức tiêu thụ.

Điểm tin cậy AI (confidence score) được tính toán bởi provider và truyền đến UI, giúp user biết được mức độ chắc chắn của AI về gợi ý đưa ra.

Prompt engineering đóng vai trò quan trọng — hệ thống gửi toàn bộ ngữ cảnh câu hỏi, các lựa chọn có sẵn, và các tham số có thể cấu hình để tạo ra gợi ý chính xác, mang tính giáo dục thay vì đưa ra đáp án trực tiếp.

Firebase Services

Hai dịch vụ Firebase được thêm vào dự án:

Firebase Analytics theo dõi các sự kiện người dùng quan trọng trong luồng quiz game:

  • game_started — khi một phiên quiz bắt đầu
  • game_completed — khi người chơi hoàn thành tất cả câu hỏi
  • answer_submitted — mỗi lần trả lời kèm metadata đúng/sai
  • lifeline_used — khi AI Assistant hoặc các lifeline khác được kích hoạt
  • sign_in / sign_out — sự kiện xác thực

Firebase Remote Config điều khiển các giá trị cấu hình mà không cần cập nhật app:

  • Tham số Gemini: tên model, temperature, max tokens, số lần retry, và API key
  • Cấu hình game: thời gian đếm ngược, mức độ khó, số lượng câu hỏi

Tất cả giá trị cấu hình game được gộp vào một JSON object duy nhất trong Remote Config, parse thành GameConfig data class sử dụng kotlinx.serialization. Điều này có nghĩa là bạn có thể tinh chỉnh trải nghiệm game từ Firebase console — không cần build mới.

Thiết kế lại Dialog AI Assistant

Dialog AI Assistant được cải tiến toàn diện cả về giao diện lẫn chức năng:

  • Loading states với animation trong khi request AI đang xử lý
  • Error handling với thông báo thân thiện khi request thất bại
  • Button bị disable trong lúc loading để ngăn double-tap
  • Timer tạm dừng trong khi chờ phản hồi AI, để học viên không bị phạt thời gian do độ trễ mạng

Hệ thống UI Overlay

OverlayQueueManager mới quản lý thông báo và cảnh báo trong game. Thay vì chồng chất nhiều dialog hoặc toast, các thông báo được xếp hàng và hiển thị tuần tự, mang lại trải nghiệm người dùng sạch sẽ hơn trong quá trình chơi.

Mã hóa Secret đa nền tảng

Các script mã hóa secret giờ đây hỗ trợ Windows bên cạnh macOS và Linux. Điều này đảm bảo tất cả thành viên trong team có thể encode và decode secret bất kể môi trường phát triển.


Cải tiến & Tái cấu trúc

Provider Pattern

Service AI hint được tách thành interface AIHintProvider rõ ràng với hai implementation: GeminiHintProviderLocalHintProvider. Sự tách biệt này giúp mỗi provider có thể test độc lập và dễ dàng hoán đổi.

Dọn dẹp Dependency Injection

Các Koin qualifier dạng string được thay thế bằng enum AIHintProviderType, giúp cấu hình DI an toàn về kiểu dữ liệu và ít lỗi hơn.

Dispatcher Injection

Gemini provider giờ nhận coroutine dispatcher qua constructor injection thay vì hardcode Dispatchers.IO. Điều này rất quan trọng cho unit testing — test có thể inject UnconfinedTestDispatcher để thực thi xác định.

Di chuyển API Key

Gemini API key được chuyển từ NDK native secrets (biên dịch vào binary) sang Firebase Remote Config. Điều này giúp key:

  • Có thể xoay (rotatable) — thay đổi từ Firebase console mà không cần phát hành app mới
  • An toàn hơn — không nhúng trong APK nơi có thể bị trích xuất

Gộp cấu hình

Các key Remote Config rời rạc được gộp thành JSON object đơn nhất:

  • GeminiConfig — tất cả tham số liên quan Gemini ở một nơi
  • GameConfig — tất cả cài đặt liên quan game ở một nơi

Điều này giảm số lần fetch Remote Config và giữ các cài đặt liên quan ở cùng một chỗ.

Nâng cấp RemoteConfigManager

RemoteConfigManager được nâng cấp sử dụng suspend functions thay vì API dựa trên callback, với dependency injection phù hợp và instance kotlinx.serialization.Json dùng chung để parse nhất quán trong toàn app.


Sửa lỗi

  • Nút AI Assistant: Bị disable trong lúc loading để ngăn double-tap; timer tạm dừng khi chờ phản hồi AI
  • JNI secrets: Mã hóa lại với XOR key mới sau khi pipeline thay đổi để sửa lỗi giải mã

Ý nghĩa cho học viên

Những thay đổi này biến codebase Mobile Action Pro thành tài liệu học tập tốt hơn:

  1. Kiến trúc thực tế — Provider pattern, DI với enum, và dispatcher injection là những pattern bạn sẽ sử dụng trong mobile app production
  2. Tích hợp Firebase — Học cách sử dụng Analytics và Remote Config trong dự án thực tế, không chỉ trong tutorial
  3. Tích hợp AI — Xem cách tích hợp large language model vào mobile app với error handling và chiến lược fallback phù hợp
  4. Khả năng test — Mọi quyết định refactoring đều được đưa ra với testability trong tâm trí

Nếu bạn đang theo học khóa học, hãy pull codebase mới nhất và khám phá các thay đổi. Nếu bạn chưa bắt đầu, bây giờ là thời điểm tuyệt vời — codebase sạch hơn và mang tính giáo dục hơn bao giờ hết.

Course

Sẵn sàng xây dựng mobile app thực tế?

Khóa học Mobile Action Pro dạy bạn workflow build mobile app đa nền tảng với nền tảng Kotlin, Clean Architecture, AI-assisted delivery và nhiều hơn nữa — tất cả qua các dự án thực tế.

  • 9 module, 108 bài học thực hành
  • Kotlin foundations, MVVM, DI
  • Dự án quiz game tích hợp AI
  • Truy cập trọn đời & hỗ trợ cộng đồng
Khám phá Mobile Action Pro

Happy coding!

Đọc blog thì vui. Đi theo lộ trình thì đến đích.

Kotlin Android Roadmap sắp xếp các bài Android Mastery, OOP và Design Patterns thành 5 cấp độ - từ dòng Kotlin đầu tiên đến app lên store.

Kèm bài viết mới mỗi tuần. Huỷ bất cứ lúc nào.