stackotter

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

172 followers179 following179 posts

stackotter reposted

SwiftCrossUI 0.10.0 is out now! The headline feature of this release is support for Observable, thanks to a first-time contributor s-k. Other than that, we've mostly been focusing on bug fixes and tech debt since 0.9.0. github.com/moreSwift/sw...

github.comRelease v0.10.0 · moreSwift/swift-cross-uiThe headline feature of this release is support for @Observable, introduced by first-time contributor @s-k who did all of the hard work implementing prototypes and exploring the solution space. I'm...

Team Australia is seeking sponsors to support the team at the European Cybersecurity Challenge in Germany this October. This is a great opportunity for international brand exposure, and for orgs to show that they value the next gen of Australia's cybersecurity workforce.

The team's finances are handled by the University of Queensland, so you can trust that they're being used responsibly. Please DM me or email me at stackotter@stackotter.dev if your company would be interested in sponsoring this amazing team of young cybersecurity talent.

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

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)

stackotter reposted

Xmas time

stackotter@stackotter.dev

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)

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)

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...

github.comRelease v0.8.0 · moreSwift/swift-cross-uiIn 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...

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)

Much of my recent work has been supported by @videovillage.com, meaning that for now funds will mostly go to moreSwift’s external core contributors (who have so far done everything for the love of open source ❤️).

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's Counter example used to take up 360mb on Windows and now it uses 144mb (including the Windows app runtime installer).

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...

github.comRelease v0.6.0 · moreSwift/swift-cross-uiThis 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...

I've been working on SwiftCrossUI for ages and I still refer back to our Swift dev environment setup guides occasionally when setting up new VMs and machines (particularly when they're running Windows), so I hope others will enjoy them too; even more so now that they're visually easier to follow!

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!

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...

github.comRelease v0.5.0 · moreSwift/swift-cross-uiThe 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...

The Android backend is very simple for now, as laying solid groundwork has taken quite a bit of time, but future feature support improvements should become progressively faster.

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 🎉

Development has been a little bit quiet since v0.2.1 (around 2 weeks ago) because I've been focussing more on Swift Bundler, in particular getting it ready for its v3.0.0 release, and improving Windows support.

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...

github.comRelease v0.2.0 - 2.5 years later · moreSwift/swift-cross-uiOverview 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...

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.

The talk is 10 minutes long, and covers the basics of SwiftCrossUI, Swift Bundler, hot reloading, and Mia’s Swift Data alternative called Amethyst Vein.