# Flutter 项目:比特币交易所 App ## 概述 使用 Flutter 和 GetX 构建一个名为 `flutter_btc_exchange` 的比特币交易所应用。功能包括实时行情、多模式交易、AI 策略和资产管理。UI 要求美观流畅,初期使用 Mock 数据。 ## 功能需求 包含五个主 Tab 页:**首页**, **行情**, **交易**, **AI策略**, **资产**。 ### 1. 认证 - **登录/注册**: 实现基本的用户认证流程。 - **其他页面**: 创建“用户详情”、“实名认证”、“绑卡”等空白页,待后续开发。 ### 2. 首页 (Home) - **顶部**: Logo、通知图标,以及“交易所”/“钱包” Tab。 - **资产总览**: 显示总资产(CNY),并用图表展示今日收益(带刷新),下方有“充值”/“提现”按钮。 - **快捷入口**: 10个功能按钮(如现货、合约交易等)。 - **推广区**: Banner 横幅。 - **市场 Tab**: “自选”、“热门”、“涨幅榜”等代币列表。 - **新闻 Tab**: “发现”、“公告”等新闻列表。 ### 3. 行情页 (Market) - **顶部**: 搜索栏。 - **主 Tab**: “市场”、“动态”、“牛人帮”。 - **公告栏**: 滚动公告。 - **行情分类 Tab**: “自选”、“现货”、“合约”等行情列表。 ### 4. 交易页 (Trade) - **图表区**: K线图或深度图。 - **操作区**: “买入”/“卖出” Tab,含价格/数量输入框和交易按钮。 - **订单区**: “当前委托”、“历史委托”等列表。 ### 5. AI 策略页 (核心) - **资产总览**: 显示策略账户总资产和图表。 - **核心操作**: “盈亏分析”、“划转”按钮。 - **策略管理**: “创建策略”、“运行中”、“历史策略” Tab。 - **策略列表**: 展示可用策略,如现货网格、合约马丁格尔等。 - **社区排行**: “AI推荐榜”、“达人榜”、“AI跟单”等。 ### 6. 资产页 (Assets) - **顶部**: Banner 和“充币”按钮。 - **列表**: 显示用户持有的各币种资产。 ## 技术栈 - **框架**: Flutter - **状态管理/路由**: GetX - **架构**: Clean Architecture (Domain, Data, Presentation) - **数据**: Mock 数据 (位于 `data/mock/`) - **核心依赖**: `get`, `dio`, `shared_preferences`, `fl_chart`, `cached_network_image` 等。 ## 项目结构 ``` lib/ ├── main.dart # 入口 ├── app/ # 路由、绑定、应用配置 ├── core/ # 常量、主题、工具、服务 ├── data/ # 数据层 (Models, Repositories, Datasources, Mock) ├── presentation/ # 表现层 (Pages, Widgets, Controllers) └── domain/ # 领域层 (Entities, Repositories, Usecases) ``` ## 任务步骤 1. **初始化**: 创建项目结构和文件。 2. **添加依赖**: 在 `pubspec.yaml` 中添加所有依赖并运行 `flutter pub get`。 3. **Mock数据**: 在 `data/mock/` 中创建模拟 API 响应的 JSON 文件。 4. **模型定义**: 根据 JSON 创建 Dart 模型类。 5. **架构搭建**: 实现 Domain, Data 层的接口和实现,从 Mock 读取数据。 6. **路由/注入**: 配置 GetX 的路由和控制器绑定。 7. **UI开发**: 构建五个主页面及认证页面,将通用部分抽象为 Widget。 8. **控制器逻辑**: 创建 `GetXController`,通过 UseCases 获取数据并管理页面状态。 9. **数据连接**: 使用 `GetBuilder` 或 `Obx` 将 View 与 Controller 连接,响应状态变化。 10. **完善**: 实现页面导航、过渡动画和响应式布局。 **先行任务**: 完成项目初始化、依赖添加和 Mock 数据创建。