Why I Started This Project
What started as a personal health-tracking tool for my daughter became a crash course in AI-assisted Android development. Over three builds—Java, Kotlin, and finally React Native—I relied on tools like Cursor.ai and Claude Sonnet to guide me through every line of code. In this post, I'll share what worked, what didn't, and key takeaways for anyone curious about using AI to build real mobile apps.
The Spark: A Personal Need for Better Health Data
It was December 1st, 2024. The days were darker, Christmas was looming, and I needed a creative project to fill my evenings. My daughter had been sent home from school—again—and it felt like we were in an endless cycle of Calpol and fevers.
As a UX designer in health tech, I understand the power of data. I wanted to be able to show our GP patterns in her symptoms, but I needed something better than a gut feeling. So I started tracking symptoms in Google Calendar using tags and keywords. Before an appointment, I exported the data to a CSV using a Python script (my first AI-generated tool!) and visualized it with graphs.
This sparked a bigger idea: Could I build an app to automate the whole thing?
First Build: Java + AI (And All the Mistakes)
Starting from Zero
I had never built an Android app before (aside from a few Unity games). I knew the functionality I wanted, but not how to implement it. My plan was to lean entirely on AI to write the code while I guided the vision and UX.
I started with Java because it felt like the most documented language in Android's history—perfect for an AI trained on existing code.
From ChatGPT to Cursor.ai
Initially, I prompted ChatGPT and manually copied code into Android Studio. Then I discovered Cursor.ai, which integrates AI directly into the IDE. This let me:
- Avoid copy-pasting mistakes
- Let the AI edit files in-place
- Move faster between writing, debugging, and iterating
It felt like true pair programming—until it didn't.
Lessons Learned the Hard Way
- AI looped on errors it couldn't fix. I had to learn Git basics fast—commit early, commit often.
- Gradle hell. There were two ways to reference dependencies (old/new) and AI often chose the wrong one.
- Better prompts = fewer bugs. Specific, atomic prompts produced more stable results than vague or sweeping ones.
Eventually, I had a working version of the app on my phone.
But I hit a wall with data migration and database management. Things got messy. AI couldn't untangle the logic I had built—and honestly, neither could I.
It was time to start over.
Second Build: Kotlin + Cleaner Architecture
Why Kotlin?
Some persistent Java-related bugs—especially around date and time handling—nudged me toward Kotlin. I also wanted a cleaner codebase, and by this point, I knew enough to make smarter architectural decisions.
A Smoother Ride (Mostly)
I used Claude Sonnet 3.7, which was noticeably more consistent than 3.4.
- Cursor rules helped me maintain structure and keep the AI on track.
- I committed often, kept features small, and avoided "just one more change" before testing.
But the build wasn't without issues:
- Gradle continued to be a pain.
- The UI didn't always render as expected—even with Material Design guidelines.
- I tried writing tests, but it was overkill for a personal project. Still, I learned a lot just by attempting it.
My laptop was running out of space, so I devised a clever workaround:
- Uninstalled Android Studio
- Wrote scripts to build and deploy wirelessly to my phone
- Read error logs in Cursor and refined the outputs
This lean setup let me keep working on a very limited machine.
Final Build: React Native + Smarter AI
Starting Fresh (Again)
A couple of months later, I started over—again—but this time in React Native, and for a simpler application.
By now, I had:
- Better prompting habits
- Experience navigating AI quirks
- More confidence in guiding architecture
This time:
- I built only a single screen (to avoid navigation bugs and speed up my MVP release)
- Skipped the backend entirely
- Used terminal scripts to build, avoiding Android Studio altogether
Enter Claude Sonnet 4
The biggest game-changer was Claude Sonnet 4. Compared to 3.7:
- Fewer hallucinations
- Faster code generation
- More consistent bug-fixing
- Often got things right in one prompt instead of ten
I was able to get a basic app up and running within a few hours.
Comparing the AI Tools
Tool | Strengths | Weaknesses |
---|---|---|
Cursor.ai | IDE integration, file-level editing, prompt history | Unclear which AI model is being used |
Claude Sonnet 3.4 | Creative, exploratory | Prone to error loops, inconsistent |
Claude Sonnet 3.7 | More stable, useful for structure | Still struggled with complex workflows |
Claude Sonnet 4 | Best for debugging, accuracy, concise fixes | Needs fewer—but smarter—prompts |
Key Takeaways for AI-Driven App Dev
1. AI Can Help—But You're Still the Pilot
The AI is your assistant, not your architect. You have to guide it, structure the work, and catch when it's going off-track.
2. Git is Non-Negotiable
AI will break things. Commit often, roll back when necessary, and learn to love version control.
3. Gradle is a Beast
Most errors came from incorrect dependency setups. Once I learned the patterns, I stopped letting AI touch build.gradle files without a second opinion.
4. Prompt Craft Matters
Small, focused prompts work best. Overly broad requests usually led to broken code or confusion.
5. Performance Varies by Language
Kotlin was a better AI companion than Java. React Native (with Claude 4) was the smoothest experience by far.
What's Next
I'm planning to open-source my React Native boilerplate so others can get started quickly using a similar AI-driven workflow. Keep an eye out—or reach out if you want to collaborate.
This project started with tracking my daughter's health and ended up being one of the most educational dev experiences I've had. If you've been curious about building something with AI, I highly recommend starting small and seeing how far you can go.
Thank you for reading my blog post!
Interested in AI-assisted development or want to collaborate?
Let's connect and share experiences!