From ee48c5585209e33ca99f529203b25943e661cb29 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 13 Nov 2025 03:00:48 +0530 Subject: [PATCH 01/38] Add Android blog post answering common questions and sharing more links and info Co-authored-by: Marc Prud'hommeaux --- _data/authors.yml | 4 + ...-21-exploring-the-swift-sdk-for-android.md | 78 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 _posts/2025-11-21-exploring-the-swift-sdk-for-android.md diff --git a/_data/authors.yml b/_data/authors.yml index ea0c8faf3..cf87a0c12 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -243,6 +243,10 @@ parkera: github: parkera about: "Tony Parker manages teams at Apple working on Foundation, Swift packages, and the Swift Standard Library." +android-workgroup: + name: The Android workgroup + about: "The Android workgroup works toward furthering Swift on Android." + diversity-workgroup: name: The Diversity in Swift workgroup about: "The Diversity in Swift workgroup is a group of volunteers working to make our community more approachable and inclusive." diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md new file mode 100644 index 000000000..65fba17bc --- /dev/null +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -0,0 +1,78 @@ +--- +layout: new-layouts/post +published: false +date: 2025-11-21 10:00:00 +title: "Exploring the Swift SDK for Android" +author: android-workgroup +category: "Developer Tools" +--- + +Since the announcement of [the preview Swift SDK for Android last month](/blog/nightly-swift-sdk-for-android/), +the Android workgroup has seen a lot of questions about how it works and what's next. Please read on for those answers. + +### Swift in the World of Android + +Swift is a natively-compiled language to machine code and Android is no different. +That renders it on par with C and C++ code built using the Android NDK, which are +languages more geared towards performance, while Swift essays a happier balance between +performance, safety, and usability. To enable that, Swift apps must bundle a native +runtime for Android that implements many of its features, including its standard library and +core libraries like Dispatch and [Foundation](/blog/foundation-preview-now-available/). + +However, since most Android APIs are only made available through Java and Kotlin +in the Android Runtime (ART), a version of the Java Virtual Machine (JVM) +optimized for mobile, we need to use the Java Native Interface (JNI) and write +bindings both to call Swift from Java and go the other way. That is where the +swift-java project's `jextract` tool and its [new support for generating such +JNI bindings for you](/blog/gsoc-2025-showcase-swift-java/) comes in. Please +watch its author Mads Odgaard's [Server-Side Swift Conference talk from last month](https://www.youtube.com/watch?v=tOH6V1IvTAc) +and try out the tool for yourself with [this example Android app that he put together](https://github.com/swiftlang/swift-android-examples/tree/main/hello-swift-java). + +### Swift in Android app stores + +While Swift on Android may seem new, it's important to recognize that there are +already millions of Android devices running Swift today. Production apps with +substantial user bases have been shipping Swift on Android for years, proving +the viability of this approach: + +- [Spark](https://play.google.com/store/apps/details?id=com.readdle.spark) - A popular email client using Swift to share code between mobile iOS/Android and desktop macOS/Windows versions +- [flowkey](https://play.google.com/store/apps/details?id=com.flowkey.app) - This interactive piano learning app has been built with Swift on Android since the open-source release +- [MediQuo](https://play.google.com/store/apps/details?id=com.mediquo.main) - A healthcare app leveraging Swift for cross-platform development +- [Naturitas](https://play.google.com/store/apps/details?id=com.naturitas.android) - An organic products marketplace running Swift in production + +These aren't experimental apps or proofs of concept—they're real businesses serving +real users at scale. The fact that millions of people use Swift-powered Android apps +daily without knowing shows both the stability of Swift on Android and the +practical benefits it provides to development teams sharing code across platforms. + +### Coming up Next + +Swift on Android [first got started as soon as the language was open-sourced a decade ago](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151207/000171.html), +but it is by no means done. [The Android project board lists areas we are working on](https://github.com/orgs/swiftlang/projects/17) +and easy debugging is a high priority for us next. While it [mostly works in limited use now](https://github.com/swiftlang/llvm-project/issues/10831), +we need to test it more and make it easy to access. That will likely mean tying +the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), +into editors like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/), +Android Studio, and [CodeEdit](https://www.codeedit.app/), another issue on our board. + +### Sharing Logic Versus Sharing UI + +A common concern is that we do not provide a cross-platform GUI toolkit. As we +write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), +the Android workgroup has no plans to create such a GUI toolkit, but will instead +curate a list of cross-platform UI tools. See our recent post in the Swift forums +listing several popular and in-progress options. (editor: add this link) + +### Diving in + +Finally, we intend to bring you interviews and information from those using Swift +on Android already, as pioneering companies like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) +and [Flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) +have written about using Swift on Android for the last decade. The Left Bit's Pierluigi Cifani +[wrote about their experiences recently](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), +gave [a great talk at NSSpain 2025 a couple months ago](https://youtu.be/EIGl6GOo210), +and was [interviewed by Swift Toolkit last month](https://www.swifttoolkit.dev/posts/dc-pier). + +Swift on Android has been a community effort for the last decade, snowballing +from that initial patch to many businesses and developers making their livelihood +with it today. Join us to make it even better! From d5c6eb146493c9e21196445c1b86f2fdb5e041e0 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 04:15:35 +0530 Subject: [PATCH 02/38] Reword one sentence --- _posts/2025-11-21-exploring-the-swift-sdk-for-android.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index 65fba17bc..587d97b2f 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -41,8 +41,8 @@ the viability of this approach: - [Naturitas](https://play.google.com/store/apps/details?id=com.naturitas.android) - An organic products marketplace running Swift in production These aren't experimental apps or proofs of concept—they're real businesses serving -real users at scale. The fact that millions of people use Swift-powered Android apps -daily without knowing shows both the stability of Swift on Android and the +real users at scale. The fact that millions of people unknowingly use Swift-powered +Android apps daily shows both the stability of Swift on Android and the practical benefits it provides to development teams sharing code across platforms. ### Coming up Next From 6710b2fb8e8b2144b1ef28b217eb18eb831eed4a Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 05:39:03 +0530 Subject: [PATCH 03/38] Link to GUI forums post --- _posts/2025-11-21-exploring-the-swift-sdk-for-android.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index 587d97b2f..e1fde2511 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -60,8 +60,8 @@ Android Studio, and [CodeEdit](https://www.codeedit.app/), another issue on our A common concern is that we do not provide a cross-platform GUI toolkit. As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), the Android workgroup has no plans to create such a GUI toolkit, but will instead -curate a list of cross-platform UI tools. See our recent post in the Swift forums -listing several popular and in-progress options. (editor: add this link) +curate a list of cross-platform UI tools. See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) +listing a handful of popular and in-progress options. ### Diving in From 16c7368e9e23a811aa2097057f377fd0cde6735e Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 05:51:33 +0530 Subject: [PATCH 04/38] Link to getting started page at end --- _posts/2025-11-21-exploring-the-swift-sdk-for-android.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index e1fde2511..d4a2fd4bd 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -75,4 +75,5 @@ and was [interviewed by Swift Toolkit last month](https://www.swifttoolkit.dev/p Swift on Android has been a community effort for the last decade, snowballing from that initial patch to many businesses and developers making their livelihood -with it today. Join us to make it even better! +with it today. [Try out the preview SDK snapshots](/documentation/articles/swift-sdk-for-android-getting-started.html) +and help us make it even better! From 2e1423def037ac1413636d859d28ffdfae398dad Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 18:22:15 +0530 Subject: [PATCH 05/38] Pull in Konrad's copy with some changes --- ...11-21-exploring-the-swift-sdk-for-android.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index d4a2fd4bd..2a9f08241 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -19,14 +19,15 @@ performance, safety, and usability. To enable that, Swift apps must bundle a nat runtime for Android that implements many of its features, including its standard library and core libraries like Dispatch and [Foundation](/blog/foundation-preview-now-available/). -However, since most Android APIs are only made available through Java and Kotlin -in the Android Runtime (ART), a version of the Java Virtual Machine (JVM) -optimized for mobile, we need to use the Java Native Interface (JNI) and write -bindings both to call Swift from Java and go the other way. That is where the -swift-java project's `jextract` tool and its [new support for generating such -JNI bindings for you](/blog/gsoc-2025-showcase-swift-java/) comes in. Please -watch its author Mads Odgaard's [Server-Side Swift Conference talk from last month](https://www.youtube.com/watch?v=tOH6V1IvTAc) -and try out the tool for yourself with [this example Android app that he put together](https://github.com/swiftlang/swift-android-examples/tree/main/hello-swift-java). +However, since most Android APIs are only made available through Java and Kotlin, +Swift must call into the Android Runtime (ART). That is where the [Java interoperability +project's](https://github.com/swiftlang/swift-java) `jextract` and `wrap-java` +tools come in. These tools automatically create bindings that enable you to call +Swift from Java or go the other way using the Java Native Interface (JNI), which +allows Swift to seamlessly integrate with the Android platform. The [`jextract` +tool gained a JNI mode recently](/blog/gsoc-2025-showcase-swift-java/): +please watch its author Mads Odgaard's [Server Side Swift Conference talk from last month](https://www.youtube.com/watch?v=tOH6V1IvTAc). +You can also check out [his hello-swift example in the Android examples repository](https://github.com/swiftlang/swift-android-examples/tree/main/hello-swift-java). ### Swift in Android app stores From 4e13d149f33c256e9bfe6bf000a02577f5b228f6 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 19:29:33 +0530 Subject: [PATCH 06/38] Make Dave's suggested changes to first paragraph --- ...2025-11-21-exploring-the-swift-sdk-for-android.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index 2a9f08241..5f1ad0005 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -12,12 +12,12 @@ the Android workgroup has seen a lot of questions about how it works and what's ### Swift in the World of Android -Swift is a natively-compiled language to machine code and Android is no different. -That renders it on par with C and C++ code built using the Android NDK, which are -languages more geared towards performance, while Swift essays a happier balance between -performance, safety, and usability. To enable that, Swift apps must bundle a native -runtime for Android that implements many of its features, including its standard library and -core libraries like Dispatch and [Foundation](/blog/foundation-preview-now-available/). +Swift compiles directly to native machine code on Android, the same way it does on other +platforms. This gives it similar performance to C and C++ code using the Android Native +Development Kit (NDK), while achieving a happier balance between performance, safety, +and usability. To make this possible, Swift apps on Android bundle a native runtime +that implements many of its features, including its standard library and core +libraries like Dispatch and [Foundation](/blog/foundation-preview-now-available/). However, since most Android APIs are only made available through Java and Kotlin, Swift must call into the Android Runtime (ART). That is where the [Java interoperability From 508171d0a8673104c237491bfa89165681a8c171 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 19:59:25 +0530 Subject: [PATCH 07/38] Make Dave's suggested changes to app examples and surrounding text --- ...11-21-exploring-the-swift-sdk-for-android.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index 5f1ad0005..c4b6bc580 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -10,7 +10,7 @@ category: "Developer Tools" Since the announcement of [the preview Swift SDK for Android last month](/blog/nightly-swift-sdk-for-android/), the Android workgroup has seen a lot of questions about how it works and what's next. Please read on for those answers. -### Swift in the World of Android +## Swift in the World of Android Swift compiles directly to native machine code on Android, the same way it does on other platforms. This gives it similar performance to C and C++ code using the Android Native @@ -29,23 +29,16 @@ tool gained a JNI mode recently](/blog/gsoc-2025-showcase-swift-java/): please watch its author Mads Odgaard's [Server Side Swift Conference talk from last month](https://www.youtube.com/watch?v=tOH6V1IvTAc). You can also check out [his hello-swift example in the Android examples repository](https://github.com/swiftlang/swift-android-examples/tree/main/hello-swift-java). -### Swift in Android app stores +## Swift on Android in production -While Swift on Android may seem new, it's important to recognize that there are -already millions of Android devices running Swift today. Production apps with -substantial user bases have been shipping Swift on Android for years, proving -the viability of this approach: +Android apps built with Swift have millions of downloads and have been in production +for many years. Here are some notable examples: - [Spark](https://play.google.com/store/apps/details?id=com.readdle.spark) - A popular email client using Swift to share code between mobile iOS/Android and desktop macOS/Windows versions -- [flowkey](https://play.google.com/store/apps/details?id=com.flowkey.app) - This interactive piano learning app has been built with Swift on Android since the open-source release +- [flowkey](https://play.google.com/store/apps/details?id=com.flowkey.app) - An interactive piano learning app built with Swift for Android for almost a decade - [MediQuo](https://play.google.com/store/apps/details?id=com.mediquo.main) - A healthcare app leveraging Swift for cross-platform development - [Naturitas](https://play.google.com/store/apps/details?id=com.naturitas.android) - An organic products marketplace running Swift in production -These aren't experimental apps or proofs of concept—they're real businesses serving -real users at scale. The fact that millions of people unknowingly use Swift-powered -Android apps daily shows both the stability of Swift on Android and the -practical benefits it provides to development teams sharing code across platforms. - ### Coming up Next Swift on Android [first got started as soon as the language was open-sourced a decade ago](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151207/000171.html), From b8603c44abbdd134d9e742c366401ed1723ea916 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 20:29:29 +0530 Subject: [PATCH 08/38] Make Dave's suggested changes to future work section --- _posts/2025-11-21-exploring-the-swift-sdk-for-android.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index c4b6bc580..eb6aaf589 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -39,11 +39,11 @@ for many years. Here are some notable examples: - [MediQuo](https://play.google.com/store/apps/details?id=com.mediquo.main) - A healthcare app leveraging Swift for cross-platform development - [Naturitas](https://play.google.com/store/apps/details?id=com.naturitas.android) - An organic products marketplace running Swift in production -### Coming up Next +## Coming up Next -Swift on Android [first got started as soon as the language was open-sourced a decade ago](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151207/000171.html), -but it is by no means done. [The Android project board lists areas we are working on](https://github.com/orgs/swiftlang/projects/17) -and easy debugging is a high priority for us next. While it [mostly works in limited use now](https://github.com/swiftlang/llvm-project/issues/10831), +Grassroots community efforts to run Swift on Android [began as soon as the language source was opened in 2015](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151207/000171.html), +and continue to this day. [The Android project board lists areas the workgroup determines important](https://github.com/orgs/swiftlang/projects/17), +such as easy debugging, now a high priority for us. While it [mostly works in limited use](https://github.com/swiftlang/llvm-project/issues/10831), we need to test it more and make it easy to access. That will likely mean tying the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), into editors like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/), From 83dabdf50acf774e845af8b1309812c2e7bb37ef Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 20:41:30 +0530 Subject: [PATCH 09/38] Tweak pioneer paragraph --- _posts/2025-11-21-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index eb6aaf589..d0d4b97e5 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -60,7 +60,7 @@ listing a handful of popular and in-progress options. ### Diving in Finally, we intend to bring you interviews and information from those using Swift -on Android already, as pioneering companies like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) +on Android already, as pioneers like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) and [Flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) have written about using Swift on Android for the last decade. The Left Bit's Pierluigi Cifani [wrote about their experiences recently](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), From bfbadcf24fed3430898db8facd0f646c5f21bb6e Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 20:55:11 +0530 Subject: [PATCH 10/38] Expand GUI tools info --- ...-11-21-exploring-the-swift-sdk-for-android.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index d0d4b97e5..f4019563e 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -49,15 +49,19 @@ the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc into editors like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/), Android Studio, and [CodeEdit](https://www.codeedit.app/), another issue on our board. -### Sharing Logic Versus Sharing UI +## Sharing Logic Versus Sharing UI -A common concern is that we do not provide a cross-platform GUI toolkit. As we -write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), +Swift on Android is primarily suited to sharing business logic, as we do not provide +a cross-platform GUI toolkit. As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), the Android workgroup has no plans to create such a GUI toolkit, but will instead -curate a list of cross-platform UI tools. See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) -listing a handful of popular and in-progress options. +curate a list of cross-platform UI tools. -### Diving in +See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) +that lists a handful of popular and in-progress options we found, but have not +validated regarding what their authors claim. We will work with those devs in the +coming months to add more info on using their GUI tools with the Swift SDK for Android. + +## Diving in Finally, we intend to bring you interviews and information from those using Swift on Android already, as pioneers like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) From 5a97aaa6ec679863b33c58586651514be6445b67 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Fri, 21 Nov 2025 21:24:19 +0530 Subject: [PATCH 11/38] Last GUI tweak --- _posts/2025-11-21-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md index f4019563e..f4916b685 100644 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md @@ -57,7 +57,7 @@ the Android workgroup has no plans to create such a GUI toolkit, but will instea curate a list of cross-platform UI tools. See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) -that lists a handful of popular and in-progress options we found, but have not +that lists a handful of popular and in-progress options we found, but have not yet validated regarding what their authors claim. We will work with those devs in the coming months to add more info on using their GUI tools with the Swift SDK for Android. From c305a11a12ec7670fa647c2c862ec2677fb4ce6f Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 04:00:14 +0530 Subject: [PATCH 12/38] Add 6.3 SDK snapshots and more info, plus some review tweaks asked for --- ...-21-exploring-the-swift-sdk-for-android.md | 77 --------- ...-18-exploring-the-swift-sdk-for-android.md | 156 ++++++++++++++++++ 2 files changed, 156 insertions(+), 77 deletions(-) delete mode 100644 _posts/2025-11-21-exploring-the-swift-sdk-for-android.md create mode 100644 _posts/2025-12-18-exploring-the-swift-sdk-for-android.md diff --git a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md b/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md deleted file mode 100644 index f4916b685..000000000 --- a/_posts/2025-11-21-exploring-the-swift-sdk-for-android.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -layout: new-layouts/post -published: false -date: 2025-11-21 10:00:00 -title: "Exploring the Swift SDK for Android" -author: android-workgroup -category: "Developer Tools" ---- - -Since the announcement of [the preview Swift SDK for Android last month](/blog/nightly-swift-sdk-for-android/), -the Android workgroup has seen a lot of questions about how it works and what's next. Please read on for those answers. - -## Swift in the World of Android - -Swift compiles directly to native machine code on Android, the same way it does on other -platforms. This gives it similar performance to C and C++ code using the Android Native -Development Kit (NDK), while achieving a happier balance between performance, safety, -and usability. To make this possible, Swift apps on Android bundle a native runtime -that implements many of its features, including its standard library and core -libraries like Dispatch and [Foundation](/blog/foundation-preview-now-available/). - -However, since most Android APIs are only made available through Java and Kotlin, -Swift must call into the Android Runtime (ART). That is where the [Java interoperability -project's](https://github.com/swiftlang/swift-java) `jextract` and `wrap-java` -tools come in. These tools automatically create bindings that enable you to call -Swift from Java or go the other way using the Java Native Interface (JNI), which -allows Swift to seamlessly integrate with the Android platform. The [`jextract` -tool gained a JNI mode recently](/blog/gsoc-2025-showcase-swift-java/): -please watch its author Mads Odgaard's [Server Side Swift Conference talk from last month](https://www.youtube.com/watch?v=tOH6V1IvTAc). -You can also check out [his hello-swift example in the Android examples repository](https://github.com/swiftlang/swift-android-examples/tree/main/hello-swift-java). - -## Swift on Android in production - -Android apps built with Swift have millions of downloads and have been in production -for many years. Here are some notable examples: - -- [Spark](https://play.google.com/store/apps/details?id=com.readdle.spark) - A popular email client using Swift to share code between mobile iOS/Android and desktop macOS/Windows versions -- [flowkey](https://play.google.com/store/apps/details?id=com.flowkey.app) - An interactive piano learning app built with Swift for Android for almost a decade -- [MediQuo](https://play.google.com/store/apps/details?id=com.mediquo.main) - A healthcare app leveraging Swift for cross-platform development -- [Naturitas](https://play.google.com/store/apps/details?id=com.naturitas.android) - An organic products marketplace running Swift in production - -## Coming up Next - -Grassroots community efforts to run Swift on Android [began as soon as the language source was opened in 2015](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151207/000171.html), -and continue to this day. [The Android project board lists areas the workgroup determines important](https://github.com/orgs/swiftlang/projects/17), -such as easy debugging, now a high priority for us. While it [mostly works in limited use](https://github.com/swiftlang/llvm-project/issues/10831), -we need to test it more and make it easy to access. That will likely mean tying -the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), -into editors like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/), -Android Studio, and [CodeEdit](https://www.codeedit.app/), another issue on our board. - -## Sharing Logic Versus Sharing UI - -Swift on Android is primarily suited to sharing business logic, as we do not provide -a cross-platform GUI toolkit. As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), -the Android workgroup has no plans to create such a GUI toolkit, but will instead -curate a list of cross-platform UI tools. - -See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) -that lists a handful of popular and in-progress options we found, but have not yet -validated regarding what their authors claim. We will work with those devs in the -coming months to add more info on using their GUI tools with the Swift SDK for Android. - -## Diving in - -Finally, we intend to bring you interviews and information from those using Swift -on Android already, as pioneers like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) -and [Flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) -have written about using Swift on Android for the last decade. The Left Bit's Pierluigi Cifani -[wrote about their experiences recently](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), -gave [a great talk at NSSpain 2025 a couple months ago](https://youtu.be/EIGl6GOo210), -and was [interviewed by Swift Toolkit last month](https://www.swifttoolkit.dev/posts/dc-pier). - -Swift on Android has been a community effort for the last decade, snowballing -from that initial patch to many businesses and developers making their livelihood -with it today. [Try out the preview SDK snapshots](/documentation/articles/swift-sdk-for-android-getting-started.html) -and help us make it even better! diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md new file mode 100644 index 000000000..477dfa925 --- /dev/null +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -0,0 +1,156 @@ +--- +layout: new-layouts/post +published: false +date: 2025-12-18 10:00:00 +title: "Exploring the Swift SDK for Android" +author: android-workgroup +category: "Developer Tools" +--- + +Since the announcement of [the preview Swift SDK for Android a couple months ago](/blog/nightly-swift-sdk-for-android/), +the Android workgroup has seen a lot of questions about how it works and what's next. +Please read on for some answers to common questions about the technology and its +future. + +## How Swift works on Android + +Swift compiles directly to native machine code on Android, the same way it does on most +other platforms. This approach produces similar performance to C and C++ code built using the +Android Native Development Kit (NDK), while achieving a happier balance between performance, +safety, and usability. To make this possible, Swift apps on Android bundle a native runtime +that implements many of its features, including its standard library and core +libraries, like Dispatch and [Foundation](/blog/foundation-preview-now-available/). + +However, since most Android APIs are only made available through Java and Kotlin, +Swift must call into the Android Runtime (ART). That is where the [Java interoperability +project's](https://github.com/swiftlang/swift-java) `jextract` and `wrap-java` +tools come in. These tools automatically create bindings that enable you to call +Swift from Java or go the other way using the Java Native Interface (JNI), which +allows Swift to seamlessly integrate with the Android platform. + +The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): +you can now watch its author Mads Odgaard's [Server Side Swift Conference talk from a couple months ago](https://www.youtube.com/watch?v=tOH6V1IvTAc) +and try out [his new weather example app in the Android examples repository]( +https://github.com/swiftlang/swift-android-examples/pull/25). (editor: linking his pull +for now, we'll swap in the link to the final directory once that example is merged later tonight PST) + +## Swift on Android in production + +While work is still ongoing on official Java interoperability, Android apps built using Swift +have been in production for many years employing homegrown Java interop, with these apps +collectively downloaded millions of times. Here are some notable examples: + +- [Spark](https://play.google.com/store/apps/details?id=com.readdle.spark) - A popular email client using Swift to share code between mobile iOS/Android and desktop macOS/Windows versions +- [flowkey](https://play.google.com/store/apps/details?id=com.flowkey.app) - An interactive piano learning app built with Swift for Android for almost a decade +- [MediQuo](https://play.google.com/store/apps/details?id=com.mediquo.main) - A healthcare app leveraging Swift for cross-platform development +- [Naturitas](https://play.google.com/store/apps/details?id=com.naturitas.android) - An organic products marketplace running Swift in production + +## Ongoing work + +Grassroots community efforts to run Swift on Android [began as soon as the language source was opened in 2015](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151207/000171.html), +and continue to this day. [The Android project board lists areas the workgroup determines important](https://github.com/orgs/swiftlang/projects/17), +such as easy debugging, now a high priority for us. While it [may work for small examples](https://github.com/swiftlang/llvm-project/issues/10831), +we need to expand and test it more and make it easy to configure and access. That will likely +mean tying the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), +into Integrated Development Environments (IDEs) like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/), +and Android Studio, another issue on our board. + +[An Android workflow](https://github.com/swiftlang/github-workflows/pull/172) was +added to the official Swift workflows for GitHub months ago, allowing you to easily +try building your Swift packages with the Swift SDK for Android, and work is underway to let you +[run your tests in an Android emulator](https://github.com/swiftlang/github-workflows/pull/215) +too. + +We are actively looking to onboard more contributors and have set up [a video call this +weekend to discuss](https://forums.swift.org/t/swift-on-android-new-contributors-call/83729). +We hope to make these contributor calls a recurring event moving forward, as more people +pitch in to improving on these Swift tools themselves. + +## Sharing Logic Versus Sharing UI + +Swift allows you to target many platforms with the same business logic, and Swift +on Android expands that much more, but we do not provide a cross-platform GUI toolkit. +As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), +the Android workgroup has no plans to create such a GUI toolkit, but will instead +curate a list of cross-platform UI tools from the community. + +See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) +that lists a handful of popular and in-progress options a preliminary search found, but +which we have not yet validated regarding what their authors claim. We will work with +those devs in the coming months to add more info on using their GUI tools with the Swift +SDK for Android. + +## Android API versioning + +Until recently, Swift on Android did not support targeting multiple Android API levels +in the same app, but the recent preview releases now bring the familiar `@available` +attribute and `#available` runtime check that you know from Apple platforms to Android: + +```swift +#if canImport(Android) +import Android +import Dispatch +#endif + +@available(Android 33, *) +func backtrace() { + withUnsafeTemporaryAllocation(of: UnsafeMutableRawPointer.self, capacity: 1) { address in + _ = backtrace(address.baseAddress!, 1) + } +} + +@available(Android 35, *) +func hello35() { + print("Hello from API 35") +} + +@available(Android 27, *) +func hello27() { + print("Hello, world!") +} + +@main +struct ExecutableDemo { + + static func main() { + #if os(Android) + hello27() + if #available(Android 33, *) { + backtrace() + print("Hello from Android API 33+") + if #available(Android 35, *) { + hello35() + } + } + #endif + } +} +``` (editor: should we slim this down?) +Try this new feature out on Android and let us know how it is working for you. + +## Learn from the community + +Those using Swift on Android for many years have been sharing their experiences, +as path-breakers like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) +and [Flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) +have written about their work for the last decade. The Left Bit's Pierluigi Cifani +[wrote about their experiences recently](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), +gave [a great talk at NSSpain 2025 a couple months ago](https://youtu.be/EIGl6GOo210), +and was [interviewed by Swift Toolkit last month](https://www.swifttoolkit.dev/posts/dc-pier). + +A [community member recently contributed an example app](https://github.com/swiftlang/swift-android-examples/pull/24) +that builds C++ using CMake and links it with Swift, using Swift's automated JNI bridging +to Java instead. (editor: not sure we will get this in, but might be a good example to highlight for some) + +## Swift 6.3 SDK nightly previews + +Finally, we are happy to announce that [an official Swift 6.3 SDK CI](https://ci.swift.org/job/oss-swift-6.3-package-swift-sdk-for-android/) +has been set up, and it is producing [nightly preview releases of the Swift 6.3 SDK for Android](/install/macos/#swift-sdk-buindles-dev). +Please follow the [Getting Started guide](/documentation/articles/swift-sdk-for-android-getting-sta +rted.html) +to install and use it. (editor: I will update that guide by 3 AM Thursday PST with 6.3 SDK info) + +Swift on Android has been a community effort for the last decade, growing +from the initial patch to apps in production and an active group of developers. +Try out the new preview releases of the Swift 6.3 SDK for Android and help us +make it even better! From a05c996b9b5796ce2cf06b7a76a4065915a1a752 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 04:21:02 +0530 Subject: [PATCH 13/38] Formatting tweak for code --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 477dfa925..3bd24da59 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -125,7 +125,8 @@ struct ExecutableDemo { #endif } } -``` (editor: should we slim this down?) +``` +(editor: should we slim this down?) Try this new feature out on Android and let us know how it is working for you. ## Learn from the community From fb0c359c3fdfbc3b6717a9cbcfec5cca4d908869 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 04:33:55 +0530 Subject: [PATCH 14/38] Gah, missed these tweaks --- ...25-12-18-exploring-the-swift-sdk-for-android.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 3bd24da59..b75ab8175 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -52,7 +52,7 @@ and continue to this day. [The Android project board lists areas the workgroup d such as easy debugging, now a high priority for us. While it [may work for small examples](https://github.com/swiftlang/llvm-project/issues/10831), we need to expand and test it more and make it easy to configure and access. That will likely mean tying the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), -into Integrated Development Environments (IDEs) like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/), +into Integrated Development Environments (IDEs) like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/) and Android Studio, another issue on our board. [An Android workflow](https://github.com/swiftlang/github-workflows/pull/172) was @@ -64,7 +64,7 @@ too. We are actively looking to onboard more contributors and have set up [a video call this weekend to discuss](https://forums.swift.org/t/swift-on-android-new-contributors-call/83729). We hope to make these contributor calls a recurring event moving forward, as more people -pitch in to improving on these Swift tools themselves. +pitch in to improve these Swift tools themselves. ## Sharing Logic Versus Sharing UI @@ -83,7 +83,7 @@ SDK for Android. ## Android API versioning Until recently, Swift on Android did not support targeting multiple Android API levels -in the same app, but the recent preview releases now bring the familiar `@available` +in the same app, but recent preview releases bring the familiar `@available` attribute and `#available` runtime check that you know from Apple platforms to Android: ```swift @@ -134,8 +134,9 @@ Try this new feature out on Android and let us know how it is working for you. Those using Swift on Android for many years have been sharing their experiences, as path-breakers like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) and [Flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) -have written about their work for the last decade. The Left Bit's Pierluigi Cifani -[wrote about their experiences recently](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), +have written about their work for the last decade. + +The Left Bit's Pierluigi Cifani [wrote about their experiences recently](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), gave [a great talk at NSSpain 2025 a couple months ago](https://youtu.be/EIGl6GOo210), and was [interviewed by Swift Toolkit last month](https://www.swifttoolkit.dev/posts/dc-pier). @@ -147,8 +148,7 @@ to Java instead. (editor: not sure we will get this in, but might be a good exam Finally, we are happy to announce that [an official Swift 6.3 SDK CI](https://ci.swift.org/job/oss-swift-6.3-package-swift-sdk-for-android/) has been set up, and it is producing [nightly preview releases of the Swift 6.3 SDK for Android](/install/macos/#swift-sdk-buindles-dev). -Please follow the [Getting Started guide](/documentation/articles/swift-sdk-for-android-getting-sta -rted.html) +Please follow the [Getting Started guide](/documentation/articles/swift-sdk-for-android-getting-started.html) to install and use it. (editor: I will update that guide by 3 AM Thursday PST with 6.3 SDK info) Swift on Android has been a community effort for the last decade, growing From 1cea877c242d8de8ec37d38867e73c9f324df13a Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 17:14:18 +0530 Subject: [PATCH 15/38] Cut down code sample and some more tweaks --- ...-18-exploring-the-swift-sdk-for-android.md | 45 +++++++------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index b75ab8175..e12d2fcf4 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -7,10 +7,10 @@ author: android-workgroup category: "Developer Tools" --- -Since the announcement of [the preview Swift SDK for Android a couple months ago](/blog/nightly-swift-sdk-for-android/), +Since the announcement of [the preview Swift SDK for Android](/blog/nightly-swift-sdk-for-android/), the Android workgroup has seen a lot of questions about how it works and what's next. Please read on for some answers to common questions about the technology and its -future. +future, and try out the new Swift 6.3 SDK nightly previews. ## How Swift works on Android @@ -29,10 +29,10 @@ Swift from Java or go the other way using the Java Native Interface (JNI), which allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): -you can now watch its author Mads Odgaard's [Server Side Swift Conference talk from a couple months ago](https://www.youtube.com/watch?v=tOH6V1IvTAc) -and try out [his new weather example app in the Android examples repository]( +you can watch its author Mads Odgaard's [Server Side Swift Conference talk from a couple months ago](https://www.youtube.com/watch?v=tOH6V1IvTAc) +and try out [the new weather example app he submitted in the Android examples repository]( https://github.com/swiftlang/swift-android-examples/pull/25). (editor: linking his pull -for now, we'll swap in the link to the final directory once that example is merged later tonight PST) +for now, we'll swap in the link to the final directory once that example is merged by morning PST) ## Swift on Android in production @@ -61,7 +61,7 @@ try building your Swift packages with the Swift SDK for Android, and work is und [run your tests in an Android emulator](https://github.com/swiftlang/github-workflows/pull/215) too. -We are actively looking to onboard more contributors and have set up [a video call this +We are looking to onboard more contributors and have set up [a video call this weekend to discuss](https://forums.swift.org/t/swift-on-android-new-contributors-call/83729). We hope to make these contributor calls a recurring event moving forward, as more people pitch in to improve these Swift tools themselves. @@ -76,9 +76,8 @@ curate a list of cross-platform UI tools from the community. See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) that lists a handful of popular and in-progress options a preliminary search found, but -which we have not yet validated regarding what their authors claim. We will work with -those devs in the coming months to add more info on using their GUI tools with the Swift -SDK for Android. +which we have not yet validated regarding what their authors claim. We plan to add +more info on using compatible GUI tools with the Swift SDK for Android in the coming months. ## Android API versioning @@ -99,44 +98,30 @@ func backtrace() { } } -@available(Android 35, *) -func hello35() { - print("Hello from API 35") -} - -@available(Android 27, *) -func hello27() { - print("Hello, world!") -} - @main struct ExecutableDemo { - static func main() { #if os(Android) - hello27() + print("Hello from Android API 28 or later") if #available(Android 33, *) { + // The following code is only run on Android 33+ devices. backtrace() print("Hello from Android API 33+") - if #available(Android 35, *) { - hello35() - } } #endif } } ``` -(editor: should we slim this down?) -Try this new feature out on Android and let us know how it is working for you. +Try this new feature on Android and let us know how it works for you. ## Learn from the community Those using Swift on Android for many years have been sharing their experiences, -as path-breakers like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) +as founding contributors like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) and [Flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) have written about their work for the last decade. -The Left Bit's Pierluigi Cifani [wrote about their experiences recently](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), +The Left Bit's Pierluigi Cifani [recently wrote about their experiences](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), gave [a great talk at NSSpain 2025 a couple months ago](https://youtu.be/EIGl6GOo210), and was [interviewed by Swift Toolkit last month](https://www.swifttoolkit.dev/posts/dc-pier). @@ -149,9 +134,9 @@ to Java instead. (editor: not sure we will get this in, but might be a good exam Finally, we are happy to announce that [an official Swift 6.3 SDK CI](https://ci.swift.org/job/oss-swift-6.3-package-swift-sdk-for-android/) has been set up, and it is producing [nightly preview releases of the Swift 6.3 SDK for Android](/install/macos/#swift-sdk-buindles-dev). Please follow the [Getting Started guide](/documentation/articles/swift-sdk-for-android-getting-started.html) -to install and use it. (editor: I will update that guide by 3 AM Thursday PST with 6.3 SDK info) +to install and use it. (editor: I will update that guide by 7 AM Thursday PST with 6.3 SDK info) Swift on Android has been a community effort for the last decade, growing -from the initial patch to apps in production and an active group of developers. +from that initial patch to apps in production and an active group of developers. Try out the new preview releases of the Swift 6.3 SDK for Android and help us make it even better! From 696190cb41a90d870bee9789177f18b2570df907 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 17:45:35 +0530 Subject: [PATCH 16/38] Fix flowkey capitalization --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index e12d2fcf4..b646886a6 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -118,7 +118,7 @@ Try this new feature on Android and let us know how it works for you. Those using Swift on Android for many years have been sharing their experiences, as founding contributors like [Readdle](https://readdle.com/blog/swift-for-android-our-experience-and-tools) -and [Flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) +and [flowkey](https://medium.com/@ephemer/why-we-put-an-app-in-the-android-play-store-using-swift-96ac87c88dfc) have written about their work for the last decade. The Left Bit's Pierluigi Cifani [recently wrote about their experiences](https://forums.swift.org/t/thoughts-on-swift-for-android/80961), From 888b666ec2e105ad76e85578949a5e4539a74024 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 20:18:17 +0530 Subject: [PATCH 17/38] Update to final example app links and doc pull info --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index b646886a6..40bb35b1e 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -31,8 +31,7 @@ allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): you can watch its author Mads Odgaard's [Server Side Swift Conference talk from a couple months ago](https://www.youtube.com/watch?v=tOH6V1IvTAc) and try out [the new weather example app he submitted in the Android examples repository]( -https://github.com/swiftlang/swift-android-examples/pull/25). (editor: linking his pull -for now, we'll swap in the link to the final directory once that example is merged by morning PST) +https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app). (editor: link not live yet) ## Swift on Android in production @@ -125,16 +124,16 @@ The Left Bit's Pierluigi Cifani [recently wrote about their experiences](https:/ gave [a great talk at NSSpain 2025 a couple months ago](https://youtu.be/EIGl6GOo210), and was [interviewed by Swift Toolkit last month](https://www.swifttoolkit.dev/posts/dc-pier). -A [community member recently contributed an example app](https://github.com/swiftlang/swift-android-examples/pull/24) +A [community member recently contributed an example app](https://github.com/swiftlang/swift-android-examples/tree/main/hello-cpp-swift) that builds C++ using CMake and links it with Swift, using Swift's automated JNI bridging -to Java instead. (editor: not sure we will get this in, but might be a good example to highlight for some) +to Java instead. ## Swift 6.3 SDK nightly previews Finally, we are happy to announce that [an official Swift 6.3 SDK CI](https://ci.swift.org/job/oss-swift-6.3-package-swift-sdk-for-android/) has been set up, and it is producing [nightly preview releases of the Swift 6.3 SDK for Android](/install/macos/#swift-sdk-buindles-dev). Please follow the [Getting Started guide](/documentation/articles/swift-sdk-for-android-getting-started.html) -to install and use it. (editor: I will update that guide by 7 AM Thursday PST with 6.3 SDK info) +to install and use it. (editor: https://github.com/swiftlang/swift-org-website/pull/1275 will need to be merged alongside this post) Swift on Android has been a community effort for the last decade, growing from that initial patch to apps in production and an active group of developers. From 1c26ee9b40bc0b5208b75f41365ada9e75c4d062 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 20:27:52 +0530 Subject: [PATCH 18/38] Redundant word --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 40bb35b1e..2719b018d 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -30,7 +30,7 @@ allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): you can watch its author Mads Odgaard's [Server Side Swift Conference talk from a couple months ago](https://www.youtube.com/watch?v=tOH6V1IvTAc) -and try out [the new weather example app he submitted in the Android examples repository]( +and try out [the new weather app he submitted in the Android examples repository]( https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app). (editor: link not live yet) ## Swift on Android in production From 503f7a5b9cc3e45e88599c2e27fd582d76326ce5 Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Thu, 18 Dec 2025 22:27:57 +0530 Subject: [PATCH 19/38] Remove last editor's notes, all links now live --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 2719b018d..395250220 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -31,7 +31,7 @@ allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): you can watch its author Mads Odgaard's [Server Side Swift Conference talk from a couple months ago](https://www.youtube.com/watch?v=tOH6V1IvTAc) and try out [the new weather app he submitted in the Android examples repository]( -https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app). (editor: link not live yet) +https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app). ## Swift on Android in production @@ -133,7 +133,7 @@ to Java instead. Finally, we are happy to announce that [an official Swift 6.3 SDK CI](https://ci.swift.org/job/oss-swift-6.3-package-swift-sdk-for-android/) has been set up, and it is producing [nightly preview releases of the Swift 6.3 SDK for Android](/install/macos/#swift-sdk-buindles-dev). Please follow the [Getting Started guide](/documentation/articles/swift-sdk-for-android-getting-started.html) -to install and use it. (editor: https://github.com/swiftlang/swift-org-website/pull/1275 will need to be merged alongside this post) +to install and use it. Swift on Android has been a community effort for the last decade, growing from that initial patch to apps in production and an active group of developers. From efaded05805e2e9febfe105b3de5a8b0c56c8da2 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:43:11 -0500 Subject: [PATCH 20/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 395250220..06d16d125 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -75,7 +75,7 @@ curate a list of cross-platform UI tools from the community. See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) that lists a handful of popular and in-progress options a preliminary search found, but -which we have not yet validated regarding what their authors claim. We plan to add +While the workgroup has not validated the claims on individual projects, we plan to add more info on using compatible GUI tools with the Swift SDK for Android in the coming months. ## Android API versioning From 099fb80cfc9d43574c55c69935093f96ff2cc790 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:43:24 -0500 Subject: [PATCH 21/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 06d16d125..6519d6779 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -74,7 +74,7 @@ the Android workgroup has no plans to create such a GUI toolkit, but will instea curate a list of cross-platform UI tools from the community. See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) -that lists a handful of popular and in-progress options a preliminary search found, but +lists a handful of popular and in-progress options. While the workgroup has not validated the claims on individual projects, we plan to add more info on using compatible GUI tools with the Swift SDK for Android in the coming months. From 5884b5ddd57eaea62578ce9a3eadd01cc60be680 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:43:38 -0500 Subject: [PATCH 22/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 6519d6779..15a4f563f 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -73,7 +73,7 @@ As we write in [our draft vision document](https://github.com/swiftlang/swift-ev the Android workgroup has no plans to create such a GUI toolkit, but will instead curate a list of cross-platform UI tools from the community. -See [our recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) +Our [recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) lists a handful of popular and in-progress options. While the workgroup has not validated the claims on individual projects, we plan to add more info on using compatible GUI tools with the Swift SDK for Android in the coming months. From 73430deab4655b9981e2c1470bfcc79fbf438702 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:43:57 -0500 Subject: [PATCH 23/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 15a4f563f..0e3d898d5 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -71,7 +71,7 @@ Swift allows you to target many platforms with the same business logic, and Swif on Android expands that much more, but we do not provide a cross-platform GUI toolkit. As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), the Android workgroup has no plans to create such a GUI toolkit, but will instead -curate a list of cross-platform UI tools from the community. +The workgroup is not providing a single GUI solution, however a number of nascent community projects have approached the challenge in different ways. Our [recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) lists a handful of popular and in-progress options. From 0ca57b76cddabf39cd14ec4fe83251944c6bb4c6 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:44:15 -0500 Subject: [PATCH 24/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 0e3d898d5..4d9b2a3d1 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -70,7 +70,7 @@ pitch in to improve these Swift tools themselves. Swift allows you to target many platforms with the same business logic, and Swift on Android expands that much more, but we do not provide a cross-platform GUI toolkit. As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), -the Android workgroup has no plans to create such a GUI toolkit, but will instead + a prominent use case we’re focused on is sharing core business logic, algorithms, and data models across applications. The workgroup is not providing a single GUI solution, however a number of nascent community projects have approached the challenge in different ways. Our [recent post in the Swift forums](https://forums.swift.org/t/swift-gui-toolkits-for-android/83337) From dae13d5c1d525a84fe84c7a87e3b85abd605d83d Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:44:39 -0500 Subject: [PATCH 25/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 4d9b2a3d1..5b783df04 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -68,7 +68,7 @@ pitch in to improve these Swift tools themselves. ## Sharing Logic Versus Sharing UI Swift allows you to target many platforms with the same business logic, and Swift -on Android expands that much more, but we do not provide a cross-platform GUI toolkit. +on Android expands that much more. As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), a prominent use case we’re focused on is sharing core business logic, algorithms, and data models across applications. The workgroup is not providing a single GUI solution, however a number of nascent community projects have approached the challenge in different ways. From 9d0c579e540c5f58032dc8b34c6baade2f9927bf Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:45:00 -0500 Subject: [PATCH 26/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 5b783df04..f64dc8d91 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -22,7 +22,7 @@ that implements many of its features, including its standard library and core libraries, like Dispatch and [Foundation](/blog/foundation-preview-now-available/). However, since most Android APIs are only made available through Java and Kotlin, -Swift must call into the Android Runtime (ART). That is where the [Java interoperability +Swift must call into the Android Runtime (ART); that's where the [Java interoperability project's](https://github.com/swiftlang/swift-java) `jextract` and `wrap-java` tools come in. These tools automatically create bindings that enable you to call Swift from Java or go the other way using the Java Native Interface (JNI), which From f26696ca514bbbdf8caad526c449976cc228d8de Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:45:14 -0500 Subject: [PATCH 27/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index f64dc8d91..f7627a55c 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -8,7 +8,7 @@ category: "Developer Tools" --- Since the announcement of [the preview Swift SDK for Android](/blog/nightly-swift-sdk-for-android/), -the Android workgroup has seen a lot of questions about how it works and what's next. +the Android workgroup has seen a lot of interest in how it works and what's next. Please read on for some answers to common questions about the technology and its future, and try out the new Swift 6.3 SDK nightly previews. From dd2919dad403db526cef4e679c8208b01064c634 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:45:29 -0500 Subject: [PATCH 28/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index f7627a55c..1cac12c53 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -65,7 +65,7 @@ weekend to discuss](https://forums.swift.org/t/swift-on-android-new-contributors We hope to make these contributor calls a recurring event moving forward, as more people pitch in to improve these Swift tools themselves. -## Sharing Logic Versus Sharing UI +## Sharing Swift across platforms: logic vs UI Swift allows you to target many platforms with the same business logic, and Swift on Android expands that much more. From c1553f4aa5f0d92288ffef887db48d792f6c3596 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:45:46 -0500 Subject: [PATCH 29/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 1cac12c53..0cbe457e7 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -29,7 +29,7 @@ Swift from Java or go the other way using the Java Native Interface (JNI), which allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): -you can watch its author Mads Odgaard's [Server Side Swift Conference talk from a couple months ago](https://www.youtube.com/watch?v=tOH6V1IvTAc) +you can watch its author Mads Odgaard's [Server-Side Swift Conference talk](https://www.youtube.com/watch?v=tOH6V1IvTAc) and try out [the new weather app he submitted in the Android examples repository]( https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app). From 1382ec959a4208d3863ec5f68f243b1c68e56bb3 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:46:06 -0500 Subject: [PATCH 30/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 0cbe457e7..b5839c3eb 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -30,7 +30,7 @@ allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): you can watch its author Mads Odgaard's [Server-Side Swift Conference talk](https://www.youtube.com/watch?v=tOH6V1IvTAc) -and try out [the new weather app he submitted in the Android examples repository]( +and try out the [example weather app](https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app) he submitted in the Android examples repository]. https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app). ## Swift on Android in production From f8955fe8fcf3ffa0434e6cd1a3df505be4ea0fd2 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:46:33 -0500 Subject: [PATCH 31/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 1 - 1 file changed, 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index b5839c3eb..23d4c5aa4 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -31,7 +31,6 @@ allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): you can watch its author Mads Odgaard's [Server-Side Swift Conference talk](https://www.youtube.com/watch?v=tOH6V1IvTAc) and try out the [example weather app](https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app) he submitted in the Android examples repository]. -https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app). ## Swift on Android in production From eaa0c525e01cfb033ad732ea2aea4c763a9de6ed Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:47:04 -0500 Subject: [PATCH 32/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 23d4c5aa4..d37d54349 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -46,7 +46,7 @@ collectively downloaded millions of times. Here are some notable examples: ## Ongoing work Grassroots community efforts to run Swift on Android [began as soon as the language source was opened in 2015](https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151207/000171.html), -and continue to this day. [The Android project board lists areas the workgroup determines important](https://github.com/orgs/swiftlang/projects/17), +and continue to this day. The [Android project board](https://github.com/orgs/swiftlang/projects/17) lists areas the workgroup determines important, such as easy debugging, now a high priority for us. While it [may work for small examples](https://github.com/swiftlang/llvm-project/issues/10831), we need to expand and test it more and make it easy to configure and access. That will likely mean tying the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), From 04e9e0347701248aa0917dd319253e7bb6e4d9b3 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:47:24 -0500 Subject: [PATCH 33/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index d37d54349..f24e85550 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -49,7 +49,7 @@ Grassroots community efforts to run Swift on Android [began as soon as the langu and continue to this day. The [Android project board](https://github.com/orgs/swiftlang/projects/17) lists areas the workgroup determines important, such as easy debugging, now a high priority for us. While it [may work for small examples](https://github.com/swiftlang/llvm-project/issues/10831), we need to expand and test it more and make it easy to configure and access. That will likely -mean tying the debugger and [Swift Language Server Protocol tool, sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), +mean tying the debugger and Swift Language Server Protocol tool, [sourcekit-lsp](/blog/gsoc-2025-showcase-code-completion/), into Integrated Development Environments (IDEs) like [Visual Studio Code](/blog/gsoc-2025-showcase-swiftly-support-in-vscode/) and Android Studio, another issue on our board. From 93a7c3ac644a47be4095db3e99ec761a093e4d14 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:47:41 -0500 Subject: [PATCH 34/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index f24e85550..9104bdd82 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -60,7 +60,7 @@ try building your Swift packages with the Swift SDK for Android, and work is und too. We are looking to onboard more contributors and have set up [a video call this -weekend to discuss](https://forums.swift.org/t/swift-on-android-new-contributors-call/83729). +weekend](https://forums.swift.org/t/swift-on-android-new-contributors-call/83729) to discuss getting started. We hope to make these contributor calls a recurring event moving forward, as more people pitch in to improve these Swift tools themselves. From 4e2ed3f5d1e5cc0bc4949ad47d3c8a558362e3c3 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:47:55 -0500 Subject: [PATCH 35/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 9104bdd82..b948b45d2 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -59,7 +59,7 @@ try building your Swift packages with the Swift SDK for Android, and work is und [run your tests in an Android emulator](https://github.com/swiftlang/github-workflows/pull/215) too. -We are looking to onboard more contributors and have set up [a video call this +We are looking to onboard more contributors and have set up a [video call this weekend](https://forums.swift.org/t/swift-on-android-new-contributors-call/83729) to discuss getting started. We hope to make these contributor calls a recurring event moving forward, as more people pitch in to improve these Swift tools themselves. From bf7b2e808429c6c4e154eeb9d5b317fdb3ce4a9f Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:48:13 -0500 Subject: [PATCH 36/38] Update _posts/2025-12-18-exploring-the-swift-sdk-for-android.md Co-authored-by: Dave Lester <18080+davelester@users.noreply.github.com> --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index b948b45d2..5767fc3be 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -68,7 +68,7 @@ pitch in to improve these Swift tools themselves. Swift allows you to target many platforms with the same business logic, and Swift on Android expands that much more. -As we write in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), +As we shared in [our draft vision document](https://github.com/swiftlang/swift-evolution/blob/807b844be42db582e434d1667fc907ae7a7a8775/visions/android.md), a prominent use case we’re focused on is sharing core business logic, algorithms, and data models across applications. The workgroup is not providing a single GUI solution, however a number of nascent community projects have approached the challenge in different ways. From c6dd69f16b25bb054aead0c9a6d46b918a272575 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 17:52:37 -0500 Subject: [PATCH 37/38] Remove stray bracket --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 5767fc3be..929dbd16d 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -30,7 +30,7 @@ allows Swift to seamlessly integrate with the Android platform. The [`jextract` tool gained a JNI mode this summer](/blog/gsoc-2025-showcase-swift-java/): you can watch its author Mads Odgaard's [Server-Side Swift Conference talk](https://www.youtube.com/watch?v=tOH6V1IvTAc) -and try out the [example weather app](https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app) he submitted in the Android examples repository]. +and try out the [example weather app](https://github.com/swiftlang/swift-android-examples/tree/main/swift-java-weather-app) he submitted in the Android examples repository. ## Swift on Android in production From 62fc40b9026ecb92140986123ec48ac51f00652b Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 18 Dec 2025 18:09:58 -0500 Subject: [PATCH 38/38] Update 2025-12-18-exploring-the-swift-sdk-for-android.md --- _posts/2025-12-18-exploring-the-swift-sdk-for-android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md index 929dbd16d..c18e65c08 100644 --- a/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md +++ b/_posts/2025-12-18-exploring-the-swift-sdk-for-android.md @@ -1,6 +1,6 @@ --- layout: new-layouts/post -published: false +published: true date: 2025-12-18 10:00:00 title: "Exploring the Swift SDK for Android" author: android-workgroup