@stackotter

178 Followers
143 Following
263 Posts
Rohan van Klinken; Aussie software developer & vulnerability researcher; Rock climber; Loves Swift, Rust and Svelte; Creator of SwiftCrossUI, Swift Bundler and Delta Client.
GitHubhttps://github.com/stackotter
Websitehttps://stackotter.dev
BlueSkyhttps://bsky.app/profile/stackotter.dev
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)

SwiftCrossUI's AndroidBackend now supports sheets thanks to @bbrk24!

https://github.com/moreSwift/swift-cross-ui/pull/578

Thanks to Mia Koring, SwiftCrossUI now support gradients! (linear, radial, and angular/conical)

https://github.com/moreSwift/swift-cross-ui/pull/450

Kaleb Ascevich recently converted SwiftCrossUI's quick start documentation and platform-specific setup guides into DocC tutorials, with screenshots and all!

I've been working on SwiftCrossUI for a long time 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'm sure others will find them useful too; even more so now that they're visually easier to follow!

https://github.com/moreSwift/swift-cross-ui/pull/527

SwiftCrossUI now supports WebViews on Android thanks to @bbrk24’s recent PR!

https://github.com/moreSwift/swift-cross-ui/pull/537

SwiftCrossUI's AndroidBackend has been hanging for a few hundred milliseconds (and sometimes over a second) after each view update, so @bbrk24 collected a flame graph to investigate further.

It turns out that Android's RelativeLayout view measures each of its children twice per measurement pass, leading to exponential time complexity when nested!

Switching to a custom ViewGroup implementation brought the offending measurement pass from ~500ms down to ~7ms.

https://github.com/moreSwift/swift-cross-ui/pull/550

The SwiftCrossUI ControlsExample is starting to look a lot more complete on Android thanks to @bbrk24's recent AndroidBackend PRs!

Pickers: https://github.com/moreSwift/swift-cross-ui/pull/532

Toggle buttons, switches, and checkboxes: https://github.com/moreSwift/swift-cross-ui/pull/538

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.

I've based the APIs off SwiftUI's draggable and dropDestination view modifiers.

Draft PR: https://github.com/moreSwift/swift-cross-ui/pull/547

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. This is all in the as-of-yet unmerged Android support PR: https://github.com/moreSwift/swift-bundler/pull/136

If you'd like to try it out, follow the swift.org Swift Android getting started guide, then use the command in the screenshot to build SwiftCrossUI's CounterExample (on the android_support branch).

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 previous review to current changes.

Wrote it in Swift (rather than my usual Python for scripting) with as many libraries as I wanted, and it was relatively enjoyable! The annoying part was using an oddly structured library for interacting with the GitHub API (which was missing bindings for the Actions part of the GitHub API).