Emergent

Features › Core Features

Mobile App Development

Build and deploy mobile apps with Expo/React Native

Mobile App Development on Emergent

Emergent supports cross-platform mobile app development using Expo (React Native framework). Build apps for both iOS and Android from a single codebase!

What you can build:

  • iOS apps
  • Android apps
  • Cross-platform apps
  • Production-ready mobile applications

Requirements

Paid Subscription

Required!

Mobile Agent only available on paid plans (\$20+/month)

Not available on Free Tier

Tech Stack

Fixed Stack:

* Frontend: Expo (React Native)
* Backend: FastAPI
* Database: MongoDB

Info

Supported: Expo/React Native only

Not Supported: Flutter, native Kotlin, native Swift

How to Access Mobile Agent

1

Have Paid Subscription

Upgrade to any paid plan ($20+/month)

2

Go to Home Screen

Return to Emergent home screen

3

Select Mobile Agent

Click agent dropdown (shows "E1", "E1.5", etc.)

Choose "Mobile"

4

Describe Your App

Enter what you want to build:

I want to build a mobile app for [purpose].

Features:
- [Feature 1]
- [Feature 2]
- [Feature 3]

Please create an Expo/React Native app.
5

Start Building

Click "Start Task"

Mobile Agent starts building your app!

What is Expo?

Expo is a framework built on top of React Native that makes mobile development easier.

Key Benefits:

  • Write once, run on iOS and Android
  • Hot reload during development
  • Access to native device features
  • Easy deployment with EAS
  • Over-the-air updates

What you can access:

  • Camera and photos
  • Location services
  • Push notifications
  • File system
  • Sensors (accelerometer, gyroscope)
  • And much more!

Generate a .pem File from Your Signing Key

To generate a build for a pre-existing Play Store app on Emergent, you'll need to export your signing key as a .pem file. This is a one-time setup that takes under a minute.

Info

You'll need openssl installed (pre-installed on macOS and Linux) and keytool (pre-installed with Java/JDK, required only for .jks / .keystore files). Keep your key alias, keystore password, and key password handy.

There are two alternative paths for generating .pem file

Path 1: From a .p12 / .pfx File

1

Open a terminal

Navigate to the directory where your keystore file is located.

2

Run the following command

openssl pkcs12 -in <keystore_file> -nodes -passin pass:<keystore_password> -out combined.pem

Path 2: From a .jks / .keystore File

1

Open a terminal

Navigate to the directory where your keystore file is located.

2

Run the following command

keytool -importkeystore \
  -srckeystore <keystore_file> \
  -destkeystore temp.p12 \
  -deststoretype PKCS12 \
  -srcalias <key_alias> \
  -srcstorepass <keystore_password> \
  -srckeypass <key_password> \
  -deststorepass temp123 \
&& openssl pkcs12 -in temp.p12 -nodes -passin pass:temp123 -out combined.pem \
&& rm temp.p12

Info

The .pem file must contain both your private key and certificate. Both are extracted automatically by the commands above.

Generating a .p8 Key from Apple Developer Account

  1. Sign in at developer.apple.com
  2. Go to Certificates, Identifiers & Profiles
  3. Select Keys in the left sidebar
  4. Click the + button to create a new key (or you can reuse an existing key)
  5. Enter a Key Name
  6. Check the service(s) you need (e.g., Apple Push Notifications service (APNs), Sign in with Apple, MusicKit, etc.)
  7. Click Continue, then Register
  8. Click Download to get the .p8 file

Important notes:

  • You can only download the .p8 file once. Save it securely.
  • Note the Key ID shown on the confirmation page — you'll need it for API calls.
  • You'll also need your Team ID (found in Membership details).

Development Workflow

1. Build with Mobile Agent

Tell the agent what you need:

I need a mobile app for tracking workouts.

Features:
- User authentication
- Log workouts (exercise, sets, reps)
- View workout history
- Charts showing progress
- Dark mode

Backend:
- FastAPI REST API
- MongoDB for data storage
- User accounts

Please build this mobile app with Expo.

The agent will:

  • Create Expo project structure
  • Set up React Native components
  • Build FastAPI backend
  • Configure MongoDB
  • Implement all features

2. Test in Preview

During development:

  • Preview functionality available
  • Test on development build
  • Frontend testing subagent for UI tests
  • Debug and iterate

Best practices:

After each major feature, tell agent:
"Test the [feature name] thoroughly with the testing subagent"

3. Download Your Code

When ready to deploy:

  1. Use Emergent's file management tools
  2. Download your complete project
  3. Get all mobile app files locally

Your project includes:

  • Expo app code
  • FastAPI backend
  • Configuration files
  • Assets and resources

Deploying to App Stores

Overview: Using Expo EAS

EAS (Expo Application Services) handles building and submitting your app to stores.

What EAS does:

  • Builds native app binaries (APK/AAB for Android, IPA for iOS)
  • Submits apps to Google Play Store and Apple App Store
  • Provides over-the-air updates
  • All builds happen in the cloud (no Xcode or Android Studio needed!)

Step-by-Step Deployment Guide

Prerequisites

What you'll need:

Expo Account

Sign up at expo.dev

Free tier: 30 builds/month

Paid: More builds (\$29/month)

Developer Accounts

Google Play: $25 one-time

**Apple App Store:** \$99/year

(Only need the stores you're targeting)

Step 1: Set Up EAS Locally

After downloading your code from Emergent:

# Navigate to your mobile app folder
cd your-mobile-app

# Install EAS CLI globally
npm install -g eas-cli

# Login to your Expo account
eas login

# Configure EAS for your project
eas build:configure

This creates eas.json:

{
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {
      "android": {
        "buildType": "apk"
      }
    }
  }
}

Step 2: Build for Android

Build APK/AAB file:

# Build production Android app
eas build --platform android --profile production

# EAS will ask:
# - Generate a new keystore? → Yes (first time)
# - App identifier? → com.yourname.appname

# Build starts on Expo's servers
# Takes 15-30 minutes

What happens:

  1. Code uploaded to Expo servers
  2. Native Android app compiled
  3. Signed with your keystore
  4. AAB file generated

You'll get:

  • Download link for AAB file
  • Build available in Expo dashboard

Step 3: Build for iOS

Build IPA file:

# Build production iOS app
eas build --platform ios --profile production

# EAS will ask:
# - Bundle identifier? → com.yourname.appname
# - Use Apple credentials? → Yes

# Build starts on Expo's servers
# Takes 20-40 minutes

Requirements:

  • Apple Developer account
  • Agree to terms in App Store Connect

You'll get:

  • Download link for IPA file
  • Build available in Expo dashboard

Info

No Mac needed - EAS builds iOS apps in the cloud. You don't need a Mac or Xcode.

Step 4: Submit to Google Play Store

Create App in Google Play Console

  1. Go to play.google.com/console
  2. Click Create app
  3. Fill in details:
    • App name
    • Default language
    • App type (app or game)
    • Free or paid

Prepare Store Listing

Required information:

  • App description (short and full)
  • Screenshots (phone, tablet)
  • Feature graphic
  • App icon
  • Privacy policy URL
  • Content rating questionnaire

Submit with EAS

# Submit to Google Play Store
eas submit --platform android

# Provide when prompted:
# - Google Service Account JSON key
# - Track to submit to (internal, alpha, beta, production)

Getting Service Account Key:

  1. Google Cloud Console → IAM & Admin → Service Accounts
  2. Create service account
  3. Grant "Service Account User" role
  4. Download JSON key file

Review process:

  • Usually 1-7 days
  • May require changes
  • Check Play Console for status

Step 5: Submit to Apple App Store

Create App in App Store Connect

  1. Go to appstoreconnect.apple.com
  2. Click My Apps+New App
  3. Fill in details:
    • Platform (iOS)
    • App name
    • Primary language
    • Bundle ID
    • SKU (unique identifier)

Prepare App Store Listing

Required information:

  • App description
  • Keywords
  • Screenshots (various iPhone sizes)
  • App preview videos (optional)
  • Privacy policy URL
  • Age rating

Submit with EAS

# Submit to Apple App Store
eas submit --platform ios

# Provide when prompted:
# - Apple App Store Connect API Key
# - App Apple ID

Getting API Key:

  1. App Store Connect → Users and Access → Keys
  2. Generate new key with "App Manager" access
  3. Download key file

Review process:

  • Usually 1-3 days
  • May be rejected (follow guidelines)
  • Check App Store Connect for status

App Store Requirements

App Store Requirements

App Store Requirements

Google Play Store

  • App name and description
  • Screenshots (at least 2)
  • Feature graphic (1024x500)
  • High-res icon (512x512)
  • Privacy policy URL
  • Content rating
  • Target age group
  • Target API level 33+ (Android 13)
  • AAB format (not APK for production)
  • 64-bit support
  • Proper permissions declared
  • Size limits (varies, generally under 150MB)
  • Data safety form completed
  • Privacy policy posted
  • Permissions justified
  • COPPA compliance (if targeting children)

Apple App Store

  • App name and subtitle
  • Description (up to 4000 characters)
  • Keywords
  • Screenshots for all device sizes
  • App icon (1024x1024)
  • Privacy policy URL
  • Age rating
  • Copyright info
  • iOS 13.0+ minimum
  • Valid provisioning profile
  • Proper app signing
  • Size limits (4GB max)
  • No crashes or bugs
  • Follow Apple's guidelines
  • No private APIs
  • Proper content rating
  • Clear app purpose
  • Functional app (no placeholders)

Update your app without resubmitting to stores!

What Can Be Updated

Can Update:

  • JavaScript code
  • React components
  • Assets (images, fonts)
  • App logic and UI

Cannot Update:

  • Native modules
  • app.json configuration
  • Permissions
  • Native code (Java/Kotlin/Swift)

How to Push Updates

After making changes:

# Make your code changes
# Then push update:

eas update --branch production --message "Bug fixes and improvements"

# Or for specific platforms:
eas update --platform android --branch production
eas update --platform ios --branch production

Users get updates:

  • Next time they open the app
  • Automatically in the background
  • No app store download needed

Perfect for:

  • Bug fixes
  • UI tweaks
  • Feature updates
  • Content changes

During Development (On Emergent)

Use preview and testing tools:

Tell the agent:
"Test the mobile app thoroughly:
- All screens and navigation
- User authentication flow
- Data fetching and display
- Error handling
- Forms and validation

Use the frontend testing subagent."

You can also preview on mobile via the Expo Go app.

After Download (Local Testing)

Expo Go App (Quick Testing):

# Start development server
npx expo start

# Scan QR code with:
# - Expo Go app (iOS/Android)
# - Camera app (iOS)

Benefits:

  • Instant testing on real device
  • No build needed
  • Fast iteration

Limitations:

  • Some native modules won't work
  • Not identical to production

Development Build (Full Testing):

# Build development version
eas build --platform android --profile development
eas build --platform ios --profile development

# Install on device
# Test exactly like production

Benefits:

  • Full native module support
  • Identical to production
  • Test everything

Common Scenarios

Scenario 1: Building First Mobile App

Tell Mobile Agent:

"I want to build a note-taking mobile app.

Features:
- User signup/login
- Create, edit, delete notes
- Organize notes with folders
- Search functionality
- Dark mode
- Offline support

Backend:
- FastAPI REST API
- MongoDB database
- JWT authentication

Please create this as an Expo app."

Scenario 2: App with Camera Access

Tell Mobile Agent:

"Build a photo sharing mobile app.

Features:
- Take photos with camera
- Choose from gallery
- Add filters/effects
- Upload to server
- View feed of photos
- Like and comment

Include proper permissions for camera and photo library.

Please build with Expo."

Scenario 3: Location-Based App

Tell Mobile Agent:

"Create a location tracking mobile app.

Features:
- Track user's current location
- Show on map
- Save favorite locations
- Get directions
- Location history
- Share location

Include location permissions.

Please build with Expo."

Troubleshooting

Build Failures

Issue: EAS build fails

Solutions:

# Check build logs
eas build:list

# View specific build
eas build:view [build-id]

# Common fixes:
# 1. Check app.json configuration
# 2. Verify dependencies are compatible
# 3. Check for native module issues
# 4. Review error messages carefully

Submission Rejected

Google Play:

  • Follow rejection reasons exactly
  • Update app accordingly
  • Resubmit

Apple App Store:

  • Review rejection details
  • Fix issues mentioned
  • Reply to reviewer if needed
  • Resubmit

Updates Not Appearing

Check:

# View published updates
eas update:list --branch production

# Check specific update
eas update:view [update-id]

# Republish if needed
eas update --branch production --message "Republish"

EAS Pricing

Free Tier

  • 30 builds per month
  • Unlimited EAS Updates
  • Community support

Good for:

  • Development and testing
  • Small projects
  • Learning

Production Plan

  • $29/month
  • More builds
  • Priority build queue
  • Better for active development

Good for:

  • Professional apps
  • Multiple apps
  • Frequent updates

Enterprise

  • Custom pricing
  • Unlimited builds
  • Dedicated support
  • SLA guarantees

Good for:

  • Large teams
  • Mission-critical apps
  • Many apps

Best Practices

Development

Start simple:

Build core features first
Test thoroughly
Add advanced features later

Test on real devices:

Use Expo Go during development
Build development builds for full testing
Test on both iOS and Android

Use version control:

Commit changes regularly
Use Git for version management
Tag releases

Deployment

Before submitting:

  • Tested all features thoroughly
  • No console errors or warnings
  • Proper app icons and splash screens
  • Privacy policy in place
  • Store listing prepared
  • Screenshots captured
  • Tested on multiple devices

Build strategy:

Development → Internal Testing → Beta → Production

Update strategy:

Use OTA updates for JavaScript changes
Rebuild for native changes
Test updates before pushing

Maintenance

Monitor your app:

  • Check crash reports
  • Review user feedback
  • Monitor performance
  • Track analytics

Update regularly:

Bug fixes via OTA updates
Feature updates with app versions
Security patches promptly

Resources

Expo Documentation

App Store Guidelines

Emergent Support

Getting Help

From Emergent

For Mobile Agent issues:

Contact Emergent support:
- Discord community
- Email support
- Describe your mobile app requirements

For code/feature help:

Tell the Mobile Agent:
"I need help with [specific issue in mobile app].
Current behavior: [describe]
Expected behavior: [describe]
Please debug and fix."

From Expo

For EAS issues:

For build issues:

  • Review build logs carefully
  • Check Expo documentation
  • Search existing issues
  • Ask in Expo community

Quick Reference

Essential Commands

# Setup
npm install -g eas-cli
eas login
eas build:configure

# Building
eas build --platform android --profile production
eas build --platform ios --profile production
eas build --platform all --profile production

# Submitting
eas submit --platform android
eas submit --platform ios

# Updating
eas update --branch production --message "Description"

# Checking
eas build:list
eas update:list

Development Workflow

1. Build with Mobile Agent on Emergent
   ↓
2. Test in Preview
   ↓
3. Download code locally
   ↓
4. Set up EAS
   ↓
5. Build with EAS
   ↓
6. Test builds on devices
   ↓
7. Submit to stores
   ↓
8. Wait for approval
   ↓
9. App goes live!
   ↓
10. Push updates with EAS Update

Remember

Mobile Agent requires paid subscription

Remember

Mobile Agent requires paid subscription

Only Expo/React Native supported

EAS handles building and deployment

No Mac needed for iOS builds

OTA updates for JavaScript changes

Test thoroughly before submitting

Both stores require developer accounts

Review processes take 1-7 days

Info

Getting started: Build your app with Mobile Agent, download the code, then use EAS to deploy to app stores. The Mobile Agent handles the complex Expo setup for you!

<Step title="Upgrade to Paid Plan"> If on Free Tier, upgrade to access Mobile Agent </Step> <Step title="Build Your App"> Use Mobile Agent to create your Expo app </Step> <Step title="Download Code"> Get your complete mobile app code </Step> <Step title="Set Up EAS"> Install EAS CLI and configure </Step> <Step title="Deploy"> Build and submit to app stores! </Step> </Steps>

Have questions? Contact Emergent support for help with mobile development!

Made with Emergent