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

Even my VMs can't escape Windows updates 💀 My remote build job froze, and when I switched over to my PC's HDMI I found that the VM had restarted for a Windows update

Bild

I've recently been searching around for open source SwiftUI apps to port to non-Apple platforms using SwiftCrossUI. Mostly as an exercise to discover the needs of real world apps, but also to bring existing macOS apps to more platforms! I've begun by porting ZenTime (an exam study timer)

BildBild

SwiftCrossUI's Android support is quickly catching up with its iOS support, and it's becoming possible to build genuinely useful UIs for all major platforms with SCUI. If you know a software company or app dev firm that might be interested in experimenting with SwiftCrossUI, please hook me up!

SwiftCrossUI's Android support has gotten to the point where my sudoku app written with SwiftCrossUI runs on Android without any UI-specific code changes! (I just had to work around a weird HTTPS issue unrelated to SwiftCrossUI)

Bild

SwiftCrossUI v0.8.0 is out now! In this release we've mostly been working on Android support, and fixing bugs. This release also includes moreSwift’s new LLM policy (LLM_POLICY.md) for contributors and community members, which is particularly topical in current times. github.com/moreSwift/sw...

Release v0.8.0 · moreSwift/swift-cross-ui

In this release we've mostly been working on Android support, and fixing bugs. We've also been working on various other features in the background that haven't landed yet. On the admin side of thin...

github.com

SwiftCrossUI 0.7.0 introduced support for hot reloading on Linux! If you'd like to try it out, install the latest commit of Swift Bundler, and create a new project from the SwiftCrossUI hot reloading template. Then you can run the project with the ‘--hot’ flag, and everything should "just work” (TM)

Bild

Windows apps built with SwiftCrossUI are now 200mb smaller! 🎉 SwiftPM's static linking support has recently improved on Windows, allowing me to merge swift-winui and all of its dependencies into a single monorepo with static linking. Static linking lets the linker drop a lot of unused code.

SwiftCrossUI v0.6.0 is out now. This release brings a ton of Android feature parity improvements thanks to Beberka, and Gradient support thanks to Mia Koring! This release also includes the new DocC tutorials that Kaleb Ascevich created from our existing how-to guides. github.com/moreSwift/sw...

Release v0.6.0 · moreSwift/swift-cross-ui

This release brings a whole host of AndroidBackend feature parity improvements—mostly thanks to @bbrk24—and gradient support thanks to @MiaKoring! And on the documentation side of things, @kaascevi...

github.com

I've recently merged some big AppBackend protocol changes into SwiftCrossUI. Kaleb Ascevich, who first contributed to SCUI earlier this year, refactored the 2000-line protocol into about 3 dozen smaller protocols, roughly separating the API surface by feature.

SwiftCrossUI's AndroidBackend has been hanging for a few hundred milliseconds after each view update, so Beberka collected a flame graph to investigate. It turns out, Android's RelativeLayout view measures each child twice per measurement pass, leading to exponential time complexity when nested!

Bild

Worked on implementing basic drag and drop for SwiftCrossUI today, and it's coming along well! But there are still quite a few edge cases to iron out. Content types are hard to pin down, and abstracting over 5 different platforms makes things rather tedious.

SwiftCrossUI v0.5.0 is out now, with a very basic Android backend 👀 Using the Android backend requires using the main branch of Swift Bundler (which supports compiling Swift apps to Android APKs and managing Android devices/emulators). github.com/moreSwift/sw...

Release v0.5.0 · moreSwift/swift-cross-ui

The headline feature of this release is the new AndroidBackend (which is still in a very early stage; so far most of what I've done has been laying the groundwork). My focus has mostly been on Swif...

github.com

I've updated the SwiftCrossUI repository to publish its docs to GitHub Pages via the deploy-pages GitHub action instead of writing them to the gh-pages branch. The repository used to take 2.5 minutes to clone on my home WiFi, and after deleting the gh-pages branch it now takes under 2 seconds 🎉

I've just released SwiftCrossUI v0.2.0 (two and a half years after v0.1.0), and I'm aiming to begin making regular releases now that I'm focusing on SwiftCrossUI full time. 492 commits, 127 PRs, and 77k changed lines. github.com/moreSwift/sw...

Release v0.2.0 - 2.5 years later · moreSwift/swift-cross-ui

Overview The headline feature of the past 2.5 years of work is probably the new layout system for most users. It standardizes layout behaviour across all backends, making it much easier to make you...

github.com

Swift Bundler can now automatically locate compatible Swift Android SDK + Swift toolchain pairs on the user's behalf. It also supports automatically installing and launching apps on Android devices and emulators.

Bild

Made a small utility for checking in on my repositories at a glance. It solves something that has bothered me for a while, which is that GitHub doesn't display a diff from the latest review to current changes (instead it shows which *files* changed since the last review but diffs against the base).

Bild

I've been working on Android support for Swift Bundler this past week or so, and it can now bundle SwiftCrossUI applications into Android APKs fully automatically 🎉 To finish off basic Android support, I still have to implement Android device/emulator discovery and automatic APK running.

BildBild