I used Claude Code to vibe code an Apple Watch app in just 12 hours – instead of 2 months

David Gewirtz / Elyse Betters Picaro / ZDNET

Follow ZDNET: Add us as a preferred source on Google.


ZDNET’s key takeaways

  • Building for Apple Watch is harder than for iPhone, despite smaller scope.
  • Claude Code felt like a collaborative teammate, not automation.
  • Iterative AI coding made short, productive work sessions possible.

Screenshot by David Gewirtz/ZDNET

After using Claude Code to build an iPhone and a Mac version of my filament management app, I never expected the Apple Watch implementation to give me such a hard time.

That was clearly a failure of imagination. The process of finding the most essential features and making them fit on the very tiniest of Apple screens turned out to be quite a challenge.

Also: 10 things I wish I knew before trusting Claude Code to build my iPhone app

It is true that I got the bulk of the interface designed and implemented in about two hours. But that was just a prototype that showed I could get something working. The test data did not yet work correctly on the Xcode simulator.

But as soon as I moved the app to my physical watch and tried to make it work with the 120+ data records I had already collected in the iPhone app, we had a bit of a meltdown in the Xcode process that was monitoring the app performance.

Screenshot by David Gewirtz/ZDNET

Back to the beginning

When I started on both the iPhone and Mac apps, I had a very clear idea of the features and functionality I wanted in the end product. I was not exactly sure what would work on the Apple Watch.

Clearly, NFC scanning and taking photos would not be an option. What features were important, and what features could I leave out? Making the Apple Watch app was going to be all about subtraction.

You’re probably familiar with the way Michelangelo described his sculptures. He’s famous for saying that his sculptures already existed within the marble, and his task was simply to remove the excess stone to reveal them.

That’s the spirit behind the Apple Watch app. The app exists on the iPhone, but we need to remove enough code to make it viable on the tiny screen.

Also: Claude Code made an astonishing $1B in 6 months – and my own AI-coded iPhone app shows why

This time, I started by asking Claude Code for its recommendations on features. I prompted, “I want to build an apple watch app. Clearly, it will need to be a very small subset of the iOS app, without NFC and without taking photos. Think about the project and its uses, and propose to me the features and capabilities of an Apple Watch app.”

Claude did a fairly good job. It got a little carried away with the idea of creating a Watch complication (the little icon on the watch’s home screen) to indicate how much filament was left (but since there are hundreds of spools, that was not a helpful or useful feature). I also do not have, or need, a smart tracking method for how much filament is on any given spool. I simply update the database when I remember and if I care enough to show approximate filament percentage. It’s probably the least important feature of the entire app.

Once we got past Claude’s obsession with Watch complications, we discussed use cases. I wanted to be able to look at my watch and see what’s loaded on any given 3D printer. I wanted to be able to use only my Apple Watch to record moving a spool from one location to another in case I did not bring my phone into the Fab Lab. And I wanted to be able to do a quick search to see what colors and materials I had for whatever projects I would be planning.

Here’s what I finally decided I wanted to work on the watch:

  • Browse and filter spools by material, color, and vendor
  • View spool details and current assignment
  • Move spools between machines and storage locations
  • Mark spools as complete
  • Browse machines, storage locations, and colors
  • Dynamically sync data between phone, Mac, and watch

That meant I was going to leave a lot out, including:

  • Quick Move (NFC-based production workflow)
  • Read and write NFC tags
  • Create, edit, and delete spools
  • Manage machines and storage locations
  • Manage reference data (vendors, colors, materials, etc.)
  • View and restore completed spools with statistics
  • Backup and restore
  • Settings and tools
  • iOS Shortcuts integration

With the feature set established, I tasked Claude Code with building the app.

The early builds

I used test data for the earliest builds and tested the app functionality using the simulator built into Xcode.

Screenshot by David Gewirtz/ZDNET

The home screen was missing the machines button. Instead of listing spools, it called that feature “inventory.” It also built a filter button (shown with the arrow) that did not do anything.

Screenshot by David Gewirtz/ZDNET

When I finally got the Spools feature to work, the app showed spool use percentages, sometimes with a vendor name attached.

Screenshot by David Gewirtz/ZDNET

Then Claude wanted to arbitrarily limit the number of spools shown to the first 25. I explained that the whole purpose of the app was to be able to look at the entire spool list. Claude then went ahead and implemented the app without the 25-spool limit.

Screenshot by David Gewirtz/ZDNET

Although neither the AI nor I realized it at the time, that change would prove to be temporarily fatal.

Practical limits

Eventually, I got all the screens to work properly. I decided I wanted to be able to see a photo of any spool in the inventory. Photos are fairly big. They take a hefty amount of space to store on-device.

While my Apple Watch Series 9 has 1GB of RAM and a fairly large 64GB of storage, that has to be shared among all the apps running on the device. Bringing down hundreds of photos onto the Watch can (and did) overwhelm the device’s memory buffer.

Also: How to install and configure Claude Code, step by step

According to Claude, the Apple Watch iCloud sync brings down everything in its data structure at once. With the architecture I had implemented, you cannot just fetch one photo at a time when that photo is requested.

Claude did offer to completely rearchitect all of the apps to allow this, but long experience has shown me that making huge changes for small benefits leads to madness (and breakage). So, I discussed the issue with Claude (in very much the same way I would have with a human programmer).

Screenshot by David Gewirtz/ZDNET

We decided to bifurcate the main data structure, keeping everything identical except for the photos. The iPhone and Mac versions of the data structure would include photo references, while the Watch version would not.

Claude Code then implemented this, and suddenly, I had a working Apple Watch app.

A collaborative experience

More than with either the iPhone or the Mac app versions, building the Watch app was a collaborative experience with Claude Code.

I asked its opinions, let it make suggestions, tested out those suggestions, corrected when they went too far afield or just did not work, and then revised and iterated interactively.

Even though the Watch app is the smallest of the apps, or possibly because it’s the smallest of the apps, developing it to the point of productive use took longer than the other two versions. The challenge was keeping the original architecture intact yet building an app unique and appropriate for the limits of the Watch device.

Also: Worried about AI coding? Why the invention of power tools is the blueprint for your career future

As I’ve mentioned previously, getting back into coding with the AI does not take the amount of spin-up context-switching time that hand line-by-line coding always does for me. As such, I could dip into the process for 20 minutes at a time and still get something done rather than having to allocate a couple of days to come back up to speed on the entire code architecture.

I am quite satisfied with the Watch implementation. I’ve started using it as part of my 3D printing project workflow. My guess, based on the size of the project, is that making this app the old-fashioned way would have taken 6-8 weeks of work time, probably spread over about half a year or so of weekends.

But using Claude Code, I worked on the Watch app over the course of about 12 hours in actual time, spread out over about three weeks. I was excited to see an actual app in the first two hours and spent the rest of the time refining and tuning it to my liking.

Although I’ve built iPhone and Mac apps by hand before using an AI for coding help, I had never built an Apple Watch app before. Working with Claude to develop my first Apple Watch app was a productivity win.

Also: Can a newbie really vibe code an app? I tried Cursor and Replit to find out

What about you? Have you tried using AI tools like Claude Code for real-world app development, or are you still on the fence? How do you decide which features belong on a constrained device like the Apple Watch? Have you run into performance or data-sync limits when scaling an app across devices? Do you think AI-assisted coding meaningfully changes how long projects like this should take? Let us know in the comments below.


You can follow my day-to-day project updates on social media. Be sure to subscribe to my weekly update newsletter, and follow me on Twitter/X at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, on Bluesky at @DavidGewirtz.com, and on YouTube at YouTube.com/DavidGewirtzTV.

Featured