# Swift for Android vs Kotlin Multi-platform

**URL:** <https://forums.swift.org/t/swift-for-android-vs-kotlin-multi-platform/83220>\
**Category:** Android\
**Created:** [November 14, 2025, 2:40pm UTC](https://forums.swift.org/t/swift-for-android-vs-kotlin-multi-platform/83220 "2025-11-14T14:40:15Z")\
**Posts on this page:** 2\
**Page:** 2

<div class="post-metadata">

**Author:** ![tera](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/tera/32/38201_2.png) [@tera](https://forums.swift.org/u/tera)\
**Post date:** [December 9, 2025, 9:51pm UTC](https://forums.swift.org/t/swift-for-android-vs-kotlin-multi-platform/83220/21 "2025-12-09T21:51:38Z")

</div>

> [@marcprux](#):
>
> where the entire app is written in Swift, and so the _entire_ codebase is shared between the iOS and Android platforms. That way it doesn't matter if the app is model-heavy or UI-heavy: it is all just Swift code using the platform's native interface components.

Seen that approach with Xamarin.

Native API's are different, so the code is different, hence the amount of shared code is limited, so it's not super important that the language is the same... There are probably other spanners in the works, e.g. arrays and dictionaries being value types in Swift and reference types in Android.

---

<div class="post-metadata">

**Author:** ![marcprux](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/marcprux/32/12098_2.png) [@marcprux](https://forums.swift.org/u/marcprux)\
**Post date:** [December 9, 2025, 11:01pm UTC](https://forums.swift.org/t/swift-for-android-vs-kotlin-multi-platform/83220/22 "2025-12-09T23:01:25Z")

</div>

> [@tera](#):
>
> Native API's are different, so the code is different, hence the amount of shared code is limited, so it's not super important that the language is the same

I guess it depends on your app. Foundation, Observation, Dispatch, etc. are included out of the box and work (~90%) equally well on both iOS and Android. Skip provides a SwiftUI compatibility layer which renders to native Android components (via Jetpack Compose). There's a large class of apps (e.g., line of business applications) that Foundation+SwiftUI alone is sufficient to handle.

For the rest, Skip provides an ecosystem of [compatibility frameworks](https://skip.tools/docs/modules/) that covers many common additional needs (A/V, bluetooth, keychain, SQLite, WebView, Firebase, etc.), and enables the developer to implement their own in a fairly straightforward and modular way. Yes, that does require understanding and coalescing disparate Kotlin/Java/Swift/ObjC APIs under a single unified API to present to application developers, but is can be surprisingly simple once you get the hang of it (e.g., see the single-file implementation of the [Keychain](https://github.com/skiptools/skip-keychain/blob/main/Sources/SkipKeychain/SkipKeychain.swift) API).

[Previous page](https://forums.swift.org/t/swift-for-android-vs-kotlin-multi-platform/83220.md?page=1)
