React Native in GrabPay

This post details the adoption of React Native for specific modules within the Grab Passenger app (Express, Transaction History, Postpaid BillPay), following the success of the GrabPay Merchant App. It outlines the goals of code reusability, reduced maintenance, matching native performance, and efficient resource utilization. Challenges in convincing teams to adopt React Native and the increased binary size are discussed. The post highlights the use of the Grablet architecture for integrating React Native modules, a framework for encapsulating React Native binaries, and the creation of extensive JS bridges. Specific components, API call optimizations, localization strategies using React Localize Redux and moment, and state management with Redux are detailed. The end product showcases identical UIs and codebases for Android and iOS versions of BillPay and Transaction History. Future plans include migrating to TypeScript, reducing native dependencies, refactoring modules, and achieving 100% unit test coverage.