一个使用 Flutter 开发的 NGA (艾泽拉斯国家地理) 论坛客户端。
待补充
- 版块列表与收藏
- 子版块与精华区
- 帖子列表与详情浏览
- 发帖与回复
- 用户登录/登出
- 多账号管理
- 个人资料查看
- 私信与通知
- 全局搜索(帖子/版块)
- 浏览历史
- 收藏帖子
- 深色模式
- 黑名单(用户/关键词)
- 帖子详情细节优化
- 界面设置
| 分类 | 技术方案 |
|---|---|
| 框架 | Flutter stable 3.44.2 (FVM) |
| 状态管理 | Riverpod 3.x + flutter_hooks |
| 路由 | go_router |
| 网络 | Dio |
| 本地存储 | Sembast |
| 主题 | adaptive_theme |
| 编码转换 | fast_gbk (GBK -> UTF-8) |
- Flutter stable 3.44.2 (推荐使用 FVM 管理版本)
- Dart SDK >=3.0.0 <4.0.0
- Android SDK / Xcode (取决于目标平台)
# 克隆项目
git clone https://github.com/user/flutter-nga.git
cd flutter-nga
# 安装 FVM (如未安装)
dart pub global activate fvm
# 使用指定 Flutter stable 版本
fvm install stable
fvm use stable
# 获取依赖
fvm flutter pub get
# 运行应用
fvm flutter run# Android APK
fvm flutter build apk
# Android App Bundle
fvm flutter build appbundle
# iOS (无签名)
fvm flutter build ios --no-codesign# 运行所有测试
fvm flutter test
# 静态分析
fvm flutter analyzelib/
├── main.dart # 应用入口
├── my_app.dart # 根 Widget
├── data/
│ ├── data.dart # 单例数据管理器
│ ├── http.dart # HTTP 客户端配置
│ ├── entity/ # 数据实体
│ ├── repository/ # 数据仓库
│ └── usecase/ # 用例层
├── providers/ # Riverpod Providers
│ ├── core/ # 核心 Provider
│ ├── forum/ # 版块相关
│ ├── topic/ # 帖子相关
│ ├── user/ # 用户相关
│ ├── message/ # 消息相关
│ └── settings/ # 设置相关
├── ui/
│ ├── page/ # 页面组件
│ └── widget/ # 通用组件
└── utils/
├── route.dart # 路由定义
├── palette.dart # 调色板
└── dimen.dart # 尺寸常量
- Android
- iOS
- macOS
- Linux
- Windows
- Web