Expo and EAS is my preferred choice for building a new product these days.
I was focused on native Android development (Java/Kotlin) for many years. React Native (I first used in late 2016) and Expo (I first used it in production in early 2020) have matured so much over the last years and all the Expo tooling is a game changer for building (cross platform) apps.
A few examples of how Expo has changed the game:
- The Expo Go or Expo dev client make it possible to no longer need XCode or Android Studio during development and thus make it much easier to bring engineers onto a project who do not necessarily have mobile dev experience. The dev client can be built locally by one engineer and shared with the team or can be built in the cloud with EAS Build.
- Upgrades in bare React Native projects used to be painful and time consuming. With Expo prebuild, one can (re-)generate the native projects at any time including after upgrading to the latest RN/Expo versions. Further this allows having to never source control the iOS/Android folders.
- Expo config plugins have made it possible (and really straightforward) to apply modification to the XCode/AS projects such as adding permissions or adding extensions. Requiring modifications to the XCode/AS projects used to be a reason for having to use bare RN / eject from Expo.
- The Expo Modules API has made it really simple to create a library project and allows for writing the native code in Swift/Kotlin. Setting up and maintaining a RN library used to be a lot more involved especially if it was small and not touched very often.
- The entire Expo EAS offering basically provides you with what normally a mobile ops time would provide - builds in the cloud, app store submission and ota updating. For anyone who has set this up with Buildkite/App Center/CI tool knows how much time this could cost / take.
And these are just a few things that are top of mind.
It is my experience that using Expo + dev client, allows me to bring together a team from all backgrounds (iOS, Android, web, backend) and quickly get everyone up and running, contributing and have impact.
The first product I built with Expo was HowWeFeel (April 2020) and with a small team we shipped the initial version iOS, Android and web in less than two weeks. The most recent product is Pinterest TV Studio and because of Expo/RN it is feasible for us to have it not only available for iOS but also Android.
I'm excited for the future of Expo and curious what will drop during launch party (August 8th).