Subscribe for weekly commentary and coverage of Swift and Apple platform development. Written by Dave Verwer and published every Friday. Free.

Picture of Dave Verwer

Issue 736

21st November 2025

Written by Dave Verwer

Comment

The most interesting article I read this week was Abdallah W Shaban’s post on the official Flutter blog, “Rich and dynamic user interfaces with Flutter and generative UI”.

Yes, it’s about a Flutter package, GenUI, but it was the idea that caught my attention. It takes the idea of using LLMs inside an app one step further than having the model return text or structured data. Instead, it returns UI widgets that also contain the LLM-generated content! In the demo video, Andrew Brogdon uses the example of building a chat-style interface for a workout app, but that’s far from all it can do. I’d recommend watching this 30-second slice of the video for a better explanation than I can manage in a few words.

I’d imagine that using LLMs to generate free-form UI for data would be possible using the most cutting-edge models, but it’s not something I’d want to ship without more structure, and that’s what GenUI is doing. It includes a built-in set of widgets for common UI, and you can add your own too. As I understand it, the package iteratively processes the LLM response, selecting the most appropriate widget from its library for each piece of content until the entire response has been rendered into UI. Perfect for a conversation-style UI, as demoed, but also for homepages or anywhere else you want to display a dynamic set of information to your user.

I expect the current set of online models to be extremely capable of picking the best widget from a finite set, and the concept is a natural step forward from generating typed data objects. Would it be possible using Apple’s local foundation model? It can already generate typed data, and could probably take a small set of UI descriptions in a prompt and include the best fit in its response. I think it’d be worth playing around with if any of you fancy a weekend experiment. I’d love to hear where you get to if you give it a try, especially if you have a use-case in a real app.


I’m heading out on a much-needed holiday for the next couple of weeks, so there will be no issues for the next three weeks! 😱 I’ll be back on the 19th of December! See you all then.

– Dave Verwer

Cut Code Review Time and Bugs in Half

Code reviews are critical but time-consuming. CodeRabbit reviews every pull request instantly, providing detailed comments, fix suggestions, and impact analysis. You can even define custom code quality rules with AST Grep patterns to catch nuanced issues that static tools miss. Already trusted across 2M+ repositories and 100K open-source projects. Get started today.

News

Embedded Swift Improvements Coming in Swift 6.3

First, Android, and now Embedded! Swift 6.3 is going to be a significant release for non-Apple platforms. It has been possible to get Swift apps running on really tiny devices for a while now (as mentioned in Issue 655, Issue 673, and Issue 691), although getting it going was not trivial. Having embedded as part of nightly builds, and eventually of the stable Swift release, is a huge step forward.


Swift projects in the 2025 Google Summer of Code

It’s been a great Google Summer of Code for Swift this year with Priyambada Roul adding Swiftly support to VS Code, Ahmed Elrefaey improving Swift’s code completion, Mads Odgaard extending swift-java interoperability, and Tien Quoc Bui improving console output for Swift Testing. I love that the Swift team supports this initiative so well, and of course, it goes without saying that I’m grateful for all the work that the participants and mentors put into this year’s projects.

Code

Visual debugging with Swift Charts

Dimi Chakarov:

When I decided to implement the algorithm Soroush Khanlou so brilliantly described in his Elevated Swift talk I didn’t expect that the hardest part would be not the algorithm for the elevator (or lift, as we call it here), but rather the one for generating the traffic.

Soroush Khanlou’s conference talk from Swiftable 2022 in Buenos Aires is worth a watch, and the chart-led approach to problem-solving in the post is interesting, too.


Attach to Multiple Processes

Daniel Jalkut’s latest post isn’t going to be immediately useful for everyone, but I found it interesting, and it set me thinking. Maybe you’ll find it interesting or useful, too!


Handling Non-Breaking Numbers in Dynamic Text

This tip from Artem Mirzabekian’s latest post won’t be news to you if you’ve ever done front-end web work, but the technique is just as useful in native frameworks!

Business and Marketing

Indie, Alone, and Figuring It Out

Danijela Vrzan:

Going indie is exciting. Total freedom, no 9–5, no meetings - just building your own app. I imagined quiet mornings, deep focus, full control over my day. And some of that is true. But once you’re actually doing it, you discover a whole other side of indie life.

If you’re already independent, you’ll nod along with every word. If you’re thinking about making the leap, Danijela’s post should be required reading before you take the plunge.


When To Kill A Project

I don’t usually link to articles about me, but I thought this one came out quite well. When Jacob Bartlett asked me to contribute to his “War Stories” series, I suggested we chat about a few failed projects that I have attempted over the years, as the best advice can come from other people’s failures! 😬

Videos

Videos from ServerSide.swift 2025

I wrote about ServerSide.swift 2025 back in Issue 729, but if you missed the conference, you can at least now catch up with the session videos!

And finally...

I confess, I did it. I killed Claude. 😂