Building an iOS App with React Native and Expo
·~2 min read·Programming
I've been having a lot of fun building an iOS app lately, and a big reason for that is the tooling. React Native with Expo and EAS Build has made the whole thing a little less painful.
Most of my background is on the web, so the parts of mobile I don't have too much experience with were never the UI. It was the native build pipeline. Provisioning profiles, certificates, Xcode getting in a mood, all the ceremony that has nothing to do with the actual app.
Expo takes most of that off my plate. I write the app using React Native and I use typescript with that, same language and the same mental model of typical react apps that I use on the web. A lot of the patterns I'm familiar with carry over without having to think about things differently. This lets me move a little faster when building mobile apps. A big goal of mine is to eventually build an app that's fully native in Swift.
Then EAS Build handles the part I actually didn't like too much. Instead of fighting native builds locally, I kick off a build in the cloud and it handles all of the provisioning, certificates, etc. Things get pushed to App Store connect and then I'm ready to publish a test flight build so I can send it out to test.
None of this means mobile is suddenly trivial. There are still platform quirks, still things that behave differently than the web, still the occasional native module that makes you work for it. But the gap between "I have an idea for an app" and "this is running on my phone" has shrunk enough that I'll actually start. That's the whole battle on a side project.
If you've been web-first and curious about mobile, this is the stack I'd point you at. I'll have more on getting a build all the way to TestFlight in a separate writeup.