One app to rule them all — Building a white-label application with React Native
Let’s build an app that can shape into any app we need.
Mobile technology is taking over the leadership of banking services
We chose to implement the applications with React Native, a mobile application framework leveraging ReactJS on top of a native app, and this choice proved to be advantageous in multiple aspects.
Implementing the view layer in pure JS allowed us to establish a common design system across both mobile platforms and achieve a consistent look and feel with relative ease; developing complex UI components was undoubtedly more intuitive right off the bat, as we could rely on our well-established internal knowledge of ReactJS.
We made the most of the flexibility provided by JavaScript's dynamic runtime and module system to build a platform-agnostic whitelabel engine which, given the application codebase and a set of configurations (theme, feature toogles, endpoints, ...), generates customised variants of the application aimed at different markets.
On the other hand, being able to easily reach for the native APIs allowed us to implement device integrations (e.g. biometric authentication) and meet the strict security requirements that banking apps must satisfy.
Scaling collaboration and delivery
As the number of customisations and features of the apps increases, we need to make sure to deliver new versions of the apps with the smallest amount of effort. This is crucial to guarantee that the development team can stay focused on the code while the stakeholders (i.e. QA team, business) tried the new features and give feedback in a streamlined manner.
To this end, we implemented a sophisticated CI/CD pipeline with GitLab CI and Fastlane that tests, generates and builds all the variants of the app for multiple environments: the QA team can immediately test all newly integrated features by downloading the app through Firebase App Tester; business can access more stable builds with a more careful release schedule through Play Store Beta and Testflight.
A single team is able to develop multiple mobile applications with a unified tech stack across different mobile operating systems
The CI/CD pipeline system guarantees more than 20 daily builds, ensuring a rapid feedback loop between professionals of different departments