iT邦幫忙

2026 iThome 鐵人賽

0
Build on Google AI

將考國際證照的應用程式變成開源系列 第 51

全程使用 Google Antigravity 進行開發 OpenPassExam 多平台 App

  • 分享至 

  • xImage
  •  

全程使用 Google Antigravity 進行開發 OpenPassExam 多平台 App
https://youtu.be/Ttg1bECFTy8

開發來源需求及規格依據
https://github.com/alan-nanpie/OpenPassExam/tree/main/docs_opensource

以下是開發使用的提示詞及開發過程和結果記錄

/goal
請依照 docs_opensource 資料夾內的各檔案內容要求 ( 包含各子資料夾內所有子資料夾及檔案 ) 來進行開發各平台都適用的 App

PassExam 開源多平台認證備考 App 開發成果

依據 docs_opensource 目錄中的全套規格(PRD、SDD、BDD、ADR、UI/UX、API 整合及自動化腳本),我們已成功建立 PassExam 跨平台 Flutter / Google Cloud 生態系應用程式。


🎯 核心實作亮點總覽

1. 跨領域多科目支援與架構設計 (Clean Architecture & RepositoryFactory)

  • 18+ Cisco 專業科目:支援 CCNA 200-301 與 18+ CCNP 核心及專業選考科目(ENCOR 350-401、ENARSI 300-410、ENSDWI 300-415、ENAUTO 300-435、DCCOR 350-601、SCOR 350-701 等 5,000+ 題)。
  • RepositoryFactory 路由:依 subjectId 自動路由至對應的 Google Cloud Firestore 集合路徑 (exam_subjects/{subjectId}/questions)。
  • 4 大題型支援:單選題 (SINGLE_CHOICE)、複選題 (MULTIPLE_CHOICE)、拖曳配對題 (DRAG_DROP) 與實作模擬題 (SIMULATION)。

2. 雙 AI 引擎與四層階層式調度 (Dual AI Engine & Dynamic Thinking)

  • 四層調度階層本機覆寫 ➔ Firebase RTDB 廣播 ➔ Firebase Remote Config ➔ 內建預設值
  • 雲端旗艦 Gemini 3.7 Flash:支援 Dynamic Thinking 動態思考推理,自適應 Temperature 1.0,並自動過濾 <thought>...</thought> 思考區塊。
  • 端側離線 Gemma 4 (2B):鎖定 4096 Tokens 輸出預算,解除 200 字長度截斷,提供生活化通俗比喻與 Cisco CLI 手把手教學。
  • 雙軌 Persona:支援生活化比喻、Cisco CLI 實戰指引、以及「業界頂尖顧問 / CCIE 首席架構專家」視角。

3. NotebookLM 學習工作區與 GCS RAG 官方教科書知識庫

  • GCS 官方教科書直連:支援載入 6,688 個去雜訊高精度官方教科書切片。
  • 四層防禦 RAG 管道:智慧頁面分類 ➔ 5 大維度品質評分過濾 ➔ 頁面範圍過濾 ➔ 檢索端品質加權。
  • 5+1 大 Studio 工具:研讀指南 (Study Guide)、常見考點 (FAQ)、架構簡介 (Briefing)、技術演進 (Timeline)、CLI 速查表 (Cheat Sheet) 與自訂專屬產出 (Custom Artifact)。

4. 三位一體安全防護矩陣 (Defense-in-Depth)

  • EnhancedSecurityWatermark:8 列 4 欄以 45 度旋轉傾斜疊加使用者 UID、姓名與日期動態浮水印,防實體側錄。
  • 原生 FLAG_SECURE:Android 原生層啟用 FLAG_SECURE,防螢幕截圖、錄影與 HDMI 投影。
  • Web 安全防禦:禁用右鍵選單、文字複製與 DevTools 審查監控。
  • NTP 防作弊:比對雲端網路時間防止竄改本機時鐘。

5. 效能與 Google Play 2026 品質防護

  • SafeImageWidget:鎖定 cacheWidth: 1024 解碼降取樣,杜絕考題拓撲大圖引發 JVM OOM。
  • ComputeHelper (ANR 防禦):超過 500 行之大文字串接、JSON 解析與 RAG 格式化強制於背景 Isolate 運算,杜絕 StringBuffer._addPart ANR 死鎖。
  • ExamTimerWidget:計時器採用 ValueListenableBuilder 局部重繪,避免全頁面重建引發解碼抖動。
  • Android 15/16 Edge-to-EdgeMainActivity.kt 原生啟用 enableEdgeToEdge()

6. 上下分屏圖文對照檢視視窗 (QuestionImageReferenceDialog)

  • 上半部支援拓撲架構圖手勢縮放檢視;下半部同步對照題目、選項與多語系詳解,無需來回滾動。

7. Google Play 圖書與語音有聲書發布工具鏈 (scripts/)

  • scripts/fetch_firestore_books.py:從 Firestore 提取已審核題庫。
  • scripts/build_ccna_epub.py:編譯 EPUB 3 標準電子書與語音無障礙導讀標籤。
  • scripts/publish_to_play_books.py:產出 ONIX 3.0 中繼資料與 Play Books 上架套件。
  • scripts/extract_gcs_rag_knowledge.py:提煉 6,688 個 GCS RAG 切片。
  • scripts/seed_database.py:批次匯入 18+ 科目種子資料。

🧪 驗證與測試結果

執行靜態程式碼分析與全套單元/Widget 測試:

flutter analyze lib
# No issues found! (0 Errors, 0 Warnings, 0 Infos)

flutter test
# All 15 tests passed! (100% Passed)

測試涵蓋項目:

  1. Question 模型 camelCase 與 snake_case 雙向解析相容性測試。
  2. AI 四層階層式調度與 Dynamic Thinking 標籤過濾測試。
  3. 本地持久化快取 (Local Persistent Cache) 與 Mutation Queue 寫入佇列測試。
  4. ComputeHelper 背景 Isolate 文字運算與 RAG 格式化測試。
  5. SafeImageWidget 佔位圖示與降取樣測試。
  6. EnhancedSecurityWatermark 8x4 個人化動態浮水印測試。
  7. ExamTimerWidget 局部重繪計時測試。
  8. PassExamAppRoot 整合冒煙測試 (Smoke Test)。

整個開發出來的程式和文件,請參閱
https://github.com/alan-nanpie/OpenPassExam/


上一篇
PassExam — 全面基於 Google Cloud & Google AI 生態系之跨領域專業認證題庫與智慧學習平台
系列文
將考國際證照的應用程式變成開源51
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言