Exploring Expo Application Services: Building, Deploying and Managing Mobile Apps with Ease.
Tags: reactnative, javascript, expo, mobile
Published: 2023-03-02 06:53:47

Expo is a popular open-source toolchain for developing and building mobile applications using React Native. It provides a set of pre-built native modules and components that makes it easy to create high-quality apps for Android and IOS.

In this blog, we will discuss Expo Application Services (EAS) and the usage of `eas-cli` for creating builds for IOS and Android.

## Expo Application Services (EAS)

EAS is a set of cloud-based tools and services that provide end-to-end support for building, deploying and managing Expo applications. It includes a wide range of features such as over-the-air updates, push notifications, analytics, and more.

EAS is available for free, with some limitations on usage, and also offers a [paid plan](https://expo.dev/pricing) for business and teams that require more resources and features.

One of the key benefits of using Expo Application Services is the ability to build and deploy applications without requiring any native build tools or infrastructure. Expo provides a cloud-based service that compiles your JavaScript code and assets into native code for IOS and Android, allowing you to quickly test and deploy your app to real devices. Expo also provides over-the-updates, which allow you to make changes to your app without requiring users to download a new version from the App Store / Play Store.

## EAS-CLI

Expo Application Services CLI (eas-cli) is a command-line interface tool that provides a set of commands for managing and deploying Expo applications. EAS-CLI, is a replacement for Expo's legacy build tools (expo-cli) and provides a more streamlined and efficient workflow.

_**Installation**_

To use EAS-CLI, you first need to install it using npm. Open your terminal or command prompt and enter the following command:

```
npm install -g eas-cli
```

_**EAS Login**_

Once EAS-CLI is installed, you need to login/signup for with Expo Account using the following command:

```
eas login
```

If you are already logged in using Expo Account using Expo-CLI, there is no need to log in again. You can check whether you are logged in or not by using the following command:

```
eas whoami
```

_**Configuration for EAS Build**_

To configure your application for EAS Build, run the following command:

```
eas build:configure
```
This will create an `eas.json` file in your project which will have information about your cli version and different profile like `development`, `preview`, `production`, etc.

**_Building_**

The profiles can be modified according to your preference. Let's assume you want to build an APK file to test on real Android devices for testing purposes under the development profile, you can achieve that by adding the following tags in your `eas.json`:

```
'android.buildType': 'apk' ,
'gradleCommand': ':app:assembleRelease'
```

In order to specifically build the development profile you can run the following command:

```
eas build -p android --profile development
```
where, -p stands for platform.

You can get more information on building for [Android](https://docs.expo.dev/build-reference/apk/) and [IOS](https://docs.expo.dev/build-reference/simulators/) from the embedded links.


**_Building binaries for App Store and Play Store_**

You can build the binary for Android and IOS using the following EAS-CLI commands:

```
eas build --platform ios
eas build --pltform android
```


EAS-CLI also provides a range of other commands for managing your build configuration, credentials, and more. You can run the following command to view the status of your builds:

```
eas build:list
```

This will show you a list of your recent builds, along with their status, duration, and other details.


**In conclusion**, Expo Application Services and EAS-CLI provides a powerful and efficient workflow for building, deploying, and managing Expo applications. With EAS, you can quickly build and deploy your app without requiring any native build tools or infrastructure. EAS-CLI enables you to manage your build configuration and credentials from the command line, making it easier to automate your build and deployment process.

Also, if you enjoyed this content and would like to stay updated on future posts, feel free to connect with me on [LinkedIn](https://www.linkedin.com/in/aditya-mathur-52322b16a/) or [X](https://twitter.com/adii_mathur) or check out my [Github ](https://github.com/adii9)profile. I'll be sharing more tips and tricks on Django and other technologies, so don't miss out!

If you find my content valuable and would like to support me, you can also [buy me a coffee](https://www.buymeacoffee.com/aditya360l). Your support helps me continue creating helpful and insightful content. Thank you!