Changes summary Q4 2022

Jan 31, 2023 by

Avatar of Jon Samp

Jon Samp

Build time reduced by 40%

M1 workers on EAS Build

M1 workers for iOS builds are now generally available. On a simple yet non-trivial app, build times for the exact same codebase improved from ~15 minutes 30 seconds to ~9 minutes just by switching from Intel to M1 workers. That’s a ~40% reduction in build times!

We’ve seen a similar effect on other projects, but every app is different and you’ll just have to try it for yourself to find out.

You can opt in to M1 workers today in a matter of seconds by adding the resourceClass field in your eas.json.

EAS Build improvements

We also released a collection of features to improve the experience of working with builds:

  • eas build:resign allows you to swap the ad hoc provisioning profile of an existing build without re-running the full build. This means you can add a teammate's device to your ad hoc provisioning profile and re-generate the internal distribution build in about a minute.
  • eas build:run downloads a simulator build from EAS' servers and runs it directly on your simulator/emulator. This makes testing your app a snap.
  • You can now sign up for email notifications for build and submission successes and failures through your account settings.
  • You can now view the code changes associated with a build or update by connecting your GitHub repository to your Expo app. After connecting your repository, click the commit hash on a build/update details page to view the commit on GitHub.
  • Updated the ”Running E2E tests on EAS Build” guide to include information about how to run E2E tests for Android apps, which is now possible on EAS Build. The guide demonstrates integration with Detox, but you can adapt it to any tool you like — such as Maestro.
  • Manage your secrets with Doppler with their new guide.

Expo Router V1 release candidate

With the new Expo Router V1 release candidate, screens are automatically generated by creating files in your project.

You can focus on building the content of your screens rather than wrestling with all the boilerplate required to compose screens together. Take advantage of basic routes, layout routes, dynamic routes, group routes, and shared routes that work universally out of the box.

Get started with the expo-router docs.

Expo Image V1 beta

Expo image rendering avif, heic, webp, svg, png, jpeg files

expo-image is designed for speed, and it brings modern image formats to your universal apps.

  • Supports AVIF, WebP, SVG, APNG, HEIC, and ICO. (JPEG, PNG, and GIF too, of course!)
  • Disk and memory caching using the battle tested and performant libraries SDWebImage and Glide under the hood.
  • Supports blurhash, a compact representation of a placeholder for an image.
  • Smoothly transitions between images when the sources change (this is configurable).
  • Runs on Android, iOS, and web.

Get started with the expo-image docs.

Credits

Avatar of Brent Vatne

Brent Vatne for leading EAS Build projects

Avatar of Cedric van Putten

Cedric van Putten for contributions on Expo Router

Avatar of Evan Bacon

Evan Bacon for leading and developing Expo Router

Avatar of Mike Hampton

Mike Hampton as technical lead on EAS Build

Avatar of Tomasz Sapeta

Tomasz Sapeta as technical lead on Expo Image

Wojciech Kozyra for contributions on EAS Build

Dominik Sokal for contributions on EAS Build