Migrating Our Largest Mobile App To React Native
Article Summary
Mauricio de Meirelles from Shopify reveals how they're migrating a 300-screen app to React Native without a full rewrite. The approach they chose might surprise you.
Shopify committed to React Native in 2020, but their flagship mobile app was too large to rebuild from scratch. After initial gradual adoption proved too slow, they pivoted to an aggressive 'Iterative Porting' strategy that balances new features with systematic migration.
Key Takeaways
- Full rewrite would take 3+ years with zero new features delivered
- RICE scoring framework prioritizes migration: Reach × Impact × Confidence / Effort
- All four root screens now run on React Native (users can't tell the difference)
- Training program got entire team shipping RN code within five milestones
- iOS and Android developers became mobile developers, doubling feature velocity
Shopify is successfully migrating their largest app (300 screens) to React Native by building all new features in RN while systematically porting existing ones, avoiding a multi-year rewrite freeze.
About This Article
When Shopify started migrating their 300-screen app, they found iOS and Android had been built quite differently. Product subtitles rendered differently, permission checks worked in separate ways, and GraphQL queries used different fields on each platform.
To fix this, teams took an iterative approach. They migrated screens to React Native one at a time, which forced them to standardize the business logic between platforms. These implementation differences had to be aligned before the code could work across both systems.
Once iOS and Android worked the same way, building new features became much faster. The team no longer had to write the same feature three times: once for native Android, once for native iOS, and once for React Native.