| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 9 个月前 | ||
| 9 个月前 |
ZiTok Frontend
ZiTok 前端应用,基于 Flutter + Provider + GoRouter 架构。
技术栈
- 框架: Flutter 3.x (Dart SDK ^3.9.2)
- 状态管理: Provider 6.x
- 路由: GoRouter 14.x
- 网络请求: Dio 5.x
- 本地存储: Hive + SharedPreferences
- 视频播放: video_player + chewie
- 图片处理: cached_network_image, image_picker, crop_your_image
- 实时通信: web_socket_channel
- 网络检测: connectivity_plus
项目结构
lib/
├── app.dart # 应用入口与 Provider 注入
├── main.dart # 主函数
├── config/ # 配置文件
├── models/ # 数据模型
├── providers/ # 状态管理
│ ├── auth_provider.dart
│ ├── video_provider.dart
│ ├── video_player_provider.dart
│ ├── messaging_provider.dart
│ ├── comment_provider.dart
│ ├── profile_provider.dart
│ ├── settings_provider.dart
│ ├── theme_provider.dart
│ └── user_provider.dart
├── repositories/ # 数据仓库层
├── routes/ # 路由配置
│ └── app_router.dart
├── services/ # API 服务层
│ ├── api_client.dart
│ ├── auth_service.dart
│ ├── video_service.dart
│ ├── video_playback_manager.dart
│ ├── notes_service.dart
│ ├── socket_service.dart
│ └── ...
├── theme/ # 主题配置
│ ├── app_theme.dart
│ └── theme_tokens.dart
├── utils/ # 工具函数
├── views/ # 页面视图
│ ├── welcome/ # 欢迎页
│ ├── auth/ # 登录/注册
│ ├── home/ # 主界面 Shell
│ ├── video/ # 视频相关页面
│ ├── notes/ # 笔记页面
│ ├── follow/ # 关注页
│ ├── messages/ # 消息列表
│ ├── chat/ # 聊天页
│ ├── profile/ # 个人中心
│ ├── settings/ # 设置
│ ├── search/ # 搜索
│ └── create/ # 创作页面
└── widgets/ # 通用组件
├── advanced_video_player.dart
├── comment_sheet.dart
├── video_card.dart
├── video_controls_overlay.dart
└── ...
主题管理
- 主题配置:
lib/theme/app_theme.dart+lib/theme/theme_tokens.dart - 状态管理:
lib/providers/theme_provider.dart
使用方式
// 读取当前主题
final theme = context.watch<ThemeProvider>().theme;
// 切换主题
context.read<ThemeProvider>().switchTheme('dark');
context.read<ThemeProvider>().toggleDark();
视频播放管理
项目实现了全局视频播放状态管理(VideoPlaybackManager):
- 确保同一时间只有一个视频播放
- 路由切换时自动暂停视频
- 网络感知的视频预加载
开发指南
环境要求
- Flutter SDK ^3.9.2
- Dart SDK ^3.9.2
安装依赖
flutter pub get
运行应用
# 开发模式
flutter run
# 指定平台
flutter run -d windows
flutter run -d chrome
flutter run -d android
构建发布版本
flutter build apk --release # Android
flutter build ios --release # iOS
flutter build windows # Windows
flutter build web # Web
Windows 开发注意事项
如需构建带插件的应用,请在系统设置中启用 Developer Mode(符号链接支持):
start ms-settings:developers
测试
flutter test