【More Than Coding】用 SOLO 4小时开发一个带离线OCR的家庭物品过期管理App

1. 摘要

用 SOLO 从零开发了一个完整的 Flutter 家庭物品过期管理 App,包含物品录入、过期提醒、统计报表等核心功能。最亮眼的是集成了 离线条码扫描(内置80+常见商品)和 拍照OCR识别日期(基于 tesseract.js),无需后端即可实现智能录入。Web 版本可直接体验。

2. 背景

我是一名非前端开发,平时家里囤的东西经常忘记保质期,想做一个简单的过期提醒工具。但传统开发需要搭后端、写接口、处理图片识别,太麻烦。希望用 SOLO 快速实现一个纯前端、可离线使用的解决方案。

3. 实践过程

任务拆解

  1. 基础功能:物品 CRUD、分类管理、过期提醒
  2. 智能录入:条码查询(离线数据库)+ 拍照 OCR 识别日期
  3. 数据持久化: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 的价值

  • 帮我快速需求方案(哪怕我不懂相关技术)
  • 自动生成大量可运行代码(数据库操作、状态管理)
  • 实时修复构建错误和类型问题

可复用方法

  1. 先跟SOLO讨论,沟通需求,生成需求文档。
  2. 仔细审核与调整文档。
  3. 做出来的效果符合预期。

最大的感受是:SOLO 不是替代开发,而是把"查文档、写样板、修报错"的时间压缩到极致,让我能专注在功能设计和用户体验上。