Apps
V2 Flutter Multi-tenant
See also — README.md — This repo-based file is a good place to start in terms of understanding the trade dressing system, localization capabilities, etc.
Repositories
BottleDropAppFlutter (OBRC)
bottledrop_mobile2 (PNDLM)
Overview
Consumer-facing mobile apps (BottleDrop, BottleBank, etc.) are built from a single Flutter/Dart codebase. The "trade dressing" system, introduced in mid-2021 for the rollout of the San Francisco BottleBank app, allows for different brands of the app to be produced and maintained from a single codebase, without forks.
Each brand has its own comprehensive trade dress configuration. Excerpts of the Oregon configuration are below.
oregon_trade_dress.dart (excerpts)
bool get hasPlus => true;
bool get hasPhysicalCards => true;
bool get hasAccountActivation => true;
bool get hasCustomerPinCodes => true;
bool get hasUseBalance => true;
class OregonUseBalanceDress implements UseBalanceDress {
Color get accountPlusButtonColor => OregonColors.bdDarkBlue;
Color get accountIconColor => OregonColors.bdDarkBlue;
Color get accountPushArrowColor => OregonColors.bdDarkBlue;
Color get transferCardColor => OregonColors.bdDarkBlue;
Color get transferAmountColor => OregonColors.bdDarkGreen;
List<int> get transferMethods => [
LinkedAccountTypeEnum.Venmo.id,
LinkedAccountTypeEnum.PayPal.id,
LinkedAccountTypeEnum.BankAccount.id,
];
Color get checkDiagramHighlightNumberColor => OregonColors.bdDarkBlue;
Color get checkDiagramHighlightLineColor => OregonColors.bdGreen;
String get payerEntityName => kOBRCFullName;
}
V1 React Native
The old Oregon-only app was decommissioned in early 2021 with the release of BottleDrop 2.0.