2.6 KiB
report-notebooklm-app
Flutter client for the report-notebooklm Phase 1 app shell.
The backend API lives in ../report-notebooklm-api/ in the same monorepo. API/data/content-pipeline details are documented there; this directory focuses on App handoff, UI state, build commands, and integration notes.
Read First
- docs/HANDOFF.md: current App state, implemented screens, placeholders, and next work.
- docs/PROJECT_BRIEF.md: product and Phase 1 scope snapshot.
- docs/APP_RUNBOOK.md: Flutter version, local run, web build, Android debug build, and verification.
- docs/API_CONTRACT_NOTES.md: endpoints and fields consumed by the App.
- docs/PROJECT_MAP.md: source tree map.
Product Boundary
This repo contains App code and an engineering handoff snapshot. It is not the product source of truth.
Product SSOT: mall-docs report-notebooklm docs. Snapshot date: 2026-06-03.
Use report-notebooklm and rnb for technical identifiers. The user-facing product name is 研听.
Requirements
- Flutter 3.44.1 / Dart 3.12.1 or compatible newer versions.
- A running backend that serves
/api/report-notebooklm/v1. - For Android builds: Android SDK, accepted licenses, and an emulator or device.
API Base URL
The App intentionally has no built-in live API default. Pass the backend base URL explicitly:
flutter run -d chrome --dart-define=RNB_API_BASE=<api-base-url>
Android emulator:
flutter run -d <emulator-id> --dart-define=RNB_API_BASE=<emulator-api-base-url>
Same-network Android device:
flutter run -d <device-id> --dart-define=RNB_API_BASE=http://<host-lan-ip>:<port>/api/report-notebooklm/v1
Only use cleartext HTTP for debug builds. Release builds must use HTTPS.
Verify
flutter analyze
flutter test
flutter build web --dart-define=RNB_API_BASE=<api-base-url>
flutter build apk --debug --dart-define=RNB_API_BASE=<emulator-api-base-url>
Current App Scope
Implemented:
- Five bottom tabs: 推荐, 研报, 机构, 听单, 我的.
- API-backed feed, report list, institution list, listen list, institution detail, and report detail.
- Module renderer registry for inline and card-plus-page modules.
- Product display name
研听. - Local UI placeholders for login, favorite, outbound confirmation, and playback progress.
Not implemented yet:
- Real auth.
- Real favorite/history/saved-listen sync.
- Real playable audio stream.
- Real outbound event write.
- Production API domain.
- Release signing, final icon, and final store metadata.