Build Your First Mobile App with Expo
Create a real cross-platform mobile app that runs on iOS and Android. No coding experience needed — just you, Expo, React Native, and AI assistance.
What You'll Learn & Build
By the end of this workshop, you'll have practical skills and a real app on your phone.
Technical Skills
- Set up and run an Expo React Native project
- Build UI with React Native components
- Implement local storage with AsyncStorage
- Test apps on real devices with Expo Go
Mental Models
- Native vs cross-platform development
- How React Native renders to native components
- Mobile app architecture and state management
- Fast Refresh and live development workflow
Real Outcomes
- A working app on your personal phone
- Confidence to build your own app ideas
- Foundation for more complex mobile projects
- Skills to collaborate with AI coding assistants
Your Journey (4 Phases, ~2 Hours)
We'll build your app step-by-step, testing after each phase.
Create & Run
Set up Expo, start dev server, see it on your phone
AI Development Cycle
Use Copilot Agent to build features iteratively
Share Your App
Generate APK and distribute to friends & users
The Right Mindset for Success
✓ Progress over perfection: Your first version doesn't need to be beautiful. It needs to work.
✓ Errors are teachers: Every red error screen is showing you exactly what to fix. Read it, learn from it.
✓ Ask for help: Stuck? Use the Help Center section, ask Copilot, or email me. No question is too basic.
✓ Hands-on learning: You learn mobile dev by building, not by reading. Type the code, make mistakes, fix them.
Mobile Development 101
Mobile development can seem overwhelming — iOS, Android, Swift, Kotlin, React Native, Flutter... where do you even start? Let's cut through the noise and understand what really matters for building your first app.
Three Approaches to Mobile Development
There are three main ways to build mobile apps. Here's what they mean in plain language:
Detailed Comparison: When to Choose What
Understanding the trade-offs helps you make informed decisions. Here's what matters for real-world apps:
Performance
Native Apps
Best possible performance for heavy graphics, complex animations, AR/VR, intensive gaming, and direct hardware access. Uses platform-specific optimizations.
3D games, AR/VR apps, professional video editing, real-time graphics
Cross-Platform
Excellent for most apps — 95% of users won't notice the difference. Perfect for business apps, social media, productivity tools, and content-driven apps.
Instagram, Facebook, Discord, Airbnb, Uber Eats, Shopify
For a memo app, you won't see any difference. Cross-platform is perfect.
User Experience
Native Apps
Easiest to perfectly match platform-specific patterns: iOS gestures (swipe back), Android navigation (bottom bar), platform-specific animations and transitions.
Cross-Platform
Can feel native with good design. React Native provides platform-specific components that automatically adapt to iOS or Android styling.
Most users can't tell the difference. Cross-platform UX is excellent.
Speed to Build
Native Apps
Two separate codebases = double the work. Learn Swift/Objective-C for iOS AND Kotlin/Java for Android. Maintain two different projects.
Cross-Platform
One codebase for both platforms. Learn JavaScript/TypeScript once, deploy everywhere. Write code once, test on both iOS and Android.
For learning and MVPs, cross-platform saves 50-70% development time.
Cost & Maintenance Reality Check
Understanding the long-term investment for each approach
Development Cost
Native: 2x the cost (hire iOS + Android devs)
Cross-platform: 1x the cost (one team)
Maintenance
Native: Fix bugs twice, update features twice
Cross-platform: Fix once, deploy to both
Time to Market
Native: Launch iOS first, then Android (6+ months gap)
Cross-platform: Launch both simultaneously
Prerequisites & Setup
We’ll keep setup minimal. Check items as you complete them.
1. Install VS Code
One-time setupWhat it is: Your code editor.
Why: You’ll write and edit your app files here (and use Copilot if available).
2. Install Node.js (LTS)
RequiredWhat it is: The runtime environment needed to run Expo tools and npm (Node Package Manager).
Why: You'll use commands like npx create-expo-app@latest and npx expo start. The Expo CLI runs on Node.js.
Which version: Download the LTS (Long Term Support) version, which is the most stable.
Verify installation:
After installation, open Terminal and run: node --version to confirm it's installed.
3. Install Expo Go on your phone
Easy testing
Expo Go
Search for "Expo Go" in the App Store (iOS) or Google Play (Android)
What it is: A free mobile app (available on iOS App Store and Android Play Store) that runs your Expo project instantly on your phone.
Why: No complex emulator setup needed. Test your app on a real device as you develop it.
How to use: Just install it now — we'll show you how to connect it to your project later in Phase 1.
Wi‑Fi tip:
Your phone and computer should be on the same network. If you’re on restrictive Wi‑Fi (hotel/school), you can try the tunnel option later.
Create & Run Your Expo Project
Module: Create a project
Let's create your first Expo project step by step. Follow along carefully — we'll explain everything! No prior programming knowledge needed.
1
Open Terminal in VS Code
💡 What is Terminal?
Terminal is a text-based interface where you type commands to tell your computer what to do. Think of it as texting with your computer!
How to open it:
- Open VS Code
- Look at the top menu bar and click on Terminal
- Click New Terminal
- A panel will appear at the bottom of VS Code — this is your terminal!
What you'll see:
VS Code's integrated terminal has a dark background (usually black or dark blue). You'll see a blinking cursor where you can type commands. This looks the same on Windows, Mac, and Linux!
2
Choose where to create your project
💡 What we're doing:
Telling the computer where to create your new app folder. We recommend creating it on your Desktop so it's easy to find.
Type this command and press Enter:
cd Desktop
Type this command and press Enter:
cd ~/Desktop
What does "cd" mean?
It stands for "Change Directory" (directory = folder). You're telling the terminal: "Go to the Desktop folder."
Error: "The system cannot find the path"?
Your Desktop folder might be in a different location. Try these alternatives:
cd %USERPROFILE%\Desktop
Or create in Documents folder instead:
cd Documents
3
Create your Expo app
💡 What we're doing:
Running a command that downloads and sets up everything you need for a React Native mobile app — automatically!
Type or paste this command and press Enter:
npx create-expo-app@latest memo-app
What happens next (be patient!):
Text scrolling by — this is normal! It's downloading files from the internet.
You might see: "Ok to proceed? (y)" — just type y and press Enter
Wait 1-3 minutes (depends on your internet speed)
Done! You'll see a success message and be back at the command prompt
Breaking down the command:
npx
→ Run a tool without installing it permanently
create-expo-app
→ The tool that creates Expo projects
@latest
→ Use the newest version
memo-app
→ Your project name (you can change this!)
Taking too long or stuck?
Usually due to slow internet or firewall. Be patient — it will finish! If it completely fails, try again. If behind a school/corporate firewall, you may need to contact IT support.
4
Enter your project folder
💡 What we're doing:
Moving into the newly created "memo-app" folder so we can work with it.
Type this command and press Enter:
cd memo-app
How to know it worked:
Look at your terminal prompt — you should see "memo-app" in the path now! The prompt shows your current location.
5
Open your project in VS Code
💡 What we're doing:
Opening all your project files in VS Code so you can see and edit them easily.
Type this command and press Enter:
code .
What the dot means:
The . means "current folder." You're saying "Open the current folder (memo-app) in VS Code."
Command not found?
If you see an error like "'code' is not recognized", it means VS Code isn't added to your PATH. Here's how to fix it:
Quick fix:
- In VS Code, go to File → Open Folder
- Navigate to Desktop and select the memo-app folder
- Click Open
Success! Here's what you should see:
🎉 Congratulations! Your project is set up!
Understanding your project structure
Your new project contains several important folders and files. Here's what each one does:
app/
Where your app screens and code live — you'll work here most!
assets/
Where images, fonts, and other media files go
node_modules/
Downloaded libraries and dependencies — don't touch this!
package.json
Lists all the tools and libraries your app uses
app.json
Configuration for your Expo app (name, icon, version, etc.)
Module: Start the dev server & test on your phone
Now let's see your app running on your phone in real-time! This is where the magic happens — you'll see your code come to life on your device.
1
Start the development server
💡 What we're doing:
Starting a development server that bundles your app and makes it available to your phone over your Wi-Fi network.
AI Tip: Let Copilot do the work!
Since this workshop focuses on using AI, you can simply ask GitHub Copilot in VS Code: "Run my Expo project" or "Start the development server" — it will execute the command for you!
In your terminal (make sure you're in the memo-app folder), run:
npx expo start
What you'll see in your terminal:
Metro bundler starting up (you'll see logs scrolling)
A QR code appears — this is how your phone connects!
Can't see it? The QR code might be scrolled up due to the logs. Scroll up in your terminal or increase the terminal window size to see it.
Options menu showing keyboard shortcuts and commands
Server running at a local URL (something like exp://192.168.x.x:8081)
Keep this terminal open!
Don't close this terminal window — it needs to keep running while you develop. If you close it, your app will stop working on your phone.
2
Connect your phone to the app
💡 What we're doing:
Using your phone to scan the QR code and open your app in Expo Go.
- Open the built-in Camera app
- Point it at the QR code in your terminal
- A notification banner will appear at the top
- Tap it to open in Expo Go
- Open the Expo Go app
- Tap "Scan QR code"
- Point your camera at the QR code
- Expo Go will automatically open your app
Don't have a phone handy? You can test your app directly in your browser with device simulation!
- In your terminal (where Expo is running), press W to open in browser
- Or click/follow the link shown in terminal (looks like http://localhost:8081)
- Once the browser opens, press F12 to open Developer Tools
- Click the "Toggle device toolbar" icon (or press Ctrl+Shift+M / Cmd+Shift+M)
- Select a mobile device from the dropdown (e.g., iPhone 14, Pixel 7)
Pro tip: The browser version works great for testing layout and functionality, but some device-specific features (camera, accelerometer) won't work.
First load (be patient!):
Expo Go opens and shows "Building JavaScript bundle"
Wait 30-60 seconds (first time takes longer)
Your app appears! You should see the default Expo template
Can't connect? (Wi-Fi issues)
If your phone can't connect (common on hotel, school, or corporate Wi-Fi), try tunnel mode. It's slower but works anywhere:
Stop the current server (press Ctrl+C in terminal), then run:
npx expo start --tunnel
Note: Tunnel mode routes through Expo's servers, so updates will take longer to appear (5-10 seconds instead of 1-2 seconds).
3
Experience "Fast Refresh" (the magic!)
💡 What is Fast Refresh?
Expo's superpower! Any changes you make to your code will automatically appear on your phone within 1-2 seconds — no rebuild, no restart needed. This is what makes mobile development feel instant and magical.
Exercise: Test Fast Refresh!
Let's prove that Fast Refresh works by making a simple change:
- In VS Code, open the main screen file:
app/(tabs)/index.tsx - Find some text in the file (like "Welcome" or "Explore")
- Change it to something else (like "Hello World!")
- Save the file (Ctrl+S on Windows or Cmd+S on Mac)
- 👀 Look at your phone — the text should change automatically within 1-2 seconds!
Congrats!
You just experienced live mobile development! This instant feedback loop is one of Expo's superpowers. You'll use this throughout the workshop.
Quick note: Expo Go vs Development Builds
Expo Go is perfect for learning and prototyping (what we're using now). Some libraries require "native code" that isn't included in Expo Go — those need a development build (a custom version of Expo Go with your specific native code). Don't worry about this for now — the storage library we'll use in this workshop works perfectly in Expo Go!
The AI Development Cycle: Build, Test, Iterate
Module: The AI Development Cycle
This is your new workflow - repeat this cycle for every feature you want to add:
1
Tell AI what you want
Just describe what you want in plain English - like talking to a person. Don't worry about code or file names, Copilot Agent handles all that.
Example prompts:
- "Create a memo app where I can type notes and save them"
- "Add a delete button to remove notes I don't want anymore"
- "Make the notes stay saved even when I close the app"
- "Show the date and time when each note was created"
- "Make it purple with rounded corners and nice spacing"
2
Copilot Agent does the work
Open the GitHub Copilot chat in VS Code and turn on Agent mode. Paste your prompt and hit enter. Copilot will figure out which files to create or modify, and make all the changes automatically!
💡 How Agent mode works: You don't need to know file names or where code goes. Just say what you want ("create a memo app", "add delete feature", etc.) and Copilot handles everything - finding files, writing code, even creating new files if needed.
3
Test on your phone
After Copilot finishes editing, the file auto-saves. Fast Refresh will update your phone automatically (within 1-2 seconds).
Try all the features - click buttons, type text, scroll lists
Close and reopen the app to test persistence
Look for bugs or missing features
4
Iterate until perfect
Something not working? Go back to AI with feedback and repeat steps 2-3.
Example iteration prompts:
- "The delete button isn't working, fix the onPress handler"
- "Notes aren't persisting after closing the app"
- "Make the text bigger and change the button color to blue"
- "Add a confirmation dialog before deleting notes"
✓
Feature works? Add another!
Once a feature works perfectly, start the cycle again for the next feature. This cycle never ends - keep adding features until you're happy!
Module: Copilot Prompt Examples
Here are real-world prompts you can copy and use with GitHub Copilot Agent. They're organized by what you want to do:
Starting a new app
Create a memo app for my Expo project. I want to be able to type notes in a text box, press a save button, and see all my notes in a list below. Make it look nice with a purple color scheme and rounded corners.
Create a todo list app for my Expo project. I need a text input to add tasks, checkboxes to mark them done, and a list showing all tasks. Make completed tasks appear crossed out.
Adding new features
Make my notes stay saved even when I close the app. Install AsyncStorage if needed and use it to save notes to the phone's memory. Load saved notes when the app starts.
Add a delete button to each item in my list. When I tap it, remove that item from both the list and the saved storage.
Add a search box at the top. When I type in it, only show items that contain what I typed. Show all items when the search box is empty.
Show the date and time when each item was created. Display it in small gray text below each item.
When something doesn't work
I got this error: [paste your error message here]. Please fix it.
My save button isn't working. When I tap it, nothing happens. Please fix it.
My items disappear when I close and reopen the app. The data isn't being saved properly. Please fix the storage.
My app crashes when I [describe what you did]. Can you find and fix the bug?
Making it look better
Change the color scheme to blue and white. Use a nice light blue for backgrounds and navy blue for buttons.
Add more space between items in the list and add padding around everything so it doesn't touch the edges.
Make my app look more modern. Add shadows to buttons, rounded corners, and better spacing. Use a nice gradient background.
Learning and understanding
Can you explain how my app works? What does each part do?
How does the storage work? Explain how my data gets saved and loaded.
💡 Pro tip: You can combine these! For example: "Add a delete button to each note AND show timestamps AND make it look better with nice spacing and colors."
Module: Pro tips for AI development
Always use Agent mode
Make sure Agent mode is ON in the GitHub Copilot chat (you'll see a toggle or button). This lets Copilot find and edit files on its own. You don't need to know which files exist or where things are!
When something breaks, just ask
Got a red error screen? Copy the error message and tell Copilot: "I got this error: [paste it]". Copilot will find what's wrong and fix it automatically.
One thing at a time
Don't ask for 5 features at once. Get one working perfectly, test it, then ask for the next one. This way if something breaks, you know exactly what caused it.
Describe exactly how you want it to look
Instead of "make it pretty", say "I want a blue background, white text, rounded corners, and some space between items". The more specific, the better!
Test the app stays working
After each change, completely close your app (swipe it away), then open it again. Make sure everything still works and your data is still there.
Build one feature at a time
Don't ask for everything at once. Get one feature working perfectly, test it thoroughly, then add the next. Small iterations = fewer bugs.
Be specific about styling
Instead of "make it look nice", say "use a blue background (#4A90E2), white text, rounded corners with 12px radius, and add shadow for depth".
Test persistence every time
After each change from Copilot Agent, test that your data still persists. Close the app completely (swipe away from app switcher) and reopen to verify.
The cycle never ends
You now know how to build ANY mobile app feature. Just describe what you want to AI, test it, iterate until it works, then add the next feature. This is real-world development - keep building!
Share Your App with the World
Your app is ready! Now let's share it
Right now, your app only works with Expo Go - which is perfect for testing! But what if you want to send your app to friends who don't have Expo Go? Or publish it so anyone can download it? Let's explore your options.
Setup: Expo Cloud Builds (Works for Android & iOS)
Whether you're building for Android or iOS, you'll use Expo's cloud build service (EAS Build). Here's the one-time setup (do this once, works for both platforms!):
Why use Expo's cloud builds?
Building native apps normally requires installing Android Studio (multiple gigabytes!) or Xcode (Mac only!), setting up SDKs, configuring build tools, managing signing keys, and running complex commands. It's overwhelming for beginners! 😰
Expo's EAS Build does all of this in the cloud. You run simple commands, Expo's servers handle the complexity, and you get your app file. It's like having your own build server! ☁️✨
One-time setup (4 steps)
1 Create a free Expo account (if you don't have one)
You probably already created this when you installed Expo Go in Phase 1. If not, it takes 30 seconds:
1. Go to expo.dev/signup
2. Enter your email and create a password
3. Done! This account gives you free cloud builds.
2 Install EAS CLI (Expo's cloud build tool)
This is a small tool that communicates with Expo's cloud build servers. Run this command once:
npm install -g eas-cli
3 Login to your Expo account
Connect your terminal to your Expo account:
eas login
It will ask for your email and password. Type them and press Enter.
4 Configure your project (one-time setup)
This creates the necessary configuration files for cloud builds:
eas build:configure
Questions you'll see:
- "Would you like to automatically create an EAS project for @username/memo-app?" → Type
yesand press Enter - "Which platforms would you like to configure for EAS Build?" → Select
Alland press Enter (this prepares both Android and iOS, even if you only build one now)
✓ Done! It creates a file called eas.json with build settings for both platforms.
Important: Your App's Unique Identifier
Every mobile app needs a unique identifier that distinguishes it from all other apps in the world. This is called:
- Bundle Identifier on iOS (example:
com.yourname.memoapp) - Package Name on Android (example:
com.yourname.memoapp)
Critical Requirements:
- Must be globally unique - No one else in the world can use the same identifier
- Use reverse domain format - Like
com.yourname.appnameorcom.company.appname - Only lowercase letters, numbers, and dots - No spaces, underscores, or special characters
- Cannot be changed later - Once published, changing it creates a completely new app
Good News: EAS Build Handles This For You!
When you run eas build -p android --profile preview or the iOS build command, EAS will ask you in the terminal what package name/bundle identifier you want to use. You can type it directly then!
But if you want to set it manually now, open your app.json file:
{
"expo": {
"name": "memo-app",
"slug": "memo-app",
"ios": {
"bundleIdentifier": "com.yourname.memoapp"
},
"android": {
"package": "com.yourname.memoapp"
}
}
}
Replace "yourname" with your actual name or company name. Example: com.john.memoapp or com.acme.taskmanager
Recommendation: Just let EAS ask you during the build! It's easier and ensures you type it correctly. EAS will automatically add it to your app.json file.
Setup complete!
You've configured both platforms! Now choose below whether you want to build for Android (free, easy APK file) or iOS (requires Apple Developer account $99/year).
Build for Android: Generate an APK File (Easy & Free!)
An APK is like a portable version of your app that anyone with an Android phone can install - no Expo Go needed!
What is an APK?
Think of an APK as a ZIP file of your app. You can send it via WhatsApp, email, Google Drive, or any file-sharing method. When someone opens it on their Android phone, they can install your app directly - just like installing an app, but without the app store!
✅ Perfect for: Testing with friends, family, or anyone with an Android phone. Free and takes just 10 minutes!
Build your APK (2 steps)
1 Build your APK! 🚀
This uploads your code to Expo's cloud servers, which handle all the Android build complexity:
eas build -p android --profile preview
Build questions you'll see:
- "Generate a new Android Keystore?" → Type
yes(This is a security key for your app) - "Compressing project files..." → Wait while it uploads your code
- "Waiting for build to complete..." → You'll see a QR code and progress messages
This takes 10-15 minutes!
Expo's cloud servers are:
- Setting up the Android SDK
- Installing all dependencies
- Compiling your JavaScript code
- Building the native Android app
- Signing it with your keystore
- Creating the final APK file
You can minimize the terminal and do other work while you wait!
When the build finishes:
You'll see: ✔ Build finished
The terminal will show a message like:
Successfully downloaded app
2 Download your APK (Two ways!)
Option 1: From Terminal (Quick Test)
When the build completes, the terminal will ask if you want to run it on an emulator:
? Run this build on an emulator?
• If you have Android Studio installed with an emulator, type yes
• Otherwise, type no and download from the dashboard instead ⬇️
Option 2: From Expo Dashboard (Recommended for sharing!)
This is easier for sending to others! Your build is saved on Expo's website:
- Go to https://expo.dev
- Click "Log in" (top right)
- Click on your project name
- Go to "Builds" tab on the left
- You'll see your build with status Finished
- Click "Download" or copy the link to share!
Pro tip: The expo.dev dashboard also shows if there were any build errors or warnings. Super useful for debugging!
Sharing your APK:
Once downloaded, you can share the APK file via:
- WhatsApp/Telegram: Send as a file attachment
- Email: Attach the APK file
- Google Drive/Dropbox: Upload and share the link
- Direct link: Share the expo.dev download URL from the dashboard
How people install your APK
- 1 They download the APK file you sent them (on their Android phone)
- 2 They tap to open the file
- 3 Android will ask: "Install from unknown source?" - they tap "Yes" or "Allow"
- ✓ Your app installs! They'll see your app icon and can open it like any normal app 🎉
Security note: When someone installs your APK, Android shows a warning about "unknown sources". This is normal! It's just because your app isn't from the Google Play Store. They need to allow installation from "unknown sources" in their phone settings (Android will guide them).
Want to build locally without Expo account?
You can build on your computer instead, but it requires installing Android Studio (a large download, ~1GB+) and setting up the Android SDK. This is much more complex and not recommended for beginners. If you're interested, check out Expo's local build guide.
Build for iOS: Create an App for iPhone & iPad
iOS is a closed ecosystem. You can't create a simple file like APK. Instead, you build an app that can be distributed through TestFlight (for testing) or the App Store (for public release).
Important Requirements
- Apple Developer Account: $99 USD per year (required even for testing)
- No Mac needed for building: Expo's cloud servers handle the build
- Mac needed for submission: To submit to App Store, you'll need a Mac (or use EAS Submit which works from any computer)
Build your iOS app (2 steps)
1 Build your iOS app! 🍎
This uploads your code to Expo's cloud servers and builds for iOS:
eas build -p ios --profile preview
Build questions you'll see:
- "Log in to your Apple Developer account" → Enter your Apple ID email and password
- "Generate a new Apple Distribution Certificate?" → Type
yes(Expo generates it for you) - "Generate a new Apple Provisioning Profile?" → Type
yes(Required for iOS apps) - "Compressing project files..." → Wait while it uploads your code
This takes 15-20 minutes!
iOS builds take longer than Android because Apple's build process is more complex. Expo's cloud servers are:
- Setting up Xcode and iOS SDK
- Installing all dependencies
- Compiling your JavaScript code
- Building the native iOS app
- Signing it with your Apple certificates
- Creating the final IPA file
Grab a coffee ☕ - you can minimize the terminal and do other work!
When the build finishes:
You'll see: ✔ Build finished
2 Test with TestFlight or Submit to App Store
Option 1: TestFlight (For Testing)
TestFlight is Apple's platform for testing apps before public release. Up to 100 people can test your app.
From Expo Dashboard:
- Go to expo.dev → Login → Your project
- Click "Builds" tab → Find your iOS build
- Click "Submit to TestFlight" button
- Expo will submit it to Apple automatically
- Wait 10-30 minutes for Apple to process it
- Open TestFlight app on your iPhone → See your app!
Pro tip: You can share TestFlight with up to 100 testers. They just need to install the TestFlight app and you send them an invite link!
Option 2: Submit to App Store (Public Release)
To publish your app publicly on the App Store, you need to create an App Store listing and submit for review.
Steps:
- Go to App Store Connect
- Create a new app (name, description, screenshots, category)
- Submit your build from Expo for review
- Wait 1-7 days for Apple's review team
- If approved, your app goes live! 🎉
Important: Apple has strict review guidelines. They check for quality, content, privacy compliance, and more. Read Apple's guidelines before submitting.
iOS vs Android: The Key Difference
✅ Android
You can generate an APK file and send it directly to anyone. They install it outside the store.
❌ iOS
No direct file sharing. You MUST use TestFlight (testing) or App Store (public). Apple controls everything.
Is the $99/year worth it?
For learning and testing: Start with Android APK (free). Get feedback, validate your idea, then invest in iOS.
For serious apps: iOS users spend more on apps and in-app purchases. If your target audience uses iPhones, the $99/year pays for itself quickly.
Publish to Google Play Store (Android Official Store)
Want your app in the official Google Play Store where millions can discover it? Here's what you need to know.
Benefits
- Professional presence: Your app appears in the official store
- Easy discovery: People can find your app by searching
- Automatic updates: When you update your app, users get it automatically
- Trust: Official store = more credibility
Requirements
💰 One-time fee: $25 USD to create a Google Play Developer account (you pay this once, not per app)
📋 Store listing: You need to create screenshots, write a description, add an icon, and fill out forms
⏰ Review time: Google reviews your app (takes a few hours to a few days)
Quick Comparison: Which Option is Right for You?
| Method | Cost | Time | Best For |
|---|---|---|---|
| Android APK | Free 🎉 | 10-15 minutes | Testing with friends, family, quick distribution |
| iOS TestFlight | $99/year | 15-20 min build + 10-30 min processing | Testing with up to 100 iOS users |
| Google Play Store | $25 (one-time) | Few hours review | Public Android release, discoverability |
| Apple App Store | $99/year | 1-7 days review | Public iOS release, professional presence |
Recommendation
Start with Android APK - it's free, fast, and perfect for testing your app with real users. Get feedback, improve your app, and then decide if you want to invest in publishing to official stores. Many successful apps started exactly this way!
You're now a mobile app developer!
You built a cross-platform mobile app with AI, tested it on real devices, and now know how to share it with the world. This is just the beginning - keep building, keep learning, and most importantly, keep creating! 🚀
Need Help?
If you’re stuck, email me and include a screenshot of your error and the command you ran.
Email me at:
contact@mehditmimi.com