Nowadays, there are thousands of application on mobile to fill customer's demands. However, development on both IOS and Android is extremely tough and time-wasting. React Native comes to handle that, with same source code, developers can build for IOS as well as Android. Based on React Native, Expo is a framework with a set of tools to support coders to work smoothly.
To begin with, developers don't need macOS to build mobile app. That's one of greatest advantage of Expo because Expo builds projects by its server (expo.dev) I will mention later. Now, first step just install and initiate application.
Something developers need to be familiar with when working Expo. Firstly, console terminal is responsle for running app on virtual devices and debug.
Secondly, Expo Go will help to run application in real devices. People can install on both App store and android. That's perfect way to debug and test on devices. Expo automatically show it on Expo, which bases on same network. If localhost and device cannot use same network, Expo also support by adding --tunnel in npx expo start. Beside, there is a variety of options: --clear (without cache env),
Thirdly, http://expo.dev is dashboard manage project with significant information like: project ID, project slug, build process, creadentails (include keystore), Secrets (environment variable)
To link local project to expo.dev, developer should login and can register if don't have.
Finally, EAS (Expo Application Services) is essential for deployment on GG store and App store. Building Apk or bundle file are handled by eas. Coder also can create new or update existing keystore for app.
EAS refers to eas.json in local project, coder define environment, buildType( apk, app-bundle) to deploy on GG play and appleId to submit on App store.