Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MacRumors

macrumors bot
Original poster
Apr 12, 2001
68,289
39,098


Apple's Swift programming language is now being officially extended to support Android app development through the establishment of a dedicated Android Working Group within the Swift open-source project.

2025-Swift-Student-Challenge.jpeg

Originally introduced by Apple in 2014 as a modern programming language for iOS, macOS, watchOS, and tvOS, Swift has since expanded to include official support for Linux and Windows. The Swift project this week announced a formal effort to support Android as a target platform, enabling developers to use Swift to build applications for Google's mobile operating system using official tooling and infrastructure.

According to the Swift forums, the Android Working Group's charter outlines a clear set of responsibilities aimed at integrating Android into Swift's officially supported platform ecosystem. These include ensuring Swift can be compiled and run on Android without relying on unofficial forks or downstream modifications, enhancing Swift's standard libraries for better compatibility with Android APIs, and introducing native tools and workflows for developers targeting Android using Swift.

Historically, developing Android applications using Swift has been possible only through third-party solutions such as the Scade framework or via custom toolchains created by individual developers. These approaches often required a significant amount of custom configuration, lacked full support for Android APIs, and introduced maintenance burdens due to compatibility issues with new Swift releases.

One of the primary initial goals is to improve support for Android in the official Swift distribution, removing the need for out-of-tree patches or community-maintained forks, including establishing proper toolchain integration for Android targets and obtaining consistency with other officially supported platforms. The working group also plans to recommend enhancements to core Swift libraries, such as Foundation and Dispatch, so they better align with Android platform conventions and behaviors.

Android app development is currently dominated by Kotlin, which was announced as Google's preferred language for Android in 2017.

Article Link: Apple's Swift Working to Support Android App Development
 
  • Love
  • Like
Reactions: blob.DK and EdRed
For those who live in these environments, what’s in it for Apple?

Is there a goal to make apps more platform independent like Java?
I really am asking because this isn’t an area I know much about.
 
  • Like
Reactions: JustSomebody12
Does this include the UI components too? Write once, run on both without differentiating Android and iOS UI components? That would be nice, but probably not the case.
Our company uses currently .NET MAUI for cross platform iOS/Android - it's ok, but lots of UI limitations and you still have often to write platform dependent wrapper for certain native controls or operations.
 
  • Like
Reactions: Yonizzle
For those who live in these environments, what’s in it for Apple?

Is there a goal to make apps more platform independent like Java?
I really am asking because this isn’t an area I know much about.

Using a single codebase to build apps for both platforms (cross-platform development) is getting more and more popular because it can significantly reduce development costs (which are getting high AF these days). Google offers its own technologies, such as Flutter and Kotlin Multiplatform, but they are not ideal - using them likely results in better apps for Android than for iOS. I believe Apple simply wants to maintain its own tools to encourage developers to use solutions that ensure higher-quality software for the iOS platform, since developers choose one technology to build for both platforms anyway.
 
For those who live in these environments, what’s in it for Apple?

Is there a goal to make apps more platform independent like Java?
I really am asking because this isn’t an area I know much about.
A development platform called Xamarin emerged about 15 years ago which eventually grew interesting enough for Microsoft to purchase it. It's now been renamed MAUI (Multi-platform App UI) and allows developers to target iPhone, Android, Windows and Mac users interfaces with a single code-base. By and large I've followed it all the way and it's very good to excellent, in places. There's a school of thought that says if you own the development toolchain you own the developers. Not so sure about that, but I think Microsoft believes this. They must do: they've invested hugely in Visual Studio which provides the MAUI workflow, and it's available for free (in a community version) so they REALLY do want those devs.

I guess Apple feels the same way. Offer an alternative to developers targeting both major mobile platforms by bringing their previously Apple-only toolchain to other platforms. I think it's a smart move.
 
This is about sharing model code, not UI code. They’re bringing the open source Swift language to Android, not the proprietary SwiftUI API.

Apple’s thinking here is probably, cross-platform apps are a fact of life and by and large the coding of those cross platform apps sucks - they’re energy hogs and they shared UI is ugly. They detract from the Apple ecosystem. So if Apple can get some of those cross platform apps to share a common efficient code base for their models and then use platform specific UI frameworks on top, that’s a net win for the Apple ecosystem.
 
Does this include the UI components too? Write once, run on both without differentiating Android and iOS UI components? That would be nice, but probably not the case.
Our company uses currently .NET MAUI for cross platform iOS/Android - it's ok, but lots of UI limitations and you still have often to write platform dependent wrapper for certain native controls or operations.
something I expect happens a lot. the promise of Multiplatform just creates more work in the long run
 
Apple has their own Android apps to maintain (Music, TV, Migrate). They could dogfood this, and perhaps Apple sees the App Store filling up with often clunky non-native apps already. They’d be smart to come up with a better approach to meet the need.

I’ve been learning flutter for my work. It’s kind of fun, but also unusual in that the flutter framework renders its own “pixel perfect” replicas of the host OS UI (I can switch my app to Android UI on iOS and vice versa for testing).
 
For those who live in these environments, what’s in it for Apple?

Is there a goal to make apps more platform independent like Java?
I really am asking because this isn’t an area I know much about.
Control of their own ecosystem.

Right now, if you want to build a multi-platform app, you pick React Native or Kotlin Multiplatform. React is ... to put it nicely, it's junk. It's basically a web wrapper, so you're limited in scope. Kotlin though, is coming along very nicely. And it will mean that developers will develop Android first, with iOS being second class. Apple does not want that. The way to fix that, is to let them easily port iOS apps to Android. Swift on Android will let them do that.

Make no mistake though, this is just step 1. Apple needs to bring SwiftUI to Android in order for iOS to not become a second class citizen, but this is a good first step.

Edit: To expand on your question about Java, Java runs in something called a Java Virtual Machine, or JVM. There's a JVM for each platform, and when you write java code it goes into the magic JVM and that runs your program.

With Swift on Android, the Swift code gets compiled to something that's native for Android (in this case, probably a special Google version of Java that doesn't use a JVM) and can run natively, at native speeds.
 
Last edited:
This is a very good thing. What's happening now is that there are a lot of different code language providers and those are challenging languages that were previously thought to be untouchable. Rust is threatening C and C++ which has really thrown the C++ into gear to make it better. Java has a million alternatives (including Kotlin). When Apple stopped using Objective C, it immediately died because it absolutely was not worth using for anyone else. Apple trying to make Swift work outside of Apple is one way of making sure the language is not accidentally rotting and they're not realizing it because people are forced to use it. If they can get interest from people outside of Apple it proves the language has merit.
 
So, eventually, AI models only have to focus on improving their coding in only one language. That would be my guess.
?? Not sure how you came to this conclusion.

There's more than one programming language than just Swift.

Swift is not very popular outside the apple world, so Swift is pretty small fry.

TIOBE index, Swift is 25th with a mere 0.73% share.
 
I think swift is seen as a competitor for that long term multi use language that can run anywhere. Like c++. I believe it has better memory management but is easier to work with and gives the same speed. It’s also not a managed run time like c# so that means it could probably run as fast as c++ does anywhere you want it too.

So I think Apple want it everywhere if they can. As someone mentioned earlier, objective c coding was 100% tied to Apple OS’s. But the same doesn’t have to be true for swift.
Apple would benefit from having a language that isn’t tied to their OS.
 
Interesting times, I wonder how this plays out.

Do they eventually shim SwiftUI w/android APIs, kind of like how it works with UIKit today? There's really no other reason to do it unless they're going to go all the way, it's easy enough to write cross platform networking code / DTOs.


I remember when Xcode supported Java. I don't mind Kotlin but you can feel the reach of Java through it, where to me Swift just reads cleaner.
 
I wonder why.
I would think this is a response to Flutter (though very late and not likely to be successful unless very well executed). I think Apple is realizing that they will get better compliance with their UI standards on iOS if they offer a cross platform development solution. That has always been part of Flutter's mission - to get people who want a cross platform development solution to also find it easy to use material UI.
 
  • Like
Reactions: Shalev Lazarof
I understand why Apple wants this. And it depends on the scope what exactly will be supported, but with different things for different areas like KMP, CMP, MAUI, Flutter etc. I fail to see what's in it for Android developers.

Apple would have to dogfood this to perfection with a lot of help from multi-platform Apple-first developers in order for this to make sense.

But sure, they got the money, talented people and could have the patience. Or maybe it's really just about the language.

Just. Use. React. Native.
😂 No.
 
Last edited:
  • Like
Reactions: dan110
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.