Robinhood OTA 应用
Flutter OTA 应用,用于 Robinhood Super Apps
入门
Get packages:
flutter pub gett
Build Android APK(ARM 32 and ARM 64):
flutter build apk --target-platform android-arm,android-arm64 --split-per-abi
Build for iOS (Requires XCode and will require firebase setup first):
flutter build iOS
Run on a physical device:
flutter run --release
-
支持的设备
- 任何 API 级别大于 16 的 Android 设备
- 任何 iOS 版本大于 iOS 8 的设备
-
命名约定
- 类名:PascalCase 或 UpperCamelCase | 例如:HomeScreen
- 文件名(Dart 或资源):snake_case 或 pothole_case | 例如:home_screen.dart
- 文件名(原生 Android 或 iOS):遵循原生开发约定
- 变量名:lowerCamelCase | 例如:String userFullName
- 常量对象名:以 k 开头的 lowerCamelCase | 例如:kCanvasBackgroundColor
- 枚举值:lowerCamelCase | 例如:firstSelection
-
强制项目模块规则。
- 类名应以模型名称作为前缀 | 例如:LoginAuthScreen, LoginAuthModel。
- 枚举名称应以模型名称作为前缀 | 例如:LoginViewState, LoginScreenState。
- 模块名称在整个层次结构中应保持唯一。
- 主 UI 屏幕应以 Screen 作为后缀 | 例如:LoginAuthScreen, ErrorTimeoutScreen
- 请在有状态小部件的 dispose 方法中释放控制器和 bloc。
- 域模型应以 Domain 作为后缀 | 例如:LoginModelDomain, ErrorDataDomain
- 域中的参数模型应以 ArgumentModelDomain 作为后缀 | 例如:LoginArgumentModelDomain
- 视图中的参数模型应以 ArgumentModel 作为后缀 | LoginUserArgumentModel
-
强制 Android Studio 设置
- 保存时格式化
- 保存时组织导入
- 保持默认的最大字符长度,即 80 个字符
-
从开发到发布的路由
- 维护者将从最新的 develop-feature 分支(例如 develop-flights)拉取,并创建一个集成分支(例如 feature/flights/sprint1_integration)
- 从集成分支创建功能或错误修复分支
- 分支名称应为 feature/branch_name 或 bugfix/branch_name
- feature/ 或 bugfix/ 应仅为小写,否则管道将失败
- 进行所需更改后,在终端中运行以下命令
- flutter test
- flutter analyze
- 一旦两个命令都通过,提交代码并针对集成分支提出 MR
- 每个 MR 需要至少 2 位批准者才能合并
- 冲刺结束后,维护者会将冲刺的集成分支合并到 develop-feature
- 一旦服务准备好进入生产环境,它将被合并到 develop 分支
- develop 分支合并到 main 分支
- Release/prod 构建是从 master 触发的