用途:该技能为 Omi Flutter 应用开发提供指导,适用于在 app/ 目录下编写 Flutter/Dart 代码、实现 BLE 设备通信、使用 Provider 管理状态、集成后端 API、新增 UI 页面或组件等场景。
主要能力:
- 状态管理:应用采用 Provider 模式,通过继承 ChangeNotifier 定义 Provider,在组件中用 Provider.of 获取状态。
- 本地化:所有面向用户的字符串必须使用本地化,如 context.l10n.helloWorld,禁止硬编码文本;新增键需用 jq 写入 ARB 文件,再运行 cd app && flutter gen-l10n。
- 后端集成:REST API 位于 lib/backend/http/api/,使用 HttpClient 请求;WebSocket 位于 lib/backend/http/webhooks.dart,连接地址形如 $baseUrl/v4/listen?uid=$uid。
- BLE 通信:扫描名称含 Omi 的设备,连接后发现服务;音频服务 UUID 为 19B10000-E8F2-537E-4F6C-D104768A1214,音频数据 UUID 为 19B10001-E8F2-537E-4F6C-D104768A1214,编解码类型 UUID 为 19B10002-E8F2-537E-4F6C-D104768A1214。音频包为 3 字节头加 160 个采样,支持 Opus(优先)、PCM、Mu-law,采用小端字节序。
- 平台支持:iOS、Android、macOS、Windows,使用 PlatformManager 做平台检测。
使用方式:新增页面时在 lib/pages/ 创建页面、添加路由、用 Provider 管理状态、使用本地化字符串并在各平台测试;新增 API 端点时在对应 API 类中添加方法并处理错误;新增 BLE 功能时使用 flutter_blue_plus 包,遵循 BLE 协议并处理分包。
限制:资料未提供具体收费、价格、性能指标或效果数据;部分实现细节需参考 docs/ 目录及 .cursor/rules 下的规则文件。