RSSAmplifier

Blog

Elegant Chaos

News and updates from Elegant Chaos

elegantchaos.comRSS feed ↗10 posts

Latest posts

Agents, Idealism, And Capitalism

My timeline is full of discussion about AI, and agentic coding. It makes me sad how culture-wars a lot of it is. Very strident. Very “you’re either with us, or you’re against us!”. For what it’s worth, I’ve been playing with agents, and I think that there are some great things about them. As a solo developer, having an agent pair-programmer has revolutionised my work. That doesn’t mean I’m blind…

Fixing The ActionBuilder Plugin

In a previous post , I mentioned a command line tool that I built which you can point at a Swift package, and which will generate a GitHub Actions workflow file for it. I also built a SwiftPM plugin which invokes the tool, but at some point it stopped working. Instead of running, it would just hang, for reasons unknown. The Deadlock The root cause turned out to be nested SwiftPM invocations. The…

Localizable String Catalogues in Swift Packages

I’ve been slowly splitting The Stack up into small internal Swift packages. Unfortunately, if you use localizable string catalogues in Xcode, there are a few wrinkles. Lots Of Small Targets I’ve been splitting Xcode app projects into multiple packages for a few years now. Mihaela Mihaljevic wrote about something similar a while ago . Some of the details in that post are different, but the basic…

SwiftUI Navigation Pain

One of the things I’ve wanted to do with The Stack is to handle all of the user’s interactions with some sort of action abstraction . It turns out that this is harder than it ought to be with the modern SwiftUI navigation mechanisms. SwiftUI’s modern navigation uses NavigationStack instead of the older NavigationView, and it’s definitely an improvement on what came before. The basic idea is: you…

All Quiet In The Western Isles

I’ve been a bit quiet and not posted for the last few weeks. This is down to a combination of holidays, minor sickness, distractions, and beavering away preparing an MVP of The Stack , which I’ve now released. I’ve also got a bit of a backlog of other things I mean to post about… … but they will have to wait for another day. Potential topics include: the solution I settled on for abstracting…

The Stack

I’ve just quietly released the first version of The Stack. It represents a slightly different and fairly opinionated take on solving the To Do list / note taking problem, and I made it mostly to scratch my own itches 1 . I’m hoping that some other people think the way I do and will also find it useful. You can download it here . For some more detailed answers as to why I made it, read on… Isn’t…

App Storage

Whilst adding some settings to The Stack 1 , I was reminded of something that has bugged me for a while about SwiftUI’s @AppStorage . In a classic act of yak shaving , I decided to fix the annoyance instead of doing the task I actually set out to do… Is That The DRY-Violation Klaxon I Hear? SwiftUI’s @AppStorage macro is a neat way to access a UserDefaults value from within a SwiftUI view 2 You…

Caveat Emptor

I was looking back on some of my old blog posts from 2021 earlier 1 , and I came across something that I thought bears repeating. It was from this post , and the section I though was worth re-visiting was called “Caveat Emptor”. It was about how my open source projects are often unfinished, and unpolished, and very much work in progress. What I said then still applies today, and I’ll repeat it…

Release Tools Tagging

After my last post , I thought a bit more about Release Tools, and decided that requiring a tag was definitely the right way to go, and over a couple of days last week I implemented it. I also decided that it was a big enough change that I may as well call this Release Tools 4.0, and take the opportunity to clean up and remove some legacy code. Tagging Managing release tags in rt is now a separate…

Release Tools (Fastlane For Idiots)

My latest detour was to add an extra option to ReleaseTools , a command-line tool, written in Swift, that I made a few years ago. Actually I’ve just checked, and I started it in 2019 🤯. ReleaseTools (or rt for short) basically exists to automate the process of uploading an app to the app store, or packaging it up for external distribution via Sparkle. I guess you could think of it as a bit like…