# flutter_application **Repository Path**: cfzhu0121/flutter_application ## Basic Information - **Project Name**: flutter_application - **Description**: A new Flutter project. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-02-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flutter Application 1 一个 Flutter 入门学习项目,包含常用功能封装和最佳实践示例。 ## 📋 项目简介 本项目是一个 Flutter 学习实践项目,涵盖了以下核心功能: - 🌐 网络请求封装(Dio) - 💾 本地存储封装(SharedPreferences) - 🔐 登录认证与 Token 管理 - 📱 页面路由管理 - 🎯 状态管理(GetX) ## 🛠️ 技术栈 | 技术 | 版本 | 说明 | | ----------------- | -------- | ------------------------ | | Flutter | >=2.19.4 | 跨平台 UI 框架 | | Dio | ^5.9.0 | HTTP 网络请求库 | | GetX | ^4.7.2 | 状态管理、路由、依赖注入 | | SharedPreferences | ^2.2.2 | 本地键值对存储 | | Provider | ^6.0.0 | 状态管理 | ## 📁 项目结构 ``` lib/ ├── api/ # API 相关 │ ├── dio_request.dart # Dio 请求封装(单例、拦截器、错误处理) │ ├── mock_interceptor.dart # Mock 数据拦截器 │ └── post_api.dart # 文章接口 ├── models/ # 数据模型 │ └── post.dart # 文章模型 ├── pages/ # 页面 │ ├── login/ # 登录模块 │ │ └── login.dart # 登录页面 │ └── main/ # 主页模块 │ ├── home.dart # 首页 │ ├── favorite.dart # 收藏页 │ └── mine.dart # 我的页面 ├── routes/ # 路由配置 │ └── index.dart # 路由表 ├── stores/ # 状态管理 │ └── favorite_controller.dart # 收藏控制器 ├── utils/ # 工具类 │ └── sp_util.dart # SharedPreferences 封装 ├── assets/ # 静态资源 └── main.dart # 应用入口 ``` ## 🚀 快速开始 ### 环境要求 - Flutter SDK >= 2.19.4 - Dart SDK >= 2.19.4 ### 安装依赖 ```bash flutter pub get ``` ### 运行项目 ```bash # Web flutter run -d chrome # Android flutter run -d android # iOS flutter run -d ios ``` ## ✨ 核心功能 ### 1. Dio 网络请求封装 位置:`lib/api/dio_request.dart` **特性:** - 单例模式 - 请求/响应拦截器 - 统一错误处理 - Token 自动注入 - 日志记录(调试模式) - 支持文件上传/下载 **使用示例:** ```dart // GET 请求 final response = await dioRequest.get('/api/posts'); // POST 请求 final result = await dioRequest.post('/api/login', data: { 'username': 'test', 'password': '123456', }); // 文件上传 await dioRequest.upload('/upload', formData: formData); ``` ### 2. 本地存储封装 位置:`lib/utils/sp_util.dart` **使用示例:** ```dart // 初始化(在 main.dart 中) await SpUtil.getInstance(); // 存储 Token await SpUtil().setToken('your-token'); // 获取 Token final token = SpUtil().getToken(); // 检查登录状态 if (SpUtil().isLoggedIn()) { // 已登录 } ``` ### 3. Mock 数据拦截器 位置:`lib/api/mock_interceptor.dart` 开发阶段可使用 Mock 拦截器模拟接口返回,无需后端服务。 ## 📝 开发规范 - 使用中文注释 - 遵循 Flutter 官方代码规范 - 组件化开发,单一职责 - 统一错误处理 ## 📄 License MIT License