Overview
There are two ways to set up the Omi app for development:Automatic Setup
Recommended for most developersOne command setup using Omi’s development backend
Manual Setup
For custom backendsFull control over configuration and backend
Don’t want to build from source? Download the official app from the App Store or Google Play.
Prerequisites
Before starting, make sure you have the following installed:Flutter SDK
Includes Dart - the core framework
Xcode
Required for iOS development
Android Studio
Required for Android development
CocoaPods
iOS dependency manager
You’ll also need NDK to build Opus for ARM devices.
Build the App Automatically
This is the recommended way to get started. It sets up your environment to use Omi’s development backend with just one command.Video Walkthrough
Setup Steps
Navigate to the app directory
Run setup for your platform
- iOS
- Android
- macOS
- Windows
Run in simulator
Open the app in your IDE and hit run:
- Xcode: Open
app/iosfolder - Android Studio: Open
app/androidfolder
Build the App Manually
Manual setup gives you full control, allowing you to use your own backend.Verify Flutter Installation
Ensure Flutter is installed by following the official Flutter Installation Guide.Verify your setup:
Example output
Example output
Recommended versions
Recommended versions
This project is tested with specific tool versions. See
app/setup.sh for recommended versions:- Flutter 3.35.3
- Xcode 16.4
- Android SDK Platform 35
- NDK 28.2.13676358
- JDK 21
Get Flutter Dependencies
From the
app directory, install packages:Install iOS Pods
Navigate to iOS directory and install CocoaPods dependencies:
Configure Environment
Create your environment file from the template:
Add API Keys
Edit
.dev.env and add your API keys:| Key | Description |
|---|---|
API_BASE_URL | Your backend URL (use https://api.omiapi.com/ for dev, or set up your own) |
OPENAI_API_KEY | Optional - for AI features |
GOOGLE_MAPS_API_KEY | Optional - for location features |
Run Build Runner
Generate necessary files:
Setup Firebase
Firebase is mandatory for the app to run.
- Follow the official Firebase Flutter Setup through Step 1
- For Apple login, create an identifier first
- Configure for production:
- Configure for development:
- Generate SHA1/SHA256 keys for your keystore and add them to Firebase (StackOverflow guide | Official Docs)
Run the App
Select your target device and run:To build an APK:
Code Formatting
We usedart format with a line length of 120 characters.
To automatically format code on commit, install the pre-commit hook:
Troubleshooting
Flutter doctor shows issues
Flutter doctor shows issues
- Run
flutter doctor -vfor detailed output - Follow the suggestions to fix each issue
- Make sure all required SDKs are installed
iOS build fails
iOS build fails
- Ensure CocoaPods is installed:
sudo gem install cocoapods - Run
pod installin theiosdirectory - Try
pod repo updateif dependencies fail
Android build fails
Android build fails
- Check NDK is installed via Android Studio SDK Manager
- Verify JDK version matches requirements (JDK 21)
- Accept all Android licenses:
flutter doctor --android-licenses
Firebase auth not working
Firebase auth not working
- Enable Google/Apple sign-in in Firebase Console
- Verify SHA1/SHA256 keys are added to Firebase
- Check bundle IDs match your Firebase configuration
Need Help?
Discord Community
Search the help channel or ask questions
GitHub Issues
Report bugs or browse existing issues