Showcase of an Expo app written in TypeScript.
This is a React Native demo app using the Expo framework and written in TypeScript. It uses the managed workflow.
This repo used to also contain a type definition file for Expo. That work was merged into the
@types/expopackage.
@types/expois now deprecated in favor of definition types includes with the
expopackage. TypeScript FTW!
You don't need to install any global npm packages for this repo.
expo-cliis included as a dev dependency.
There are a surprising amount of of warnings when installing Node packages, because of peer dependencies not being correct. My guess is that the Expo team has a tough time getting all the added React Native libraries to play well together. This app seems to run fine, so I believe it's safe to ignore the warnings.
Start the local server. This will give you a QR code that you can scan using the Expo Client app on your mobile device.
yarn start
If you're on a Mac and have Xcode installed, you can run the app using the iOS Simulator with the following command. I am sure you can do something similar with Android.
yarn ios
When upgrading Expo,
expo-cliwill also upgrade the versions of all the package that it knows about. This list naturally includes all the
expo-packages, but also a few more. Do not change the version numbers of the known packages. Unknown packages may be upgraded. More info in my blog post Upgrade an Expo App.
Known packages:
@unimodules/core, expo-analytics-amplitude, expo-apple-authentication, expo-asset, expo-av, expo-barcode-scanner, expo-blur, expo-brightness, expo-camera, expo-constants, expo-facebook, expo-font, expo-linear-gradient, expo-local-authentication, expo-permissions, expo-sensors, react-native-gesture-handler, react-native-maps, react-native-reanimated, react-native-screens, react-native-svg, react-native-safe-area-context, @react-native-community/masked-view, react-native, react, typescript, @types/react, babel-preset-expo, @types/react-native, expo.
Unknown packages:
@react-navigation/native, @react-navigation/stack, tslib, @types/expo__vector-icons, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint, eslint-config-prettier, eslint-plugin-prettier, eslint-plugin-react, expo-cli, prettier.
If you have issues running the app it may help clearing the React Native packager cache. Use the command
yarn expo start --clearto do this.
More tips found in this thread on the Expo Forum.