出自给小学四年级孩子做的人教版数学同步学习 App(lexue4,v1.0.0 已分发自用):纯本地、无网络权限、依赖极简(仅 shared_preferences)。
构建与分发
--split-per-abi瘦身效果显著:arm64 分包 18MB vs 通用包 49MB,差近 3 倍。给确定架构的设备分发时必用。- 内置 HarmonyOS Sans SC 字体(随包打包),保证跨厂商 Android 渲染一致——儿童教育类应用字体不统一的观感差异很明显。
- 局域网分发最小方案:单 HTML 下载页 + 相对路径 APK + 双按钮(arm64 / 通用)+ “未知来源应用”安装引导文案。手机扫码即下,无需任何服务端。
- 已知限制备忘:release 用 debug 签名(自用可接受,正式分发需独立签名)。
测试踩坑:golden 截图测试中文字体
- 坑:golden(截图)测试里中文渲染成方块——测试环境默认不加载 pubspec 声明的字体。
- 解法:测试 setUp 里
loadRealFonts(),从 FontManifest.json 逐个用 FontLoader 加载真实字体,再跑截图对比。 - 这是 Flutter 中文应用的通用坑,与业务无关,任何 golden 测试前都要做。
内容型 App 的设计经验
- 静态微课内容与出题引擎分离:可无限出题的题型(乘除法)写随机生成器,其余题型手工题库——内容量与代码量解耦;
- 学习激励模型:连胜(streak)+ 徽章 + 错题本三件套,SharedPreferences 即可持久化,不需要数据库。
原始素材
- README
相关页面
- 运动打卡数据模型设计(同属家庭自用工具的轻量建模思路)