# hr_app_flutter **Repository Path**: zhenyangze/hr_app_flutter ## Basic Information - **Project Name**: hr_app_flutter - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-21 - **Last Updated**: 2025-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flutter Base Framework - 企业级Flutter开发基础框架 ## 📋 项目概述 这是一个完整的Flutter项目基础框架,采用清洁架构设计,封装了常见功能和开发工具,适合企业级应用开发。 ## 🏗️ 架构设计 ### 目录结构 ``` lib/ ├── core/ # 核心模块 │ ├── constants/ # 常量定义 │ ├── controllers/ # 基础控制器 │ ├── exceptions/ # 异常处理 │ ├── network/ # 网络相关 │ ├── storage/ # 存储相关 │ ├── theme/ # 主题配置 │ └── utils/ # 工具类 ├── features/ # 功能模块 │ ├── home/ # 首页模块 │ ├── profile/ # 个人资料模块 │ └── settings/ # 设置模块 ├── shared/ # 共享模块 │ ├── services/ # 共享服务 │ └── widgets/ # 共享组件 ├── config/ # 配置 │ ├── routes.dart # 路由配置 │ └── route_middleware.dart # 路由中间件 ├── main.dart # 应用入口 └── main_simple.dart # 简化版本(测试用) ``` ## 🚀 主要功能 ### 1. 网络请求封装 - ✅ 基于Dio的网络客户端 - ✅ 支持请求/响应缓存 - ✅ 完整的拦截器系统 - ✅ 统一的错误处理 - ✅ 文件上传/下载支持 ### 2. 本地存储 - ✅ SharedPreferences封装(用户偏好) - ✅ Hive数据库封装(复杂数据) - ✅ 统一的存储服务接口 - ✅ 缓存管理功能 ### 3. 状态管理 - ✅ 基于GetX的状态管理 - ✅ BaseController基础控制器 - ✅ ListController列表控制器 - ✅ GlobalController全局状态 ### 4. 路由管理 - ✅ GetX路由配置 - ✅ 路由中间件支持 - ✅ 路由观察者和日志 - ✅ 错误页面处理 ### 5. 主题系统 - ✅ 完整的亮色/暗色主题 - ✅ 统一的颜色方案 - ✅ Material 3设计规范 - ✅ 响应式设计支持 ### 6. 工具类 - ✅ 数据验证器 - ✅ 日期工具类 - ✅ 日志系统 - ✅ 异常处理机制 ## 📦 技术栈 | 功能 | 技术选型 | 版本 | |------|---------|------| | 状态管理 | GetX | ^4.6.6 | | 网络请求 | Dio | ^5.4.2+1 | | 本地存储 | SharedPreferences + Hive | ^2.2.2 + ^2.2.3 | | UI适配 | flutter_screenutil | ^5.9.0 | | 图片缓存 | cached_network_image | ^3.3.1 | | 下拉刷新 | pull_to_refresh | ^2.0.0 | | 日志记录 | logger | ^2.2.0 | | 代码生成 | json_annotation/serializable | ^4.8.1 | ## 🛠️ 开发环境配置 ### 前置要求 - Flutter SDK 3.24.0+ - Dart 3.5.0+ - FVM (Flutter Version Management) - Android Studio / VS Code ### 安装步骤 1. **安装依赖** ```bash fvm flutter pub get ``` 2. **代码生成** ```bash fvm flutter packages pub run build_runner build --delete-conflicting-outputs ``` 3. **运行项目** ```bash # 运行完整版本 fvm flutter run # 运行简化版本(测试用) fvm flutter run lib/main_simple.dart ``` ## 🔧 构建问题解决 ### Gradle版本兼容性问题 如果遇到Java版本与Gradle不兼容的问题: 1. 检查Java版本: ```bash fvm flutter doctor --verbose ``` 2. 根据Java版本更新Gradle版本: - Java 21 需要 Gradle 8.5+ - Java 17 需要 Gradle 7.3+ - Java 11 需要 Gradle 6.7+ 3. 更新配置文件: ```properties # android/gradle/wrapper/gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip ``` ```gradle // android/settings.gradle id "com.android.application" version "8.1.0" apply false ``` ### 常见错误解决 ```bash # 清理项目 fvm flutter clean # 重新获取依赖 fvm flutter pub get # 清理Gradle缓存 cd android && ./gradlew clean ``` ## 📝 使用指南 ### 1. 创建新页面 ```dart // 1. 在features目录下创建新模块 // 2. 继承BaseController class MyController extends BaseController { @override void onInit() { super.onInit(); // 初始化逻辑 } } // 3. 创建页面Widget class MyPage extends StatelessWidget { @override Widget build(BuildContext context) { return GetBuilder( init: MyController(), builder: (controller) { return Scaffold( // 页面内容 ); }, ); } } ``` ### 2. 网络请求使用 ```dart // 使用DioClient final result = await DioClient.instance.get( '/api/data', fromJson: (json) => MyModel.fromJson(json), ); result.when( success: (data) { // 处理成功结果 }, error: (message, code) { // 处理错误 }, ); ``` ### 3. 本地存储使用 ```dart // 存储数据 await StorageService.instance.setUserPreference('key', 'value'); // 读取数据 final value = StorageService.instance.getUserPreference('key'); ``` ## 🎨 自定义主题 在 `lib/core/theme/app_theme.dart` 中自定义主题: ```dart // 修改主色调 static const Color primaryColor = Color(0xFF2196F3); // 添加新的文本样式 static const TextStyle customStyle = TextStyle( fontSize: 16, fontWeight: FontWeight.w500, ); ``` ## 🔗 路由配置 在 `lib/config/routes.dart` 中添加新路由: ```dart GetPage( name: '/new-page', page: () => const NewPage(), transition: Transition.rightToLeft, middlewares: [AuthMiddleware()], ), ``` ## 📊 项目统计 - **代码文件数**: 30+ - **功能模块**: 8个 - **工具类**: 10+ - **配置文件**: 5个 - **演示页面**: 4个 ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 📄 许可证 MIT License --- **注意**: 这是一个企业级开发框架,建议在实际项目中根据具体需求进行调整和扩展。