# report-notebooklm-app report-notebooklm 第一阶段应用外壳的 Flutter 客户端。 后端 API 在同一个 monorepo 的 `../report-notebooklm-api/` 里。API、数据、内容流水线的细节都记在那边;这个目录专注于应用交接、UI 状态、构建命令和对接说明。 ## 先读这些 - [docs/HANDOFF.md](docs/HANDOFF.md):当前应用状态、已实现的页面、占位项,以及下一步工作。 - [docs/PROJECT_BRIEF.md](docs/PROJECT_BRIEF.md):产品和第一阶段范围速览。 - [docs/APP_RUNBOOK.md](docs/APP_RUNBOOK.md):Flutter 版本、本地运行、Web 构建、Android 调试构建和验证。 - [docs/API_CONTRACT_NOTES.md](docs/API_CONTRACT_NOTES.md):应用所消费的接口和字段。 - [docs/PROJECT_MAP.md](docs/PROJECT_MAP.md):源码目录地图。 ## 产品边界 这个仓库装的是应用代码和一份工程交接快照,不是产品的唯一真源。 产品 SSOT:mall-docs 里的 report-notebooklm 文档。快照日期:2026-06-03。 技术标识符用 `report-notebooklm` 和 `rnb`,面向用户的产品名是 `研听`。 ## 环境要求 - Flutter 3.44.1 / Dart 3.12.1,或兼容的更新版本。 - 一个正在运行、提供 `/api/report-notebooklm/v1` 的后端。 - 做 Android 构建还需要:Android SDK、已接受的许可协议,以及一台模拟器或真机。 ## API 基础地址 应用刻意不内置任何线上 API 默认值。请显式传入后端基础地址: ```bash flutter run -d chrome --dart-define=RNB_API_BASE= ``` Android 模拟器: ```bash flutter run -d --dart-define=RNB_API_BASE= ``` 同一局域网内的 Android 真机: ```bash flutter run -d --dart-define=RNB_API_BASE=http://:/api/report-notebooklm/v1 ``` 明文 HTTP 只能用于调试构建。发布构建必须使用 HTTPS。 ## 验证 ```bash flutter analyze flutter test flutter build web --dart-define=RNB_API_BASE= flutter build apk --debug --dart-define=RNB_API_BASE= ``` ## 当前应用范围 已实现: - 五个底部标签页:推荐、研报、机构、听单、我的。 - 基于 API 的信息流、研报列表、机构列表、听单、机构详情和研报详情。 - 用于内联模块和「卡片 + 页面」模块的模块渲染器注册表。 - 产品显示名 `研听`。 - 登录、收藏、外链跳转确认、播放进度的本地 UI 占位。 尚未实现: - 真实鉴权。 - 真实的收藏 / 历史 / 收听记录同步。 - 真正可播放的音频流。 - 真实的外链事件写入。 - 生产 API 域名。 - 发布签名、最终图标和最终应用商店元信息。