Flutter OTA app for Robinhood Super Apps
Robinhood OTA App
Flutter OTA app for Robinhood Super Apps
Getting Started
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
-
Supported devices
- Any android above API level 16
- Any iOS device above iOS 8
-
Naming Convention
- Class names: PascalCase or UpperCamelCase | Eg: HomeScreen
- File names (Dart or assets): snake_case or pothole_case | Eg: home_screen.dart
- File names (Native Android or iOS): Follow native development conventions
- Variable names: lowerCamelCase | Eg: String userFullName
- Constant object names: lowerCamelCase starting with k | Eg: kCanvasBackgroundColor
- ENUM values: lowerCamelCase | Eg: firstSelection
-
Mandatory Project Module rules.
- Class name should should have model name as prefix | Eg: LoginAuthScreen, LoginAuthModel.
- Enum name should have model name as prefix | Eg: LoginViewState, LoginScreenState.
- Module name should be unique throughout the hierarchy.
- Main Ui Screen should have Screen as a suffix | Eg: LoginAuthScreen, ErrorTimeoutScreen
- Please Dispose controllers and blocs in dispose method of stateful widget.
- Domain models should have Domain as suffix | Eg: LoginModelDomain, ErrorDataDomain
- Argument Models in Domain should have ArgumentModelDomain as suffix | Eg: LoginArgumentModelDomain
- Argument Models in View should have ArgumentModel as suffix | LoginUserArgumentModel
-
Mandatory Android Studio Settings
- Turn on format on save
- Turn on organize imports on save
- Keep the default max char length i.e. 80 chars
-
Route from development to release
- Maintainer will take a pull from the latest develop-feature branch (eg. develop-flights) and create an integration branch (eg. feature/flights/sprint1_integration)
- Create a feature or a bugfix branch from integration branch
- Branch name should either be feature/branch_name or bugfix/branch_name
- feature/ or bugfix/ should be all lower case ONLY otherwise the pipeline fail
- After making the required changes run the following commands in the terminal:
- flutter test
- flutter analyze
- Once BOTH commands pass, commit the code and raise MR against the integration branch
- Every MR requires at least 2 approvers to be merged
- Once a sprint is over the maintainers will merge the sprint’s integration branch into develop-feature
- Once a service is ready to go into production it will be merged into develop branch
- develop branch is merged to main branch
- Release/prod build is triggered from master