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
Have Paid Subscription
Upgrade to any paid plan ($20+/month)
Go to Home Screen
Return to Emergent home screen
Select Mobile Agent
Click agent dropdown (shows "E1", "E1.5", etc.)
Choose "Mobile"
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.
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
Open a terminal
Navigate to the directory where your keystore file is located.
Run the following command
openssl pkcs12 -in <keystore_file> -nodes -passin pass:<keystore_password> -out combined.pem
Path 2: From a .jks / .keystore File
Open a terminal
Navigate to the directory where your keystore file is located.
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
- Sign in at developer.apple.com
- Go to Certificates, Identifiers & Profiles
- Select Keys in the left sidebar
- Click the + button to create a new key (or you can reuse an existing key)
- Enter a Key Name
- Check the service(s) you need (e.g., Apple Push Notifications service (APNs), Sign in with Apple, MusicKit, etc.)
- Click Continue, then Register
- 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:
- Use Emergent's file management tools
- Download your complete project
- 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:
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:
- Code uploaded to Expo servers
- Native Android app compiled
- Signed with your keystore
- 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
- Go to play.google.com/console
- Click Create app
- 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:
- Google Cloud Console → IAM & Admin → Service Accounts
- Create service account
- Grant "Service Account User" role
- 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
- Go to appstoreconnect.apple.com
- Click My Apps → + → New App
- 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:
- App Store Connect → Users and Access → Keys
- Generate new key with "App Manager" access
- 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
- Discord: discord.gg/VzKfwCXC4A
- Email: support@emergent.sh
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:
- Check Expo Status
- Review Expo Forums
- Join Expo Discord
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!
Have questions? Contact Emergent support for help with mobile development!
