本文档提供了1Panel移动端APP开发环境的详细设置指南,帮助开发人员快速搭建开发环境并开始工作。同时,本文档也包含了开发标准和规范,以确保代码质量和可维护性,避免"屎山代码"的堆积。
- 操作系统:Windows 10/11、macOS 12+、Linux (Ubuntu 20.04+)
- 处理器:Intel Core i5 或更高配置
- 内存:8GB RAM 或更高
- 存储空间:至少 10GB 可用空间
- 网络连接:稳定的互联网连接
- Flutter SDK:3.16+(推荐最新稳定版)
- Dart SDK:3.2+(与Flutter SDK捆绑)
- Android Studio:最新稳定版(用于Android开发)
- Xcode:14.0+(macOS上,用于iOS开发)
- Visual Studio Code:最新稳定版(推荐的代码编辑器)
- Git:最新稳定版
- 访问 Flutter官网下载页面 下载最新的Flutter SDK压缩包
- 解压Flutter SDK到你选择的目录(例如
C:\src\flutter) - 将Flutter的
bin目录添加到系统环境变量PATH中 - 打开命令提示符或PowerShell,运行以下命令以验证安装:
flutter doctor
- 访问 Flutter官网下载页面 下载最新的Flutter SDK压缩包
- 解压Flutter SDK到你选择的目录(例如
~/development/flutter) - 将Flutter的
bin目录添加到PATH中:echo "export PATH=\$PATH:\$HOME/development/flutter/bin" >> ~/.zshrc source ~/.zshrc
- 打开终端,运行以下命令以验证安装:
flutter doctor
- 访问 Flutter官网下载页面 下载最新的Flutter SDK压缩包
- 解压Flutter SDK到你选择的目录(例如
~/development/flutter) - 将Flutter的
bin目录添加到PATH中:echo "export PATH=\$PATH:\$HOME/development/flutter/bin" >> ~/.bashrc source ~/.bashrc
- 打开终端,运行以下命令以验证安装:
flutter doctor
- 访问 Android Studio官网 下载并安装最新版本的Android Studio
- 启动Android Studio,并按照安装向导的指示完成设置
- 在Android Studio中安装Android SDK、Android SDK Platform-Tools和Android SDK Build-Tools
- 配置Android SDK环境变量:
- Windows: 设置
ANDROID_SDK_ROOT环境变量指向Android SDK的安装路径 - macOS/Linux: 在shell配置文件中添加
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
- Windows: 设置
- 在Android Studio中,点击"Tools" > "AVD Manager"
- 点击"Create Virtual Device..."
- 选择一个设备定义(推荐使用"Pixel 5"或更高版本)
- 选择一个系统镜像(推荐使用最新的稳定版Android系统)
- 完成虚拟设备的创建和配置
- 从Mac App Store下载并安装最新版本的Xcode
- 打开Xcode,按照提示完成初始设置
- 安装Xcode命令行工具:
xcode-select --install
- 在Xcode中,点击"Xcode" > "Preferences" > "Components"
- 选择并安装最新的iOS模拟器
- 打开模拟器:
open -a Simulator
- 访问 Visual Studio Code官网 下载并安装最新版本的VS Code
- 打开VS Code,安装以下推荐的扩展:
- Flutter(由Dart Code提供)
- Dart(由Dart Code提供)
- Material Icon Theme
- GitLens
- Bracket Pair Colorizer
- 访问 Git官网 下载并安装最新版本的Git
- 配置Git用户名和邮箱:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
- 打开命令行工具(命令提示符/PowerShell/终端)
- 导航到你想要存储项目的目录
- 运行以下命令克隆项目代码:
git clone <repository-url> cd onepanelapp_app
- 在项目根目录中,运行以下命令安装Flutter依赖:
flutter pub get
- 运行以下命令安装代码生成工具:
flutter pub run build_runner build --delete-conflicting-outputs
- 在项目根目录创建一个
.env文件 - 添加以下配置(根据你的环境修改):
API_BASE_URL=https://your-1panel-server.com DEBUG_MODE=true
- 在VS Code中打开项目
- 配置调试器:点击"Run" > "Add Configuration" > 选择"Dart & Flutter"
- 更新
launch.json文件以包含正确的配置
- 确保Android模拟器正在运行或已连接Android设备
- 在VS Code中,按
F5或点击"Run" > "Start Debugging" - 或者在命令行中运行:
flutter run
- 确保iOS模拟器正在运行或已连接iOS设备
- 在VS Code中,按
F5或点击"Run" > "Start Debugging" - 或者在命令行中运行:
flutter run
Flutter提供了一组强大的开发工具,用于调试、性能分析和UI检查:
- 在命令行中运行:
flutter pub global activate devtools
- 启动应用后,运行:
flutter pub global run devtools
- 在浏览器中打开提供的URL
# 检查Flutter环境
flutter doctor
# 获取依赖
flutter pub get
# 运行应用
flutter run
# 热重载(在应用运行时按r键)
r
# 热重启(在应用运行时按R键)
R
# 构建APK
flutter build apk
# 构建iOS应用
flutter build ios
# 运行测试
flutter test
# 生成代码
flutter pub run build_runner build如果运行flutter doctor时出现Android许可证问题:
flutter doctor --android-licenses按照提示接受所有许可证。
如果遇到依赖冲突:
flutter pub upgrade或删除pubspec.lock文件后重新运行flutter pub get。
如果Xcode版本不兼容:
- 更新到最新版本的Xcode
- 或在
Podfile中指定兼容的iOS版本
如果Android模拟器启动缓慢,可以启用GPU加速或使用物理设备进行开发。
为确保项目的代码质量、可维护性和可扩展性,所有开发人员必须严格遵守以下开发标准和规范。
- 遵循Dart官方风格指南
- 使用2个空格进行缩进
- 每行不超过100个字符
- 使用小驼峰命名变量和函数(如
userName、getUserData()) - 使用大驼峰命名类和枚举(如
UserModel、AuthService) - 使用下划线前缀标识私有成员(如
_privateVar、_privateMethod()) - 导入顺序:Dart核心库、Flutter库、第三方库、项目内部库
- 使用空安全(null safety)特性
- 避免使用
dynamic类型
- 组件命名使用大驼峰(如
UserProfileCard) - 组件应保持单一职责
- 使用
const构造函数创建无状态组件 - 避免在
build方法中执行复杂计算 - 使用
const修饰符优化性能 - 组件应具备可复用性和可测试性
- 优先使用组合而非继承
- 采用MVVM(Model-View-ViewModel)或Clean Architecture架构模式
- 分离UI逻辑和业务逻辑
- 使用依赖注入管理对象创建和依赖关系
- 实现数据层与UI层的松耦合
lib/:主源代码目录src/:应用源代码models/:数据模型services/:服务类(API调用、数据处理等)viewmodels/:视图模型(处理UI逻辑和状态)views/:UI组件和页面widgets/:可复用UI组件utils/:工具函数和辅助类constants/:常量定义routes/:路由配置themes/:主题和样式localization/:国际化资源
main.dart:应用入口文件
- 优先使用Flutter内置的状态管理(
setState、InheritedWidget) - 对于复杂状态,使用
Provider、Riverpod或Bloc - 避免在Widget之间直接传递状态
- 状态应尽可能在最低需要它的层级上管理
- 对于全局状态,考虑使用单例或全局状态管理器
- 统一的错误处理机制
- 使用try-catch捕获可能的异常
- 为网络请求添加超时处理
- 向用户显示友好的错误信息
- 记录详细的错误日志,包括时间、操作、错误类型和堆栈跟踪
- 实现崩溃报告机制
- 使用统一的日志工具(如
logger包) - 分级日志:调试、信息、警告、错误、严重错误
- 在开发环境显示详细日志,生产环境只记录关键信息
- 避免在日志中包含敏感信息(如密码、令牌等)
- 实现日志文件存储,便于问题排查
- 优化Widget重建
- 使用
const构造函数 - 实现懒加载和分页加载
- 优化网络请求(缓存、压缩、批量请求)
- 合理使用
FutureBuilder和StreamBuilder - 避免内存泄漏(正确处理流订阅、定时器等)
- 使用
Flutter DevTools进行性能分析
- 安全存储敏感信息(使用
flutter_secure_storage) - 避免硬编码凭证
- 实现HTTPS通信
- 定期刷新认证令牌
- 验证所有用户输入
- 防止SQL注入和XSS攻击
- 实现数据加密存储
- 创建新分支进行开发:
git checkout -b feature/your-feature-name
- 提交更改:
git add . git commit -m "Add feature description"
- 推送到远程仓库:
git push origin feature/your-feature-name
- 创建Pull Request进行代码审查
- 所有代码更改必须通过Pull Request
- 至少需要一位团队成员批准才能合并
- 确保所有测试通过
- 遵循项目的代码规范
- 关注代码质量、性能和安全性
- 提供具体的反馈和改进建议
- 为所有公共API编写文档注释
- 代码注释应解释为什么这样做,而不是做了什么
- 为复杂的业务逻辑提供流程图或说明
- 定期更新API文档和用户文档
- 确保文档与代码保持同步
- 阅读项目文档,了解项目架构和设计
- 熟悉1Panel API文档
- 开始实现功能或修复Bug
- 定期更新Flutter SDK和依赖
通过遵循本指南,您应该能够成功设置1Panel移动端APP的开发环境并开始开发工作。如果您遇到任何问题,请参考Flutter官方文档或联系团队成员寻求帮助。