The Android workgroup is looking into the various GUI options out there- we will not provide one ourselves or choose any single existing toolkit as official, as we say in the draft vision doc for Android- and plans to curate a list of the currently used GUI toolkits, with some info on how well they work with the Swift SDK for Android.
Here is what we've found so far:
Open Source
UIKit-Cross-Platform - probably the earliest UI toolkit for Android, in development for more than 8 years and mostly written in Swift by flowkey and @Geordie_J
FlutterSwift - workgroup member @lukeh's Swift bindings to Flutter, means writing your UI in Dart
SwiftGodot - @migueldeicaza's Godot bindings, may require more testing but should allow you to use its GUI controls and of course the game engine itself
Skip.tools - either transpiles or compiles and bridges your existing SwiftUI code to Jetpack Compose, see their open-source showcase app, produced by workgroup members @marcprux and Abe
SCADE - @gmn and team long provided their own UI engine for Android
Let us know of any more we missed, plus try them out and share how well they worked for you.
Quick clarification: when used alongside the Swift SDK for Android, Skip in its "Fuse" mode does not transpile the SwiftUI, but rather compiles it natively. The underlying implementation bridges the SwiftUI API to the equivalent Jetpack Compose native views and supporting technology like navigation and observation.
Ideally, I’d like to see those projects join forces. An open source implementation of SwiftUI (or a subset thereof) could be amazing for Swift, not just on Android.
I am aware of it, but was unaware that it had any support for Android. You are talking about the libadwaita backend? I don't see anything firm on that C library supporting Android either, in my few web searches just now.
Technically speaking, aparoksha is the 'umbrella' backend that abstracts over libadwaita, winui and swiftui. But its most notable project is adwaita-swift.
I don’t think it supports Android yet, but given its similarities to SwiftCrossUI, the work required to port it to Android should also be very similar.
I just wanted to mention it because it’s another attempt at a cross-platform SwiftUI (that may also support Android in the future)
I'd give a mention to Shaft. It is currently not working for Android.(Only works on macOS / Linux / Window / WASM). And Android support will be added soon.