1. 摘要
用 SOLO 从零开发了一个完整的 Flutter 家庭物品过期管理 App,包含物品录入、过期提醒、统计报表等核心功能。最亮眼的是集成了 离线条码扫描(内置80+常见商品)和 拍照OCR识别日期(基于 tesseract.js),无需后端即可实现智能录入。Web 版本可直接体验。
2. 背景
我是一名非前端开发,平时家里囤的东西经常忘记保质期,想做一个简单的过期提醒工具。但传统开发需要搭后端、写接口、处理图片识别,太麻烦。希望用 SOLO 快速实现一个纯前端、可离线使用的解决方案。
3. 实践过程
任务拆解
- 基础功能:物品 CRUD、分类管理、过期提醒
- 智能录入:条码查询(离线数据库)+ 拍照 OCR 识别日期
- 数据持久化:SQLite 本地存储
关键 Prompt 示例
- 创建一个跨全平台家庭物品过期管理 App
- 首页显示物品列表,支持搜索和筛选
- 添加物品时支持按保质期或过期日期二选一,自动计算另一个
- 实现过期提醒功能,临期7天和已过期物品要有明显标识
踩坑与解决
| 问题 | 解决方案 |
|---|---|
| Web 端 OCR 方案选择 | 调研后发现 Google ML Kit 不支持 Web,最终选用 tesseract.js + CDN 加载,通过 dart:js_interop 调用 |
| 数据库升级 | 从 v1 升级到 v2 新增条码表,需要处理 onUpgrade 迁移逻辑 |
| 日期联动计算 | 保质期和过期日期需要双向联动,通过 _recalcExpiryDate() 统一处理 |
SOLO 能力使用
- 多轮对话迭代功能(从基础版到加入 OCR)
- 代码审查和重构建议
- 依赖管理和版本冲突解决
- Web 部署和调试
4. 成果展示
界面截图
首页物品列表
- 展示物品卡片、状态标签、剩余天数
- 支持搜索和筛选
- 统计概览卡片
智能识别入口
- 条码录入 + 拍照识别双入口
- 内置 80+ 常见商品条码库
- 支持手动输入条码查询
条码查询
- 输入条码自动匹配商品库
- 显示商品名称、品牌、品类、保质期
- 一键添加到物品列表
拍照 OCR
- 选择图片进行 OCR 识别
- 自动提取生产日期和过期日期
- 支持查看完整识别文本
添加物品
- 支持按保质期或过期日期二选一
- 自动计算过期日期
- 快捷保质期选项(7天/30天/3个月/6个月/12个月)
统计页面
- 状态分布(正常/临期/过期/已开封/已消耗/已丢弃)
- 品类分布
- 点击可查看对应物品列表
设置页面
- 设置提醒时间
- 设置免打扰
- 设置不同分类的提醒天数
技术栈
- 框架: Flutter 3.x + Riverpod 状态管理
- 数据库: SQLite(sqflite + sqflite_common_ffi_web)
- OCR: tesseract.js(Web 端离线识别)
- UI: Material Design 3
5. 效果与总结
提效成果
- 传统开发估计需要 3-10 天(后端接口 + 图片识别服务 + 前端)
- 用 SOLO 纯前端方案,3 小时完成核心功能,1 小时调优 OCR
SOLO 的价值
- 帮我快速需求方案(哪怕我不懂相关技术)
- 自动生成大量可运行代码(数据库操作、状态管理)
- 实时修复构建错误和类型问题
可复用方法
- 先跟SOLO讨论,沟通需求,生成需求文档。
- 仔细审核与调整文档。
- 做出来的效果符合预期。
最大的感受是:SOLO 不是替代开发,而是把"查文档、写样板、修报错"的时间压缩到极致,让我能专注在功能设计和用户体验上。







