# flutter实例 **Repository Path**: ma-zhida/flutter-instance ## Basic Information - **Project Name**: flutter实例 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-03 - **Last Updated**: 2025-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Fluttert 项目框架 一个完整的 Flutter 项目框架,包含常用的功能模块和最佳实践。 ## 项目结构 ``` fluttert/ ├── lib/ │ ├── main.dart # 应用入口 │ ├── app/ # 应用配置 │ │ ├── app.dart # 主题配置 │ │ └── routes.dart # 路由配置 │ ├── core/ # 核心功能 │ │ ├── constants/ # 常量定义 │ │ │ └── app_constants.dart │ │ ├── network/ # 网络请求 │ │ │ └── api_client.dart │ │ └── storage/ # 本地存储 │ │ └── storage_service.dart │ ├── models/ # 数据模型 │ │ └── base_model.dart │ ├── services/ # 服务层 │ │ └── api_service.dart │ ├── providers/ # 状态管理 │ │ └── app_provider.dart │ ├── utils/ # 工具类 │ │ └── logger_util.dart │ ├── views/ # 页面 │ │ ├── splash/ # 启动页 │ │ │ └── splash_page.dart │ │ └── home/ # 首页 │ │ └── home_page.dart │ └── widgets/ # 通用组件 │ └── common/ │ ├── loading_widget.dart │ └── error_widget.dart ├── assets/ # 资源文件 │ ├── images/ │ └── icons/ ├── pubspec.yaml # 项目配置 ├── analysis_options.yaml # 代码分析配置 └── .gitignore # Git忽略文件 ``` ## 核心功能 ### 1. 网络请求 (ApiClient) 基于 Dio 封装的 HTTP 请求客户端,使用单例模式。 **特性:** - 自动添加认证 token - 请求/响应日志记录 - 统一错误处理 - 支持 GET、POST、PUT、DELETE 方法 **使用示例:** ```dart final client = ApiClient.instance; final response = await client.get('/api/users'); ``` ### 2. 本地存储 (StorageService) 基于 SharedPreferences 的本地存储封装,使用单例模式。 **特性:** - 延迟初始化 - 支持字符串、整数、布尔值存储 - 统一的存储接口 **使用示例:** ```dart final storage = StorageService.instance; await storage.setString('key', 'value'); final value = await storage.getString('key'); ``` ### 3. 状态管理 (Provider) 使用 Provider 进行状态管理。 **特性:** - 全局状态管理 - 响应式更新 - 支持主题切换和加载状态管理 **使用示例:** ```dart Consumer( builder: (context, provider, child) { return Text(provider.isLoading ? 'Loading...' : 'Loaded'); }, ) ``` ### 4. 路由管理 (go_router) 使用 go_router 进行声明式路由管理。 **特性:** - 类型安全的路由配置 - 支持路由命名 - 简单易用的导航API **使用示例:** ```dart context.go(AppRoutes.home); ``` ### 5. 日志工具 (LoggerUtil) 封装 Logger 库,提供统一的日志输出接口。 **使用示例:** ```dart LoggerUtil.d('Debug message'); LoggerUtil.e('Error message', error, stackTrace); ``` ## 依赖包 ### 核心依赖 - `provider: ^6.1.1` - 状态管理 - `go_router: ^13.0.0` - 路由管理 - `dio: ^5.4.0` - 网络请求 - `shared_preferences: ^2.2.2` - 本地存储 - `logger: ^2.0.2+1` - 日志工具 ### 开发依赖 - `flutter_lints: ^3.0.0` - 代码规范检查 - `build_runner: ^2.4.7` - 代码生成工具 - `json_serializable: ^6.7.1` - JSON 序列化 ## 快速开始 ### 1. 安装依赖 ```bash flutter pub get ``` ### 2. 配置 API 地址 修改 `lib/core/constants/app_constants.dart` 中的 `baseUrl`: ```dart static const String baseUrl = 'https://your-api.com'; ``` ### 3. 运行项目 ```bash flutter run ``` ## 代码规范 项目配置了 `flutter_lints`,遵循 Flutter 官方代码规范。 主要规则: - 使用 `const` 构造函数 - 避免使用 `print` - 使用单引号 - 其他 Flutter 最佳实践 ## 扩展开发 ### 添加新页面 1. 在 `lib/views/` 下创建页面文件 2. 在 `lib/app/routes.dart` 中添加路由配置 ### 添加数据模型 1. 继承 `BaseModel` 类 2. 实现 `toJson` 和 `fromJson` 方法 ### 添加 API 服务 在 `lib/services/` 下创建新的服务类,使用 `ApiService` 进行 API 调用。 ## 注意事项 1. **单例模式**:`ApiClient` 和 `StorageService` 使用单例模式,直接使用 `.instance` 获取实例 2. **错误处理**:网络请求会自动处理错误并抛出友好的异常信息 3. **主题切换**:应用支持明暗主题自动切换,可在 `AppProvider` 中控制 4. **路由守卫**:可在 `AppRoutes.router` 中添加路由守卫逻辑 ## 许可证 本项目采用 MIT 许可证。