In the ever-evolving app development landscape, React Native and Expo have emerged as two distinct yet interconnected frameworks. In the past, concerns were raised about the limitations of Expo, such as its lack of flexibility and slower updates compared to React Native. However, as we enter 2024, it's become evident that Expo is here to stay and is doing better than ever. Just have a look at this list of apps using Expo. 

In this article, Morrow's Senior Developer, Costas, explains why React Native developers should consider integrating Expo into their workflow.


Looking for Expo support? We're certified Expo consultants. Book a free 30-minute consultation with our expert team here.


Reason 1: Cross-platform Universal Apps


Mobile devices account for over half of all internet traffic. Furthermore, mobile users spend nearly 90% of their time on apps. This suggests that developing mobile apps could be more beneficial than creating mobile websites. However, one drawback of mobile apps is that they conceal a site's data within the app, making it less accessible to browsers and search engines. Therefore, a combination of both mobile apps and websites might be the optimal solution.

For more insights on this topic, check out Evan Bacon's presentation titled 'Write Once, Route Everywhere: File System-based Navigation for Native Apps'.

Expo is on a mission to bridge the divide between native mobile and web app development. It's like a magic wand that lets you conjure up all three versions of your app (Web, Android, iOS) from a single codebase!

Expo has rolled out some exciting new features that make this unification process even smoother:

Expo's New Router: It allows your mobile device to open the app (if installed) or the corresponding website (if missing). And the best part? It's now a breeze to set up!

Universal Linking: This feature allows your mobile device to open the app (if installed) or the corresponding website (if missing). With the new router, It's now a breeze to set up!

CSS support features streamline component styling even further.


Reason 2: Expo Application Services (EAS)

 

Expo Application Services (EAS) is a suite of cloud-based tools designed to streamline the process of developing, building, and deploying apps for both Expo and React Native. They offer a comprehensive solution for developers, from code compilation to app submission, updates, and more.

Universal App Creation: 

EAS allows you to create genuine native apps from the same JavaScript/TypeScript codebase, which can run on Android, iOS, and the web.

Cloud Compilation: 

With EAS Build, you can compile and sign Android/iOS apps with custom native code in the cloud. This service optimizes binaries by including only required libraries at compile time, resulting in the smallest possible build. CI/CD pipelines are fully supported.

Easy Submission: 

EAS Submit enables you to upload your app to the Play Store or App Store from the cloud with a single command. It also offers automated submission, allowing your builds to be submitted automatically once they finish building.

Updates and Fixes: 

EAS Update allows you to address small bugs and push quick fixes directly to end-users, avoiding 

Metadata and Insights: 

EAS Metadata (In Beta) helps upload all app store information required to get your app published. EAS Insights (In Preview) provides analytics about a project's performance, usage, and reach.

Secrets and Credentials Management: 

EAS helps manage your secrets and credentials, allowing you to focus more on building your app.

As you can see, with EAS services, you can fully automate your react-native application CI/CD on an enterprise level.


Reason 3: Configuration Plugins And Mods


Initially, the developer community argued that using Expo SDK could be limiting. This was because it confined you to a specific set of native modules. If you wanted to incorporate a 3rd party library into your app, you had to "eject", which meant losing access to the convenient features of Expo.

But now, things have taken a turn for the better! With the advent of Expo Config Plugins and Mods, integrating most React-Native libraries that require additional native code configuration has become a breeze. This means you can modify your app's native code while still benefiting from the streamlined 'managed workflow' of the Expo experience. It's a win-win situation!


Reason 4: Development Speed and Experience


Expo SDK is designed to make the development process more efficient, allowing you to quickly turn your ideas into working apps. The user-friendly features of Expo SDK reduce complexity, making app development more accessible, whether you're an experienced developer or a beginner. Let's take a look at the specific features that contribute to this efficient and straightforward development experience.

No Native Code 

You don't need to deal with native code, nor do you need to use XCode and Android Studio to build your apps. The "EAS build" service and managed workflow take care of everything.

Expo Go and Development Client 

"ExpoGo" and the custom "Development Client" enable you to develop your app quickly, offering fast refresh and several troubleshooting tools.

Expo Snack 

This free online service allows you to demonstrate and share your ideas with the rest of the community.


Reason 5: Wide community adoption


The Expo SDK community is a vast and diverse network of developers globally. It's a testament to the adaptability and versatility of Expo SDK that major libraries and tools supporting React-Native also extend their support to Expo. This wide-ranging compatibility amplifies the potential of what you can achieve with Expo SDK. Moreover, there's a burgeoning list of projects that have chosen Expo for their apps, further validating its effectiveness. These projects, ranging from small-scale solutions to large enterprise applications, showcase the scalability and robustness of Expo SDK. This thriving ecosystem is not just a community; it's a testament to the power and potential of Expo SDK.

Here's a recent sample list of Apps that use Expo:

https://evanbacon.dev/blog/expo-2024


Conclusion


Of course, there will be cases where pure React-Native will fit better than Expo SDK. However, since the Expo SDK has undergone explosive growth, the standard question in 2024 should not be "Why should we use Expo?" but "Why are we not using Expo?".


Looking for Expo support? We're certified Expo consultants. Book a free 30-minute consultation with our expert team here.
More insights