React Native — The Sinner and the Saint
The journey of integrating React Native into native Android, iOS & Web apps of Grofers
There’s been a lot of talk around React Native lately which discuss about its pros and cons and compare it with other cross-platform app frameworks like Flutter.
Sadly, most of the blogs we see published today are centered around some or the other demo RN app being built from scratch.
While that helps in driving awareness and spreading the good word about the possibilities that come with React Native, a lot of its depth is left unexplored; common issues left unattended.
If you’d ask a developer — in a big company that already has an Android & iOS app — about the real troubles that stop them from using React Native, their answers will most likely be centered around this: figuring out how to actually integrate React Native into their existing ecosystem (native apps + web).
They are trying to figure out what kind of impact can one expect if they replace their Android or iOS app with RN code base. Or a bigger question: is it even possible to go 100% React Native?
At Grofers, we made a bold decision a year back to invest heavily into React Native. We were impressed by what React Native promised.
It enabled us to run experiments quickly and make changes on the fly into all our apps. To add to that, one codebase could then be deployed to all our four platforms — Android, iOS, PWA and desktop web, leading to lesser maintenance and no more playing catch up for our secondary platforms.
When we started out, we had in our reference only this comprehensive Airbnb blog series that mostly shares what’s wrong with RN.
But after a year of running multiple React Native screens including our home screen (on all our platforms- Android, iOS, PWA, desktop web) we feel equipped to release a new fresh blog series and talk about our journey with React Native in detail.
Fun fact: Our Grand Orange Bag Days sale landing pages which served >1million Daily Active Users across our Android, iOS and web apps were all powered by React Native & React Native Web.
Here are the topics we’ll cover in the coming weeks:
- Lights, Camera, Action — Planning the first React Native Release
- The Birth — Structuring a React Native project
- Interaction with the world — Integrating third party React Native libraries
- Utilizing its core strength — Over The Air updates with Codepush
- The brainchild — Integrating React native for the web
- Bug bites — Logging and debugging React Native issues in production
- Building from scratch — Taking the Expo route
- Adding Adjacent Views to React Native Swiper as an Intern
- The Final Call — The good and the bad of React Native
Stay tuned and please comment if you would like to know about any particular topic.
We wish to have as many open ended discussions as possible on React Native and its integration with brownfield apps.