The Joys of React Native: All’s Well That Builds Well
There was a time when saying “I’m building a serious app in React Native” was an admission of either masochism or a deadline. A decade ago, it was the tech equivalent of showing up to a Michelin-starred kitchen with a George Foreman grill and a dream. But friends: things have changed.
Expo—yes, that Expo—is now the best developer experience in mobile.1 React Native is finally good. And I don’t mean “good if you squint and avoid certain features” good. I mean actually good. Productive, stable, and almost suspiciously enjoyable.
Wait, You Like React Native Now?
I do. Although, merely suggesting this gives me a frisson of excitement, it feels almost illegal to say.
React Native always promised to let us build native apps with web-like ergonomics. And for years, that promise was about as trustworthy as a startup CEO saying they’re "reinventing email."2 Every project began with hope and ended with a stack trace involving an Android Gradle plugin, a cursed node_modules
folder, and a five-day yak shave to upgrade a Bluetooth dependency that no one remembered adding.
And then... Expo grew up.
Expo Is Not What You Think It Is
Old Expo was training wheels you threw off the moment you wanted to code in anger. Want background tasks? Eject. Need custom native modules? Eject. Payments? Eject. Think you might want to eject? You already have.3
But now? New Expo is the whole bike. With gears. And a carbon frame. It handles OTA updates, Apple provisioning profiles, and builds that just work, even on Windows, which must have been achieved using some sort of witchcraft.
You can run custom native code. You can integrate SDKs. You can ship real things. You no longer live in fear of expo upgrade
. This isn’t a sandbox, it’s a sandbox with plumbing, heating, and a CI/CD pipeline.
The Good Parts (No, Seriously)
-
Live reload that doesn’t lie to you. Code, save, see. No mystery states. No pretending it rebuilt when it didn’t.
-
Unified dev experience. Same team builds iOS and Android. Same codebase. Same bugs (a win!).
-
Incredible community libs. Most of the ecosystem finally works without making a deal with the devil.
-
TypeScript fixes your old pains. Autocomplete, typings, and shared logic with your backend? You’re living the dream.
Yes, you still write “CSS” that is not CSS.4 And navigation will occasionally send you to the brink of despair.5 But these are acceptable losses for the joy of shipping real mobile apps from a codebase you can actually read.
Microservices for Mobile, But Make It Vibes
React Native isn’t just technically solid now, it’s emotionally right. You get velocity and optional pain. You can start simple and reach for complexity only when you need it. You can build a startup MVP without rewriting it in Swift six months later. You can even, if you hate yourself, bring in some monorepo magic and share code across your entire stack.6
Most importantly: you get focus. React Native (with Expo) gives you a small surface area to think about. It says, "Here’s a sane dev setup. Please stop writing YAML." And in this hellish modern software world of endless choices, that's almost prosaic.
Final Thoughts
React Native is no longer a compromise. It’s a competitive advantage, especially now that Expo has evolved from sidekick to hero. And yes, you’ll still hit some weird edge cases, because it’s software, and we’re all living in a society.7 But for the vast majority of real-world apps? It’s a joy.
A flawed, expressive, fast-moving, post-masochist joy.
1 No, I’m not being paid by Expo. But I would accept payment in the form of working push notifications.
2 They’re not. Reinventing email is just building Slack with worse threading.
3 Remember when "ejecting" was seen as a minor detail in tutorials? Like "oh yeah, just do brain surgery on your toolchain."
4 It's Flexbox, but haunted.
5 Shoutout to react-navigation
, which works well now but once made me question the concept of journeys, code, and even my own sanity.
6 Just don’t name your shared folder common
. It's cursed.
7 And that society includes CocoaPods. Pray for us.
© Alexander Cannon. All disclaimers disclaimable: the author wishes to squash any rumours that he was personally deployed using expo cli
← Read more articles
Comments
No comments yet.