Category: mobile

Vibe Coding Success: Life in Days 2 PWA

TL;DR: I just re-wrote LifeCounter as a progressive web app in two hours via vibe coding w/ChatGPT. I expected this to feel magical. I’m still stunned. Go get it here: Life in Days 2 PWA (Link)!

In 2015, I published my first Android application called “Life Counter”. It was a simple app that I’d had in my mind for a while, and even though I’ve had some development experience, there were things i needed to learn that slowed down progress (plus I had a day job), including:

  1. Basic brushing up on Java, including new async function use
  2. Android app fundamentals, and Activity composition + UI + animation
  3. App deployment / publishing logistics
  4. Random things here / there, like Photoshop, learning vector art, store asset generation etc.

It took two months or so to finish but I was proud of my useful v1 and I used it quite frequently for my own personal use. Beyond me, at least a few thousand other people downloaded it. Sadly, Google had taken it down in 2021 for lack of updates.

Today, as a learning project, I was preparing to do minimal updates to get it publishable again in some usable form and was using ChatGPT to review my old code and prepare my approach. It gave a grave prognosis: “Much of the original code is over a decade old (early Android era), with legacy dependencies and architectural patterns that are now outdated. A clean rewrite will give you a modern foundation, better maintainability, and smoother publishing experience.”

Still, my goals here were to understand the extent to which I could partner with AI tools by vibe coding, and having done extensive other creative work with GPT4o for fun, I was determined to see how far I could get before having to bust out traditional learning tools…

Results:

  • v1 (2015) -> 2 months of learning/work / iteration / debugging for a native Android-only application.
  • v2 (2025) -> 2 hours(!!) of effort for a cross-platform progressive web app; also looks better and feels more polished

I was fully expecting this to be at least a week long effort learning, iterating to get to an MVP. But… within just two hours, I was done! Rebranded it to Life in Days: Still Counting, and I’m just hosting it on Github Pages:

Learned a lot about how to work with GPT4o for coding tasks. Thoughts:

  1. Surprised at how coherently it understood my verbal framing of the app concept. Iterative discussion of goals and approach helped ensure alignment with intentions.
  2. There were often times when GPT4o was readily able to provide a solution, but I didn’t know how to prompt for it. Trial and error and several iterations helped here.
  3. Learning vibe coding tips/tricks helped immensely; some use will help understand how to better partner with your AI agent.

Even though I use AI tools extensively, I somehow thought it would be more tedious. How nice 🙂

 

SoundRemote for Android Wear Launched!

I got my Moto 360 smartwatch in April of 2015, and since then, I’ve been pondering what kind of apps I’d want to make, for education, fun, and profit. Today, I’m releasing my first: SoundRemote, a simple Android Phone/Wear app combo that lets you remotely trigger sounds from your watch to play on your phone.

I got the idea while I playing animal sounds from my phone to mess with my cat, Sherman. He’s an indoor house cat, so I try to provide environmental enrichment to keep him (and myself) entertained. At the first hint of another cat’s meows, his ears would perk up and start roaming around looking for the source, even trying to dig under the sheets if the phone was hidden under them.

With this phenomenon in mind, I wanted to create a way to trigger multiple sounds remotely. And I figured — this could be a cool Wear app, and started in earnest to learn the Wear SDK and media frameworks. A few months of intermittent work later, SoundRemote is now published on the Google Play Store!

SoundRemote is my first Wearable app and second Android app generally (after the poorly-named, but still useful Life Counter). Though it took much longer than expected — for a total of perhaps a solid week of work over the course of a few months — I’m quite satisfied at the outcome with v0.1.

The app is pretty straightforward — you pick a few sounds from your phone’s Notifications directory, which can then be played directly on the phone or triggered via the companion Wearable app on the watch.

This being version 0.1, it isn’t the most pretty, but it does everything I need, and perhaps some more. Hope someone else finds it useful as well.

Per usual, I’ve uploaded the source code to Github for the world’s enjoyment. For v0.2, I hope to have two way-syncing of names between the phone and watch, and maybe prettify it a bit more. Both P2s, so it may be a while… 😛

In the meantime, happy cat-pranking!