# flutter_project_template **Repository Path**: roylion/flutter_project_template ## Basic Information - **Project Name**: flutter_project_template - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-14 - **Last Updated**: 2026-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1. core/ —— 基础设施 定位:最底层,提供全局通用的能力。 内容: constants/:路由名、存储key、API地址等硬编码常量。 themes/:主题配置(颜色、字体、暗色模式)。 utils/:纯工具函数(日期格式化、正则校验、扩展方法)。 services/:全局服务封装(存储服务、日志服务、网络监控)。 widgets/:全局复用组件(自定义AppBar、对话框、加载动画)。 规则:不依赖任何其他目录,可以被任意上层目录导入。 2. data/ —— 数据层 定位:负责所有与数据打交道的事情。 内容: models/:数据模型,通常用freezed定义的不可变类。 datasources/:原始数据源(local本地数据库/文件,remote REST API/WebSocket)。 repositories/:仓储实现,组合多个数据源,对外提供干净的数据接口。 mappers/:数据映射器,把原始数据转换成模型(如果原始数据来自不同后端)。 规则:可以依赖 core/,但不应依赖 presentation/ 或 routes/。 3. domain/ —— 领域层(可选,中小型项目可跳过) 定位:纯业务逻辑,与技术实现无关。 内容: entities/:业务实体,与数据库/API无关的核心对象。 repositories/:仓储的抽象接口(定义契约,让data/去实现)。 usecases/:用例/交互器,封装复杂的业务流程。 规则:不依赖任何外部框架(Flutter/Dio/Hive等),完全纯粹的Dart代码。 4. routes/ —— 路由层 定位:管理页面导航和路由表。 内容: app_routes.dart:路由名称常量。 app_pages.dart:路由配置表(GoRouter配置)。 规则:依赖 presentation/ 来获取页面实例。 5. presentation/ —— 展示层 定位:UI和状态管理,用户直接看到和交互的部分。 内容: screens/:按功能模块分组(如 counter/, login/, home/)。 views/:纯UI组件(StatelessWidget 或 ConsumerWidget)。 viewmodels/:状态管理逻辑(StateNotifier + Provider)。 bindings/:依赖绑定(如果需要懒加载或复杂注入)。 shared/:跨模块的UI组件(底部导航栏、通用卡片等)。 规则:可以依赖 core/, data/, domain/,但建议通过ViewModel间接调用。