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 触发的

TODO Sonar 测试

GitHub

查看 Github