Back to Home

Vibe-coding SwiftUI: macOS utilities without knowing the language

Django co-author Simon Willison using AI created two macOS utilities on SwiftUI without knowing the language. Used code recombination and just a few prompts. Highlighted risks of verifying metrics without expertise.

How to create macOS apps on SwiftUI without Swift
Advertisement 728x90

Vibe-Coding in SwiftUI: Django Co-Creator Builds macOS Utilities Without Knowing the Language

Simon Willison, co-author of Django and creator of Datasette, whipped up two macOS utilities in SwiftUI over a single evening: the network traffic monitor Bandwidther (1,063 lines) and the GPU/memory monitor Gpuer (880 lines). With zero experience in Swift or Xcode, he used just a few prompts in Claude Code. Both apps are single-file menu bar tools for the MacBook Pro with M5 Max.

How AI Handled an Unfamiliar Framework

SwiftUI is perfect for vibe-coding: the entire codebase fits in one file. Claude Opus 4.6 and GPT-5.4 demonstrated equal competence. Willison highlighted how easy it was to generate menu bar interfaces and charts.

Bandwidther tracks network traffic by process, while Gpuer monitors GPU usage and RAM distribution. Prompts were minimal: a basic description plus some interface tweaks.

Google AdInline article slot

Code Recombination Technique

The key method is transferring patterns between projects. First, Bandwidther got its menu bar interface. Then the prompt: "Look at the recent changes in Bandwidther and replicate them." Claude automatically adapted the structure for Gpuer, preserving a consistent style.

This accelerated development: the second tool was built in minutes, without duplicating effort. Recombination minimizes errors in repeated elements like menus, charts, and data updates.

  • Benefits of recombination:

- Automatic transfer of proven patterns.

Google AdInline article slot

- Cuts UI development time from hours to minutes.

- Ensures consistency across apps.

Verification Challenges in Vibe-Coding

Willison added a disclaimer: he doesn't know Swift and has only a superficial understanding of macOS metrics. The next morning, Gpuer reported 5 GB of free memory, even though Activity Monitor showed something different.

Google AdInline article slot

He sent a screenshot of the error to Claude, and the model corrected the calculations. The new values look plausible, but the author can't verify them without deep knowledge of the API.

The vibe-coding paradox: the code compiles, the UI works, charts update—but data accuracy is in question. A developer without domain expertise can't properly validate the results.

Key Takeaways

  • Vibe-coding in SwiftUI lets you create full-featured macOS apps in hours without knowing the language.
  • Code recombination between projects is an effective technique for scaling.
  • Main risk: inability to verify metrics without understanding the platform's APIs.
  • Claude and GPT handle single-file SwiftUI projects equally well.
  • Ideal for prototypes, but production requires expertise.

Implications for Middle/Senior Developers

For senior developers, vibe-coding is a rapid prototyping tool. SwiftUI lowers the entry barrier: it's declarative and keeps code compact.

That said, production apps need metric testing. For example, in Gpuer, values should be cross-checked against host_statistics64 or task_info from the Mach API, rather than relying on AI calculations.

In Bandwidther, traffic is monitored via getifaddrs and sysctl—standard calls, but without an audit, leaks or inaccuracies are possible.

— Editorial Team

Advertisement 728x90

Read Next