# Prerequisites

Thanks to [Expo](https://expo.io), you can run your app on your mobile device. Expo will even build your apps in the cloud for you as well, for free.

However, working on a mobile device can be slow and cumbersome so you may want to install [xCode](https://developer.apple.com/xcode/) and/or [Android studio](https://developer.android.com/studio) for the purpose of testing your app in an iOS or Android simulator and avoid twisting your neck by constantly looking up and down at your phone.

## Gravity Server

As part of your purchase, your app includes [Gravity Server](/gravity-server/introduction.md) – which you'll need to have running in order to manage the server-side processes for your mobile app.

### Database

Before running the setup process, you will need an empty SQL or Mongo database, so fire up a new database using your favourite database service.

### Mailgun Account

Gravity uses Mailgun for sending transaction emails to users, so [go ahead and register a free Mailgun account and set it up. ](https://signup.mailgun.com/new/signup)Please [refer to the Gravity Server Installation instructions](/gravity-server/installation/mailgun-setup.md) for more information.

## Developing for iOS

If you'd like to use the iOS simulator on your Mac for testing your app, or you'd like to get your hands dirty with some native code, download [xCode](https://developer.apple.com/xcode/) (it's free).

### Apple Developer Program

Using Expo without a developer account, you can run your app on your simulator or device. However, if you want to publish your application to the app store or invite Beta testers to install it on their device using [TestFlight](https://developer.apple.com/testflight/), you'll need to join the [Apple Developer Program](https://developer.apple.com/programs/), which costs $99 per year.

## Developing for Android

To run your app on the Android simulator, you'll need to download a free copy of [Android Studio.](https://developer.android.com/studio) Publishing your app on the Google Play store requires registering as a developer with a one-time fee of $25.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.usegravity.app/gravity-native/prerequisites.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
