Swift 6.3 Now Officially Runs on Android. I Tried It. Here's What Actually Works.

NativeFirst Team 9 min read
The Swift programming language logo displayed on an Android smartphone — representing Apple's official Swift SDK for Android

There’s a scene in The Godfather Part II where Michael Corleone shows up uninvited in Havana — enemy territory — sits down at the table, and starts doing business like he built the place. Nobody expected it. Nobody was ready for it. And by the time everyone processed what just happened, the deal was already done.

That’s basically what Apple just did with Swift 6.3.

They shipped an official, Apple-backed Android SDK for Swift. Not a community fork. Not some side project from a developer who got bored on a Saturday. An actual, production-grade toolkit that lets you compile Swift code into an Android application. Published on swift.org, with documentation, with Kotlin/Java interop, with Apple’s name on it.

I had to read the announcement twice. Then I closed my laptop, made a coffee, came back, and read it again.


Wait, This Is Real?

Let’s rewind. Swift has technically been able to compile for Android since around 2020, thanks to heroic work by community members. But “able to compile” and “something you’d ship” are separated by roughly the same distance as “I can cook” and “I should open a restaurant.”

The community ports were impressive. They were also fragile, poorly documented, and required a master’s degree in cross-compilation toolchains to set up. Most iOS developers looked at them, said “that’s cool,” and went back to their Xcode bubble.

Swift 6.3 changes the equation. Here’s what Apple actually shipped:

Swift Java and Swift Java JNI Core. These are the interop libraries that let Swift talk to existing Kotlin and Java code. Not through some brittle bridge layer. Through actual JNI (Java Native Interface) integration that Apple designed and maintains. You can call Java APIs from Swift, pass objects between runtimes, and access the full Android SDK.

Official cross-platform build tooling. The Swift SDK for Android integrates with the existing Swift build system. You run swift build and target Android. That’s it. No separate toolchain. No CMake nightmares. No blood sacrifices to the build god.

WebAssembly updates. Alongside Android support, Swift 6.3 expanded its WebAssembly capabilities. Apple is making it clear: Swift is no longer an Apple-only language.


I Took It for a Spin. Here’s What Happened.

I pulled a small networking module from one of our Swift projects — basic HTTP client stuff, JSON parsing, some data models — and tried to compile it for Android.

What worked immediately:

The core Swift standard library stuff compiled without changes. Structs, enums, protocols, generics, async/await — all of it. If your code is pure Swift with no UIKit or SwiftUI imports, it has a surprisingly good chance of compiling for Android on the first try.

The Codable pipeline worked. JSON encoding/decoding with JSONEncoder and JSONDecoder ran exactly as you’d expect. Our API response models didn’t need a single line changed.

Swift concurrency — async/await, Task, structured concurrency — all functional. The concurrency runtime works cross-platform, which makes sense given the amount of work Apple put into it over the last three years. If you’ve been keeping up with our SwiftUI courses, you know we push structured concurrency hard. Turns out that investment pays dividends beyond iOS.

What required work:

Anything touching Foundation had mixed results. Some Foundation types are fully cross-platform (thanks to swift-corelibs-foundation). Others assume Darwin. URLSession works for basic requests, but the moment you need certificate pinning or background sessions, you’re back in platform-specific territory.

File system access needs abstraction. Android’s sandboxed storage model is nothing like iOS’s. You can’t just FileManager.default your way through an Android app. We had to write a thin platform adapter — about 40 lines of code — to handle file paths correctly on both platforms.

What didn’t work at all:

Anything UI. SwiftUI does not compile for Android. UIKit does not compile for Android. This is a business-logic and shared-module story, not a “build your whole app in SwiftUI and deploy everywhere” story. If anyone tells you otherwise, they’re selling something. Probably a course.


The Real Question: Should You Actually Care?

Here’s where my inner skeptic fought my inner optimist for about three hours.

The skeptic’s case: Kotlin Multiplatform (KMP) already exists, has massive adoption, plays beautifully with the entire Android ecosystem, and doesn’t require you to explain to your Android team why they now need to learn Swift. React Native and Flutter have years of cross-platform maturity. Swift on Android is late to a party that’s already serving dessert.

The optimist’s case: If you’re an iOS-first team with a mountain of Swift code, you now have an officially supported path to share business logic with Android without rewriting it in Kotlin or wrapping it in a C++ layer. No third-party framework. No framework lock-in. Just Swift, compiled for a different target.

Here’s the honest answer: it depends on who you are.

If you’re a solo iOS developer or a small team that ships primarily on Apple platforms — this is interesting but not urgent. File it under “keep an eye on it.” Your time is better spent learning Swift concurrency patterns and preparing for WWDC 2026 than spinning up an Android dev environment.

If you’re at a company with a big Swift codebase and an Android app that duplicates half the business logic in Kotlin — this could save you real money. Sharing networking layers, data models, validation logic, and analytics code between platforms is exactly the use case Apple is targeting. And because it’s Apple maintaining the SDK, you get the one thing community ports never provided: a guarantee that it won’t break with the next Xcode release.


How This Changes the Cross-Platform Conversation

For the last decade, “cross-platform mobile development” meant one of three things:

  1. Write once, run everywhere (React Native, Flutter) — ship the same UI code to both platforms
  2. Shared logic, native UI (Kotlin Multiplatform) — share business logic, build native UIs
  3. Surrender (hybrid web apps) — wrap a website in a WebView and call it an app

Swift on Android slots firmly into category 2. Apple isn’t trying to replace Jetpack Compose with SwiftUI. They’re saying: “Your networking code, your data models, your algorithms — those don’t need to be written twice.”

It’s the same pitch KMP makes, but from the other direction. KMP says “write your shared code in Kotlin.” Swift SDK says “write your shared code in Swift.” The question is which language your team already knows and which codebase you want to be the source of truth.

For teams that started on iOS — which, let’s be honest, is most indie developers and a lot of startups — Swift is the obvious choice. You don’t have to learn a new language. You don’t have to adopt a new build system. You take the Swift code you already wrote and compile it for Android.

That’s a much easier sell than “learn Kotlin and rewrite your models.”


What to Actually Do Right Now

If this has you curious, here’s the practical path:

Step 1: Audit your Swift code for platform dependencies. Go through your networking layer, data models, and business logic. Flag anything that imports UIKit, SwiftUI, or Apple-specific frameworks. Everything else is a candidate for cross-platform sharing.

Step 2: Try compiling a small module. Pick your simplest, most pure-Swift module and try building it for Android using the SDK. The swift.org documentation walks you through setup. If it compiles, you’re closer than you think.

Step 3: Don’t rush the UI layer. Your Android UI should still be native Kotlin with Jetpack Compose. Don’t try to hack SwiftUI into working on Android. That path leads to madness, late nights, and angry code reviews.

Step 4: Watch WWDC 2026. Apple dropped this SDK between major conferences. If the pattern holds — and WWDC is six weeks away — expect bigger announcements about cross-platform tooling in June. Maybe better Foundation support. Maybe official server-side Swift improvements. Maybe something none of us predicted.


The Bottom Line

Apple just walked into Google’s living room and put its feet on the coffee table. Not to start a fight — to do business.

Swift on Android isn’t going to kill Kotlin. It’s not going to replace Flutter or React Native. What it does is give iOS developers something they’ve never had before: an official, supported way to take their Swift code cross-platform without learning a new language, adopting a third-party framework, or praying that a community port stays maintained.

Is it production-ready for a full app? Not yet. Is it production-ready for shared modules, networking layers, and business logic? Getting there fast.

The most Apple thing about this whole move is the timing. They shipped it quietly, between conferences, with minimal marketing. No keynote slide. No “one more thing.” Just a blog post on swift.org and a GitHub repo.

Classic Michael Corleone energy. Show up, do the deal, leave everyone figuring out what just happened.


Share this post

Share on X LinkedIn

Comments

Leave a comment

0/1000

N

NativeFirst Team

Editorial

The NativeFirst team — engineers and designers building native Apple apps and writing the courses we wish we had when we started.