Building Your Own Android Apps in the Age of AI
You know what's funny? A few years ago I used to build mobile apps all the time using Expo.
Simple stuff, nothing crazy. A todo app here, a weather tracker there, maybe a custom RSS reader because I didn't like the existing ones.
It was fun. You had an idea, you opened your laptop, wrote some React Native code, and boom - you had your personal app doing exactly what you wanted.
But then I got busy. Work, projects, life. And like everyone else, I started downloading apps from the Play Store for everything.
And that's when the frustration began.
The App Store Problem
Have you noticed how almost every app today feels... bloated?
You download a simple note-taking app, and it comes with:
- Ads everywhere (even in premium apps sometimes)
- Features you'll never use
- Subscriptions for basic functionality
- Analytics tracking everything you do
- A UI designed by someone who clearly never used their own app
I just wanted a simple timer app the other day. The first one I tried had video ads between timer sessions. Video ads. In a timer app.
The second one required an account. For a timer. That runs locally on my phone.
The third one was actually decent, but it was missing this one feature I wanted - the ability to set multiple timers with custom sounds.
And I thought: "This is ridiculous. I used to build these things myself. Why did I stop?"
The New Wave
Recently I discovered Bloom.diy - one of those new AI-powered app builders that lets you describe what you want and it builds it for you.
It's actually pretty cool. You tell it "I want a timer app with custom sounds" and it generates it.
But you know what's even cooler? Doing it yourself.
Not because these tools are bad - they're amazing, actually. But because when you build it yourself, you have complete control. No vendor lock-in, no limits, no mysterious black box.
And here's the best part: with modern tools, it's almost as easy as using those no-code builders. Maybe even easier.
How to Build Your Own Android App (The 2025 Way)
Here's how I'm doing it now, and honestly, it feels like magic.
The workflow is simple: you can have your custom app on your phone and make updates to it directly from your phone.
No need to open Android Studio, no need to understand Gradle, no need to deal with signing keys every time you want to make a change.
Let me show you how.
Step 1: Bootstrap Your Project
You have two options here, and the cool part is that you don't even need a laptop for the first one.
Option A: Clone a Template (No Laptop Required)
I've put together a template repository that's already configured with everything you need. You can fork it directly on GitHub from your phone if you want.
Just search for an Expo template with EAS and OTA updates configured. Or use Cursor to generate one for you - just tell it:
"Bootstrap an Expo React Native project with EAS build configured and OTA updates enabled"
Option B: Let Cursor Do It
If you have access to your laptop, this is even easier. Open Cursor and literally just paste this:
npx create-expo-app@latest my-personal-app --template blank-typescript cd my-personal-app npx expo install expo-updates
Then tell Cursor:
"Configure this project for EAS builds and OTA updates. I want to be able to build Android APKs and push updates without rebuilding."
It will set up everything:
eas.jsonapp.jsonStep 2: Build Your APK
This is where it gets interesting.
First, install the EAS CLI (or let Cursor do it):
npm install -g eas-cli eas login
Then configure your build:
eas build:configure
This creates an
eas.json{ "build": { "preview": { "android": { "buildType": "apk" } }, "production": { "android": { "buildType": "app-bundle" } } } }
Now, the magic command:
eas build --platform android --profile preview
EAS will build your APK in the cloud. No need to install Android SDK, no need to configure anything locally.
It takes a few minutes (grab a coffee ☕), and then you get a link to download your APK.
Step 3: Install on Your Phone
This is the easiest part.
- Open the EAS build link on your phone
- Download the APK
- Install it (you might need to enable "Install from Unknown Sources" in your settings)
- Done!
Your app is now on your phone, running, doing whatever you built it to do.
Step 4: The Real Magic - OTA Updates
Now here's where it gets really cool.
Remember how I said you can update your app directly from your phone? Here's how:
- Set up a GitHub Action in your repository
- Whenever you push to main, it automatically runs
eas update - Within a few minutes, your phone checks for updates and downloads the new version
You can even use Cursor on your phone (yes, really) to make changes, commit them, and push. Or you can use GitHub's web editor. Or any git client on your phone.
The workflow looks like this:
- You think: "I want to change the button color to blue"
- You open Cursor on your phone (or GitHub web editor)
- You tell the AI: "Change the primary button color to blue"
- Commit and push
- The GitHub Action runs automatically
- A few minutes later, your app updates on your phone
- The button is now blue
No rebuilding the APK. No reinstalling. No downloading anything.
It's like having your own personal app store where you're the only user and the only developer.
Here's a simple GitHub Action to set this up:
name: EAS Update on: push: branches: - main jobs: update: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18 - run: npm install - run: npx eas-cli update --auto env: EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
Why This Matters
I know this might sound like a lot of setup for "just an app."
But think about it: how many times have you wanted an app to do something slightly different? How many times have you thought "I wish this app had this feature"?
Now you can just build it.
Want a todo app that sorts tasks by color? Build it. Want a timer that plays your favorite song when it ends? Build it. Want a note-taking app that syncs to your own server? Build it.
And the best part? Since you control the code, there are:
- No ads (unless you want them)
- No subscriptions (unless you want them)
- No analytics (unless you want them)
- No features you don't need
Just your app, doing exactly what you want, the way you want it.
The Future is Personal
We're entering an era where the barrier between "I wish this existed" and "I built this" is disappearing.
Tools like Cursor and Claude can help you write code you don't fully understand yet. EAS can build your app without you understanding the Android build system. OTA updates mean you can iterate without reinstalling.
The future isn't everyone using the same 10 apps from the App Store.
The future is everyone having their own personalized apps, built for their specific needs, updated whenever they want.
And honestly? That future is already here.
You just need to try it.
P.S. If you build something cool using this setup, I'd love to hear about it. Send me a message - I'm always curious about what people are creating.