📱 How I Accidentally Vibe-Coded an Android iPerf3 App with AI
“I’m not an Android dev… but I built a full iPerf3 client app anyway — with a little help from AI, and a lot of late-night debugging.”
📱 How I Accidentally Vibe-Coded an Android iPerf3 App with AI

“I’m not an Android dev… but I built a full iPerf3 client app anyway — with a little help from AI, and a lot of late-night debugging.”
🚧 The Problem
I was trying to help someone find a decent iPerf3 app for Android — but everything we tried was either outdated, broken, or missing key features.
So I thought… why not build one myself? I also wanted to experiment with this whole “vibe coding with AI” thing anyway. 😄
The deeper I looked, the more obvious it became: There’s no proper Android app for iPerf3.
Most existing ones:
- ❌ Are outdated or crash-prone
- ❌ Don’t support full TCP/UDP/bidirectional modes
- ❌ Lack live logs, sharing, or reporting features
- ❌ Definitely don’t support AI-powered analysis (🤖 just saying)
That’s how CellularLab was born — from curiosity, frustration, and a little AI-powered momentum.
🧠 The Twist — I’m Not an Android Dev
I’m a software developer, but not in Android. My expertise is mostly in backend systems, automation, data tooling, and scripting.
Still, I had a vision:
- Native
iperf3backend via JNI - Modern UI with intuitive inputs
- Real-time logs with auto-save
- AI log analyzer (because why not?)
But I didn’t know Android architecture deeply — no experience with Activity, Fragment, ViewModel, or the Android NDK.
💡 Enter ChatGPT: My Pair Programmer
I turned to AI — ChatGPT — not expecting a miracle, but hoping for a starting point.
What worked:
- Setting up JNI bindings to call native
iperf3 - Generating layouts, fragments, and navigation
- Writing adapters, log parsers, and file managers
- Debugging minor logic errors
What didn’t:
- Forgetting previous context in longer chats
- Rewriting or removing important code without warning
- Suggesting broken combinations of Kotlin/Java logic
- Looping on the same errors if not prompted surgically
I quickly realized this:
💡 AI is powerful, but only when driven by someone who knows how to ask the right questions.
🔄 My Vibe-Coding Workflow
I stopped chasing perfection and started building by vibe — screen by screen, feature by feature.
- I’d prompt ChatGPT with small, focused tasks: “Give me a Fragment that takes IP, protocol, and duration inputs”
- I’d test it, debug issues, and refine the prompts: “Update the logic to save logs in Downloads folder after test”
- I’d start enjoying the process: “Let’s add a history screen. Let’s parse logs. Let’s do AI analysis.”
The momentum kicked in.
📍 “Basic test setup — just set IP, protocol, and duration, then tap run.”
🧪 Feature Highlights
The app — now called CellularLab — supports:
- ✅ TCP / UDP / Bidirectional tests
- ✅ Smart strategies like incremental UDP ramp-up
- ✅ Full command-line mode
- ✅ Live log output (like real
iperf3) - ✅ Logs saved to device
- ✅ Gemini AI-powered log analysis
“Command-line mode, test history, and custom strategies — all at your fingertips.”
🤖 Gemini AI Log Analysis — Because It’s Cool
Once I had real-time logs saved, I thought:
“Why not let Gemini analyze them?”
I integrated a simple button: ✨ “AI Analyze”
Under the hood, the app reads the log and sends it to the Gemini.
Gemini returns:
- 📋 Markdown-formatted summary
- 📈 Bandwidth and performance observations
- 🛠️ Bottleneck analysis
- 🎯 A quality rating: Excellent / Good / Fair / Poor
The output looks clean and is great for sharing with your network team.
“One tap generates a full markdown report with bandwidth stats, analysis, and recommendations.”
🧠 Final Thoughts — On AI, Vibe Coding, and Developer Instincts
AI platforms like ChatGPT are amazing — but they amplify your mindset, not replace it.
I succeeded in building this app not because I’m an Android expert, but because I:
- Knew how to plan the logic
- Asked specific prompts
- Could debug when AI failed
- Broke problems into testable chunks
There were moments where ChatGPT:
- Removed important code silently
- Renamed variables incorrectly
- Generated broken logic
- Slowed down with longer chat history
But when it worked — it felt like magic ✨ It accelerated everything.
In the end:
AI rewards developers who know how to think.
📲 Try It Yourself — It’s Open Source!
You can find the app here:
🔗 github.com/Abhi5h3k/CellularLab
📥 APKs available in Releases
⚠️ Licensed for personal/non-commercial use only. Please don’t upload to the Play Store without permission.
🙌 Thanks for Reading!
If you enjoyed this post:
- 💬 Leave a comment — I’d love to hear your experience with AI + coding
- ⭐ Star the repo if you find the app useful
- 🔁 Share this article with someone who loves debugging networks on the go
메타데이터
- post_id
- b8eea31b7773
- slug
- how-i-accidentally-vibe-coded-an-android-iperf3-app-with-ai-b8eea31b7773
- url
- https://medium.com/@abhishekbhardwajca/how-i-accidentally-vibe-coded-an-android-iperf3-app-with-ai-b8eea31b7773
- canonical_url
- https://medium.com/@abhishekbhardwajca/how-i-accidentally-vibe-coded-an-android-iperf3-app-with-ai-b8eea31b7773
- author_url
- https://medium.com/@abhishekbhardwajca
- status
- ok
- fetched_at
- 2026-07-19 03:27:03