Brownfield integration - exploring the limits
summary
Integrates a full React Native app into an existing native Expensify app using git submodule and duplicated iOS/Android native bases, solving path and duplicate-dependency errors by patching node module references, adjusting CocoaPods and Gradle, and adding build-phase JS bundling plus a Metro IP finder script. Two package.json files force careful dependency resolution; CI validates submodule builds. New Architecture (Fabric) is enabled for the Brownfield app and the merged branch runs in production after months of fixes.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 0:45Understanding brownfield
- 1:36The integration task
- 2:22Project structure
- 3:13Navigating errors
- 4:21Dependency management
- 6:18Gradle and CocoaPods
- 7:06Resolving build issues
- 9:31Overcoming runtime errors
- 10:01Dev experience tips
- 12:04CI and testing
- 12:41Beyond JavaScript
- 13:33Perseverance and success
- 14:14New architecture results
- 16:00Conclusion
related talks
31mReact Native Brownfield: Lessons from the Trenches
30mStrategies For Using React Native In A Brownfield App
28mReact Native in the "Brown Field"
35mBridging the Gap: How to use React Native in existing large native code bases
21mPrompt Once: Scaling Expo Brownfield Across 100+ Apps
20mThe past, present, and future of React Native
24mIntegrating React Native into an existing native codebase
10mGreenfield of Dreams
