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.
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 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 API).