Hello android developers,
I often hear that android users tend to have a hard time with getting started with using swift on android. Part of this stems from people not wanting to build the full toolchain, part of it stems from the complexity of the builds, part of it stems from the android port not being kept as well as Windows (or Linux), although @drodriguez has been doing a bunch of work to keep android healthy as of late.
To that end, I've been working a bit on getting some more immediate term signal on the state of the android SDK. Note, that this is purely the SDK and runtime components for the android development and not the toolchain running on android.
I've been working on getting nightlies (well, these can be more frequent if desired) of the android SDK - the Swift standard library, libdispatch (and swift SDK overlay), as well as libxml2 and curl. Foundation is something which will take a bit more work, but is easily added (the supporting infrastructure is in place). There are some preliminary builds now at https://dev.azure.com/compnerd/windows-swift/_build?definitionId=4 . These are not exactly perfect (would be nice to remove the libxml2 documentation, etc), but should get you fairly up-to-date builds of the Swift standard library and libdispatch for the moment. Foundation builds uncovered a bunch of additional work which needs to be done to repair the Foundation build on android.
All of these builds are being done on Windows, but the generated artifacts are consumable on other targets as well (i.e. you can use this with an up-to-date toolchain on Windows, Linux, or Darwin). They currently target android API level 21, though if anyone has a strong reason to support something lower, we could adjust that downwards as needed.
There is plenty of work to be done beyond just cleaning up the android build of Foundation. The CI rules could be cleaned up and simplified to support the multi-target builds (like in ICU). This work is using a custom built ICU from azure which is built for android armv7, aarch64 and windows x66, arm64. Getting the data generation would mean that everything is fully contained and available. Cleanup of the CI build rules would enable the builds of the SDK for ARMv7 and x86_64 (I know that @v.gorlov is interested in that and has been doing some where there as well). I would be happy to have some help with this.