The white-label transit app for cities and transport networks started here: I architected the React Native codebase for iOS and Android, developed half of the app myself, and built the team around it. Most developers were new to modern JavaScript, React and React Native, so training was part of the mission from day one — daily code reviews, and a safety net wired in early: Flow for static typing, Jest with Storybook snapshots for day-to-day work, Detox end-to-end tests running on a local Jenkins CI.
White-label is the defining constraint: every client network gets its own declination of the app, customized through a dedicated admin interface, with the per-client builds automated by a custom script on top of Fastlane.
The rest was the daily reality of React Native at scale: polished animations that had to stay smooth on low-end devices, Photoshop designs turned into components with all the cases a static mockup never anticipates, native code and bridges for both platforms, and a hand-linked .xcodeproj mess migrated to Cocoapods so that React Native upgrades — several over the mission — stopped hurting. All of it remote, leading developers with very different profiles and levels.
JavaScript · React · ReactNative · Flow · iOS · Android · Git · Lead · Mobile · Maps · Location · Apple Maps · Google Maps · Testing · Jest · Detox · Storybook · Jenkins · Fastlane