We are now posting preliminary builds of Swift 6.2 and soon 6.3 Android SDK bundles on github, if anyone missed it.
Already under way, not quite SwiftUI though.
I doubt the Android workgroup will build any UI library ourselves anytime soon, but we will probably just supply a list of such Swift GUI frameworks that we've tested as working on Android, like the aforementioned FlutterSwift, and help make those work better.
Take a look at the SDK bundles link above, we've posted a Slack invite there for the Swift OSS effort. Come talk to us in the #android channel. Alternately, you can start working with us on github or email or DM in this forum with one of the Android workgroup members.
For example, @ColemanCDA has long put out Swift packages supporting Android and is currently discussing Android Binder support in that Slack channel. He will probably join the workgroup soon.
We are looking for people willing to contribute like him, though it doesn't have to be in the same way or to the same depth. You could just help contribute to getting more OSS packages building for Android on the Swift Package Index or writing better documentation. There are many ways to pitch in and join the Android workgroup. ![]()
Not that I know of, but it is a good idea. We expect good results from performance and memory usage, but app size will get worse, depending on which Swift features you use (see more info below), because unlike Swift on iOS or Java/Kotlin on Android, Swift isn't bundled with the Android OS.
I'll put together a post with some numbers in the coming months, remind me if I don't.
No, the embedded WASM mode is meant for bare wasm access, where you don't even use WASI. On Android, where every device ships with the Bionic C library, we gain nothing by not using it. I had this wrong, see Max's correction below. Given the minimal savings from not even using the Swift stdlib and adding a full embedded mode, we have not tried that yet.
Swift already has a model where you can greatly strip down what you package from the Swift runtime libraries, by not including import FoundationInternationalization in your code or your package dependencies.
We'll make sure that works well for Android, and are looking at ways of minimizing FoundationInternationalization also.