Expo SDK 50 is coming soon, and we are thrilled to share some of the amazing new features that will make your app development easier and more fun. In this blog post, Morrow's senior React Native Developer, Costas, gives you a brief overview of the features that we are most excited about, such as native fonts, expo-router, updates, improvements, and more.

To find out all the details and how to use them, check out the official documentation.

Let’s dive in!

Read: "App Development in 2024: Exciting Updates, Trends and What to Expect This Year".

SQLite

expo-sqlite/next is a complete rewrite of the SQLite library, bringing it towards the mature equivalents for web and node and better support patterns like “local-first architecture”. 

Changes include:

  • Sync and async methods
  • Prepared statements
  • Update callbacks
  • Blob data type
  • Support for query builders
  • And many more.

Find out more here.

Read: "Expo SDK Updates: Why keeping your project's Expo SDK updated is crucial and where to find the updates.

Expo Router v3 / (Release candidate)

The expo-router gets a major upgrade with exciting new features.

API Routes: You can now build your API endpoints (GET, POST, PUT, etc.) using the same codebase and router as your client-side app.

Router.navigate: You can now use the router.navigate API for better navigation. Router.push is now only used for pushing to the stack.

Bundle Splitting: On the web when using async import.

Typed Routes: Improved typing by automatically generating TypeScript types for a project.

Testing Library: New improved testing utilities that emulate navigation structures.

Custom app directory: The app directory can now be a custom folder.

URL API support: Built-in support for standard URL API leads to bundle size reduction, especially on the web.

Not-found routes: A +not-found.js route now matches anything unmatched in a directory.

External Links: You can now link to external URLs like mailto: and sms:

And many many, more features. Find them all here.

EAS Update Rollback

Instructing your production apps to roll back to their embedded update the next time they check for updates is now possible. 

Find more details here.

EAS Rollouts

You can now gradually roll out updates to a percentage of your users to minimise the risk of introducing bugs or other issues to production.

an image showing a graph with 75% production and 25% Hotfix

Read details here.

Expo Updates Hooks API

A new useUpdates() hook that makes it easier to manage and interact with the updates API from within your app.

Find more details here.

Read: "An Updated Developer's Guide to Taming Expo’s Environmental Variables (in Expo SDK v49)".

Expo Font on native bundle

Fonts can now be bundled on the native level, and you don’t have to load them in an async way. 

More details here.

Expo Fingerprint

“How do I know if an app JavaScript bundle is compatible with a particular build of my app?”. The answer is the new @expo/fingerprint utility:

- Read me

- Expo Github action

Expo Camera Next

The new expo-camera/next offers updated camera capabilities with the native platform's best practices.

Expo Secure Store

Expo-secure-store now supports sync versions of getItem and setItem and more behaviour unification in iOS and Android.

Expo Dev Tools Plugin API

An API that allows adventurous developers to build their browser-based plugins to debug and interact with their library/app.

Path Aliases

Now you only have to define aliases in tsconfig.json file to be able to map import path aliases.

For example:

“@/": ["src/"]

Allows to import like:

import Button from '@/components/Button'

These are only a few of the exciting new features and updates that are coming in Expo SDK v50. Visit Expo's website to find out more.

Happy coding!

Looking for Expo support or help moving to Expo SDK 50? Book a free 30-minute consultation with our expert team here.

More insights