stackotter
banner
stackotter.dev
stackotter
@stackotter.dev
Aussie software developer & uni student; Rock climber; Loves Swift, Rust and Svelte; Creator of SwiftCrossUI, Swift Bundler and Delta Client.

https://stackotter.dev
https://mastodon.social/@stackotter
SwiftCrossUI recently gained support for onHover thanks to MiaKoring!
October 25, 2025 at 9:02 AM
I forgot to update my system-wide Swift Bundler to the latest version for Mac Catalyst support, and I was graced by a very informative error automatically generated by the wonderful swift-parsing package by @[email protected]
October 23, 2025 at 2:31 AM
Swift Bundler now supports targeting Mac Catalyst. Use the `--platform macCatalyst` command line option to try it out.

You can optionally set the interface idiom (often called Optimize for Mac) as seen in attached configuration.

github.com/stackotter/s...
October 22, 2025 at 1:51 AM
And here's the same app without the AppKit-specific changes.
June 24, 2025 at 2:52 PM
Here's an example app with a variety of views, all sporting AppKit-specific changes applied with a few lines each. See next for without changes.

In terms of not-so-visible modifications, I made the Count text selectable, moved the picker to the right edge, and enabled drag&drop image replacement.
June 24, 2025 at 2:52 PM
I'm working on making it easier to make platform-specific changes to SwiftCrossUI's underlying backend views. I've taken inspiration from swiftui-introspect.

This sort of flexibility will be super useful for more advanced user interfaces.
June 24, 2025 at 2:52 PM
SwiftCrossUI now supports dynamic text styles!

They adapt to the current 'device class'. Sizes and weights were roughly taken from Apple's typography guidelines (with some extrapolation to fill in missing text styles on certain platforms).
June 24, 2025 at 5:19 AM
SwiftCrossUI has a basic multi-line TextEditor view now!
June 23, 2025 at 3:24 PM
Thank you to everyone who popped by during the stream 🙏

SwiftCrossUI's AndroidBackend prototype now supports basic buttons, text and stacks. The example may not look like much, but we solved quite a few foundational challenges which will make future progress much faster!
June 13, 2025 at 3:24 PM
Didn't manage to get it working everywhere (thank you Windows for all your strange failure modes...), but at least SwiftCrossUI has a WebView for macOS and iOS/tvOS!
June 9, 2025 at 4:56 PM
Just published a basic landing page for SwiftCrossUI!

swiftcrossui.dev

I've tested it with mobile, laptop and ultrawide screen sizes. But if you use your phone's browser in landscape then that's on you 😅
June 3, 2025 at 3:26 AM
SwiftCrossUI's Music Player example app is starting to take form!

When I finally got around to testing today's improvements against Linux and Windows, almost* all of them just worked! And they adapted to look native on each platform 😉

*ignoring a GtkBackend layout bug I had to address 🥲
June 2, 2025 at 4:38 PM
Just messing around with Swift on Android a bit 👀 I created this basic layout from Swift via JNI as a quick test of some ideas I have for bringing SwiftCrossUI to Android
May 27, 2025 at 4:06 PM
Made a prototype of a Swift formal verification system a little while ago and never got around to sharing it!

Here's it finding a 'bug' in my questionable xkcd random implementation 😅
May 23, 2025 at 5:06 AM
I forgot to update the body of the ForEach after removing the duration field from my Song type. But Swift had other ideas...
May 22, 2025 at 7:07 AM
26 failed CI runs later, SwiftCrossUI's automatically-generated documentation site contains documentation for each backend's platform-specific features (e.g. NSViewRepresentable) in addition to the existing documentation for the core SwiftCrossUI target.
May 21, 2025 at 7:43 AM
I’m excited to announce (belatedly) that @videovillage.com has released a Linux port of their plugin manager, built with SwiftCrossUI and Swift Bundler!
May 20, 2025 at 2:28 PM
Just one more commit...
May 20, 2025 at 8:42 AM
Classic CI wrestling match
May 20, 2025 at 8:42 AM
Love a good job graph 🤤 I'm adding backend-specific documentation to SwiftCrossUI's documentation site, which has required rearranging my CI to pass doccarchive's from each platform-specific job to a final update-docs step.
May 20, 2025 at 6:47 AM
Finally got around to organising SwiftCrossUI's documentation. So satisfying finally having a clutter-free sidebar again!

stackotter.github.io/swift-cross-...
May 17, 2025 at 3:21 PM
Third SwiftCrossUI modifier of the evening: fixedSize. This one was a lot easier to implement than aspectRatio.
May 16, 2025 at 2:17 PM
Just a quick demo of SwiftCrossUI's new aspectRatio modifier. It was surprisingly fiddly implementing aspectRatio while keeping in mind that there are far less well behaved views than images, but it should work well enough in most cases...
May 16, 2025 at 12:56 PM
Here's the same app running on Linux and Windows. Paths and shapes aren't supported on Linux yet so I had to disable the play buttons, but the rest worked with zero UI tweaks.
May 14, 2025 at 3:19 PM
Check out SwiftCrossUI's hot reloading helping me whip up a new sample app in no time at all 😉 Hot reloading is only supported on macOS at the moment but I hope to bring it to Linux & Windows in the near future.
May 14, 2025 at 3:19 PM