我如何使用 Gemini 构建了一个 15000 行以上的 Flutter 应用来‘Hack’我的大学考勤

发布: (2026年2月26日 GMT+8 02:55)
5 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的具体文本内容(除代码块和 URL 之外),我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。谢谢!

我用 Google Gemini 构建的项目

作为一名在创业梦想与繁重课程之间平衡的 IT 本科生,缺课过多会导致灾难性的考试禁考。为了解决这个问题,我构建了 Attendance Tracker(代号 “The 80%”)。这是一款跨平台的 Flutter 应用,旨在通过离线优先存储和 AI 对大学出勤率进行数学优化。

该应用提供了 Danger Zone Planner,可以计算特定课程(Lectures、Labs、Tutorials)中缺勤的精确余量。学生可以模拟细粒度的情景,了解自己的出勤缓冲,确保永远不会意外低于必修的学术阈值。

Google Gemini 的作用

  • 架构(Agentic AI) – 项目规模已超过 15,000 行代码。我在 Antigravity IDE 中使用 Gemini 3 Pro(High)模型作为自主编码代理,帮助设计离线优先的数据库(Hive)、管理状态(Provider),以及处理复杂的 UI 动画。
  • 核心功能(API 集成) – 出勤应用中最大的摩擦点是手动数据录入。我集成了 Gemini 2.5 Flash API 来实现多模态课表提取。用户只需上传官方大学课表的 PDF 或图片,Gemini 就能智能解析非结构化数据,生成包含科目、时间和课程类型的整洁矩阵。

演示

您可以直接在浏览器中体验实时网络应用:

截图

浅色模式 统计标签页

暗色模式 设置

模块详情

我学到的

  • 后台异步处理 – 通过 Gemini API 解析细节繁多的时间表 PDF 可能需要时间,因此我学会了将这些任务放在后台运行。这保持了 UI 的响应性,并允许用户在等待应用内“时间表已就绪”通知时继续浏览应用。
  • 防御性工程 – AI 并不完美。我构建了一个强大的“草稿审查”步骤,让用户在将 AI 提取的时间表提交到 Firebase 数据库之前进行验证和编辑。
  • 系统设计 – 实现基于 Hive 本地缓存的离线优先架构,并与 Firebase Firestore 无缝同步,使我学会了在不同网络条件下处理复杂的数据状态。

Google Gemini 反馈

优点

  • gemini‑2.5‑flash 的多模态能力令人惊叹。它能够毫无瑕疵地处理凌乱、格式不佳的大学 PDF 和图像,将非结构化的视觉数据转化为干净、可用的数据集。
  • Gemini 3 Pro (High) 作为具备主动性的编码伙伴使用,感觉就像随时有一位资深工程师在旁,节省了数周的样板代码编写和 UI 调整时间。

缺点与不足

  • 在一个 15,000 行的代码库中,上下文窗口的限制经常被挑战。偶尔,IDE 代理会失去对整体架构的把握,出现变量名幻觉或忘记远程文件之间的关联。
  • 过度依赖 Gemini 2.5 Flash 进行文件解析会导致速率限制问题。为在高流量期间保持应用可用,我设计了一个 Multi‑API Key Support 系统,能够在不同用户提供的 Gemini 密钥之间轮换。
  • 极度非标准的时间表布局有时会让模型困惑,使得手动草稿审查步骤变得必不可少。总体而言,Gemini 是一台强大的引擎,但在生产环境中需要严格的防护措施。
0 浏览
Back to Blog

相关文章

阅读更多 »