# flutter_app_demo **Repository Path**: cctv86/flutter_app_demo ## Basic Information - **Project Name**: flutter_app_demo - **Description**: 脚手架代码,自己测试 - **Primary Language**: Dart - **License**: CECILL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-02 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flutter MVVM App 一个使用 MVVM 架构模式的 Flutter 应用,展示了完整的项目结构和最佳实践。 ## 🏗️ 项目架构 ### 架构模式 - **MVVM (Model-View-ViewModel)** - 主要架构模式 - **依赖注入** - 使用 GetIt 进行依赖管理 - **响应式编程** - 使用 Provider 进行状态管理 ### 目录结构 ``` lib/ ├── config/ # 应用配置 │ ├── app/ # 应用级配置 │ │ ├── api_config.dart │ │ ├── app_config.dart │ │ ├── auth_config.dart │ │ ├── environment_config.dart │ │ └── storage_config.dart │ └── integrations/ # 第三方集成配置 │ ├── integration_configs.dart │ ├── log_config.dart │ └── sentry_config.dart ├── core/ # 核心功能 │ ├── base/ # 基础类 │ │ ├── base_view.dart │ │ └── base_view_model.dart │ ├── constants/ # 常量定义 │ ├── di/ # 依赖注入 │ │ ├── injection.dart │ │ └── injection.config.dart │ ├── network/ # 网络层 │ │ └── http_client.dart │ └── routes/ # 路由管理 │ └── app_router.dart ├── data/ # 数据层 │ ├── api/ # API 接口 │ │ ├── api_endpoints.dart │ │ ├── api_services.dart │ │ ├── article_api.dart │ │ ├── auth_api.dart │ │ └── upload_api.dart │ ├── models/ # 数据模型 │ │ ├── api_response.dart │ │ ├── user_model.dart │ │ └── user_model.g.dart │ ├── repositories/ # 数据仓库 │ │ └── auth_repository.dart │ └── sources/ # 数据源 │ ├── local/ # 本地数据源 │ │ └── local_storage.dart │ └── remote/ # 远程数据源 │ └── api_client.dart ├── domain/ # 领域层 │ ├── entities/ # 实体 │ ├── repositories/ # 仓库接口 │ └── usecases/ # 用例 ├── integrations/ # 第三方集成 │ ├── interfaces/ # 集成接口 │ ├── models/ # 集成模型 │ ├── services/ # 集成服务 │ │ ├── integration_manager.dart │ │ ├── sentry_service.dart │ │ └── sentry_singleton.dart │ └── utils/ # 集成工具 ├── presentation/ # 表现层 │ ├── viewmodels/ # 视图模型 │ │ └── auth_view_model.dart │ └── views/ # 视图 │ ├── auth/ # 认证相关页面 │ │ ├── login_view.dart │ │ ├── register_view.dart │ │ └── test_accounts_view.dart │ ├── main/ # 主页面 │ │ └── main_view.dart │ ├── pages/ # 功能页面 │ │ ├── gallery_page.dart │ │ ├── home_page.dart │ │ ├── profile_page.dart │ │ └── video_page.dart │ └── splash/ # 启动页 │ └── splash_view.dart └── shared/ # 共享组件 ├── errors/ # 错误处理 │ └── app_error.dart ├── extensions/ # 扩展方法 │ └── string_extensions.dart ├── helpers/ # 辅助工具 │ └── validation_helpers.dart ├── interfaces/ # 接口定义 │ ├── navigation_callback.dart │ └── permission_service.dart ├── services/ # 共享服务 │ ├── error_handler.dart │ ├── navigation_callback_impl.dart │ ├── navigation_service.dart │ └── permission_service_impl.dart ├── utils/ # 工具类 │ ├── event_bus.dart │ ├── exception_utils.dart │ └── logger_utils.dart └── widgets/ # 共享组件 ├── custom_button.dart ├── custom_text_field.dart └── permission_widgets.dart ``` ## 🚀 主要功能 ### 认证系统 - **登录/注册** - 支持用户名、邮箱、密码认证 - **模拟模式** - 无需真实后端服务,使用本地存储模拟 - **测试账户** - 提供多个测试账户用于开发调试 - **用户管理** - 用户信息、角色权限管理 ### 页面功能 - **首页** - 功能卡片导航,快速访问各模块 - **图片管理** - 图片浏览和管理功能 - **视频管理** - 视频播放和管理功能 - **个人中心** - 用户信息和设置管理 ### 技术特性 - **响应式UI** - 支持不同屏幕尺寸 - **状态管理** - 使用 Provider 进行状态管理 - **路由管理** - 使用 GoRouter 进行页面导航 - **本地存储** - 使用 Hive 和 SharedPreferences - **权限管理** - 基于角色的权限控制系统 ## 🛠️ 技术栈 ### 核心框架 - **Flutter** - 跨平台UI框架 - **Dart** - 编程语言 ### 状态管理 - **Provider** - 状态管理库 ### 路由管理 - **GoRouter** - 声明式路由库 ### 依赖注入 - **GetIt** - 服务定位器 ### 本地存储 - **Hive** - 轻量级键值数据库 - **SharedPreferences** - 简单数据存储 ### 网络请求 - **HTTP** - 网络请求客户端 ### 第三方集成 - **Sentry** - 错误监控和性能追踪 ## 📱 平台支持 - ✅ iOS - ✅ Android - ✅ Web - ✅ Windows - ✅ macOS - ✅ Linux ## 🚀 快速开始 ### 环境要求 - Flutter 3.0+ - Dart 3.0+ - iOS 11.0+ / Android 5.0+ ### 安装依赖 ```bash flutter pub get ``` ### 运行应用 ```bash # 开发模式 flutter run # 发布模式 flutter run --release ``` ### 测试账户 应用提供了多个测试账户,无需真实后端服务: | 用户名 | 密码 | 角色 | |--------|------|------| | test | 123456 | user | | admin | admin123 | admin | | user | 123456 | user | | demo | 123456 | user | ## 🔧 配置说明 ### 环境配置 - **开发环境** - 默认使用模拟模式 - **生产环境** - 可配置真实API服务 ### 模拟模式 默认启用模拟模式,所有功能使用本地存储: - 用户认证 - 数据管理 - 权限控制 ### 真实API模式 可通过配置切换到真实后端服务: ```dart AppConfig.setMockMode(false); ``` ## 📁 项目结构说明 ### 分层架构 1. **表现层 (Presentation)** - 用户界面和交互 2. **领域层 (Domain)** - 业务逻辑和规则 3. **数据层 (Data)** - 数据访问和存储 4. **核心层 (Core)** - 基础设施和工具 ### 依赖关系 - 表现层 → 领域层 → 数据层 - 上层不直接依赖下层,通过接口解耦 - 使用依赖注入管理组件依赖 ### 设计原则 - **单一职责** - 每个类只负责一个功能 - **开闭原则** - 对扩展开放,对修改关闭 - **依赖倒置** - 依赖抽象而非具体实现 - **接口隔离** - 使用专门的接口而非通用接口 ## 🧪 测试 ### 单元测试 ```bash flutter test ``` ### 集成测试 ```bash flutter test integration_test/ ``` ### 代码分析 ```bash flutter analyze ``` ## 📦 构建和部署 ### 构建APK ```bash flutter build apk --release ``` ### 构建iOS ```bash flutter build ios --release ``` ### 构建Web ```bash flutter build web --release ``` ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 创建 Issue - 发送邮件 - 提交 Pull Request --- **注意**: 这是一个演示项目,展示了Flutter MVVM架构的最佳实践。生产环境使用前请根据实际需求进行调整。