5.1 KiB
5.1 KiB
客户端文件说明
目录树
.
├── android/ Android 工程与 Gradle 配置
├── assets/
│ ├── icon/ 启动图标
│ ├── images/ 本地图片
│ └── media/ 本地视频文件(当前未在 pubspec 声明)
├── integration_test/ 设备侧集成测试
├── ios/
│ ├── Flutter/ Flutter 生成配置与 SPM 临时包
│ ├── Runner/ iOS Runner
│ ├── Runner.xcodeproj/ Xcode 工程与共享 Scheme
│ └── RunnerTests/ iOS 原生测试
├── lib/
│ ├── core/
│ │ ├── config/ 地址、语言、运行时服务器设置
│ │ ├── data/ models、remote、repositories、services
│ │ ├── formatting/ 多语言文案、日期和错误文本
│ │ ├── platform/ 平台能力封装
│ │ ├── theme/ 颜色与 ThemeData
│ │ └── widgets/ 通用组件
│ ├── l10n/ ARB 与本地化生成代码
│ └── pages/ 业务页面
├── test/ 单元和 Widget 测试
├── docs/ 客户端任务与文件说明
├── pubspec.yaml 依赖、资源和 Flutter 配置
└── README.md 运行、接口与环境说明
关键文件
| 路径 | 职责 |
|---|---|
lib/main.dart |
初始化 Flutter、屏幕方向、debug 服务器覆盖并启动 App |
lib/app.dart |
Provider、repository、controller、ApiClient 和主题装配 |
lib/core/config/app_config.dart |
地址优先级、超时、媒体 URL 和平台默认地址 |
lib/core/config/server_endpoint.dart |
debug 运行时地址规范化、读取、保存和清除 |
lib/core/config/locale_controller.dart |
语言选择与系统语言回退 |
lib/core/data/models/ |
账号、剧目、评论、观看、下载、公告等数据结构 |
lib/core/data/remote/ |
/app/** 接口调用;api_client.dart 统一鉴权和错误映射 |
lib/core/data/repositories/ |
HTTP 与内存实现的 repository 边界 |
lib/core/data/services/ |
页面 controller、播放会话、分享、画中画等业务服务 |
lib/core/formatting/ |
本地化内容、日期与错误文本 |
lib/core/platform/haptics.dart |
可注入的触觉反馈封装 |
lib/core/theme/app_colors.dart |
克莱因蓝和界面颜色 token |
lib/core/theme/app_theme.dart |
light/dark ColorScheme 与组件主题 |
lib/core/widgets/empty_state.dart |
统一空列表占位 |
lib/core/widgets/remote_image.dart |
后端相对图片地址与失败占位 |
lib/core/widgets/auth_gate.dart |
未登录操作拦截 |
lib/core/widgets/download_action.dart |
下载授权操作 |
lib/pages/home/ |
根页面、四个底部 tab 和抽屉 |
lib/pages/player/ |
竖屏播放、选集、进度和播放器交互 |
lib/pages/discover/ |
首页/发现信息流、轮播、分类与三列剧目网格 |
lib/pages/drama_detail/ |
剧目详情与剧集入口 |
lib/pages/auth/ |
登录/注册页面与表单逻辑 |
lib/pages/mine/ |
我的页、片单、设置、语言与 debug 地址入口 |
lib/pages/favorites/ |
收藏列表 |
lib/pages/watch_records/ |
独立观看记录页 |
lib/pages/downloads/ |
下载授权与策略页面 |
lib/pages/notices/ |
站内通知分页和详情 |
lib/pages/interaction/ |
举报弹窗 |
lib/l10n/*.arb |
en/zh/id 源文案,修改后执行 flutter gen-l10n |
ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme |
iOS SPM 预构建脚本 |
测试结构
| 目录 | 覆盖范围 |
|---|---|
test/auth/ |
登录 controller、表单、视觉与交互 |
test/catalog/、test/category/ |
首页数据、分类和模型解析 |
test/comment/、test/interaction/ |
评论、点赞、举报和弹窗 |
test/config/ |
三语、系统语言和运行时服务器地址 |
test/core/ |
ApiClient、ID 解析、触觉、分享和画中画 |
test/discover/、test/home/ |
首页、轮播、网格和导航 |
test/download/、test/library/、test/watch/ |
下载、收藏、观看记录 |
test/drama_detail/、test/player/、test/playback/ |
详情、播放器与播放队列 |
test/notice/ |
通知分页、空态、详情与入口 |
test/empty_state/、test/theme/ |
空态组件与主题 token |
test/integration/ |
依赖本机后端的联调测试,服务未启动时跳过 |
integration_test/app_backend_test.dart |
设备侧后端连通性测试 |
test/support/ |
fake repository、HTTP adapter、播放器和测试数据 |
生成物
以下内容由工具生成,不要手工修改:
lib/l10n/app_localizations*.dart*.g.dart.dart_tool/build/ios/Flutter/ephemeral/ios/Runner/GeneratedPluginRegistrant.hios/Runner/GeneratedPluginRegistrant.m
pubspec.lock 由 Dart 包管理工具维护,应提交但不手工编辑。