The Expo SDK provides access to device and system functionality such as contacts, camera, gyroscope, GPS location, and so on, in the form of packages. You can install any Expo SDK package using the npx expo install
command. For example, three different packages are installed using the following command:
-
npx expo install expo-camera expo-contacts expo-sensors
After installing one or more packages, you can import them into your JavaScript code:
import { Camera } from 'expo-camera';
import * as Contacts from 'expo-contacts';
import { Gyroscope } from 'expo-sensors';
This allows you to write Contacts.getContactsAsync()
and read the contacts from the device, read the gyroscope sensor to detect device movement, or start the phone's camera and take photos.
The easiest way to create a bare React Native app with support for the Expo SDK is by running the command:
# Create a project named my-app
-
npx create-expo-app my-app --template bare-minimum
Projects that were created with npx react-native init
require additional setup to use the Expo SDK.
Learn how to install Expo SDK packages in your project.
Every quarter there is a new Expo SDK release that typically updates to the latest stable versions of React Native and React Native Web, and includes a variety of bug fixes, features, and improvements to the Expo SDK.
Expo SDK version | React Native version | React Native Web version |
---|---|---|
47.0.0 | 0.70.5 | 0.18.9 |
46.0.0 | 0.69.6 | 0.18.7 |
45.0.0 | 0.68.2 | 0.17.7 |
44.0.0 | 0.64.3 | 0.17.1 |
Packages in the Expo SDK are intended to support the target React Native version for that SDK. Typically, they will not support older versions of React Native, but they may. When a new version of React Native is released, the latest versions of the Expo SDK packages are typically updated to support it. However, this may take weeks or more, depending on the extent of the changes in the release.
Each version of Expo SDK supports a minimum OS version of Android and iOS. For Android, the compileSdkVersion
is defined which tells the Gradle which Android SDK version to use to compile the app. This also means that you can use the Android API features included in that SDK version and from the previous versions.
Expo SDK version | Android version | compileSdkVersion | iOS version |
---|---|---|---|
47.0.0 | 5+ | 31 | 13+ |
46.0.0 | 5+ | 31 | 12.4+ |
45.0.0 | 5+ | 31 | 12+ |
44.0.0 | 5+ | 30 | 12+ |