📱 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 iperf3 backend 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.

  1. I’d prompt ChatGPT with small, focused tasks:
    “Give me a Fragment that takes IP, protocol, and duration inputs”

  2. I’d test it, debug issues, and refine the prompts:
    “Update the logic to save logs in Downloads folder after test”

  3. 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.

📍 “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.

“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.

“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

0
Subscribe to my newsletter

Read articles from अभिषेक directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

अभिषेक
अभिषेक

💻 Software engineer by profession, builder by passion. Crafting tools that solve real-world problems.