Skip 1.0
SKIP.tools (via Abe White, Hacker News):
Skip brings Swift app development to Android. Share Swift business logic, or write entire cross-platform apps in SwiftUI.
Skip is the only tool that enables you to develop genuinely native apps for both major mobile platforms with a single codebase. Under the hood, it uses the vendor-recommended technologies on each OS: Swift and SwiftUI on iOS, Kotlin and Compose on Android.
It doesn’t embed a separate engine or runtime into your app, but instead lets you use pure Swift and SwiftUI to create the iOS side of the app (as per Apple’s recommended best practices for creating iOS apps), and transpiles it into a pure Kotlin and Jetpack Compose app for the Android side (which is Google’s recommendation for building Android apps). So your application will use platform-native controls and will automatically have all the affordances provided by the platform vendor: animations, accessibility, and future-proof evolution alongside OS updates.
Previously:
Update (2024-09-13): Craig Hockenberry:
I love what the folks at skip.tools are doing.
But the deal killer for us, and I suspect many others, is the inevitability of UIKit in your SwiftUI app. No matter how hard you try, you’ll eventually have a UIViewControllerRepresentable implementation and that’s all code that’s going to need a separate Kotlin/Compose code.
Worse, these views tend to be a core part of the performance/experience in the app. Like Tapestry’s timeline.
And when you try to implement UIKit as a cross-platform toolkit, you quickly realize that it’s a Sisyphean task.
Previously:
- Bringing iOS Apps to macOS Using Marzipanify
- Microsoft WinObjC
- MAIKit: Framework for Sharing Code Between iOS and OS X
Update (2024-09-25): Helge Heß:
To be honest, I’ve long held the opinion that the @skiptools approach would work really well for doing a Web SwiftUI. I.e. having a Swift to JavaScript transpiler. This is on my long to do list, might be somewhat viable w/ SwiftAST / SwiftSyntax 🙂