Skip brings Swift app development to Android. It is a tool that enables developers to use a single modern programming language (Swift) and first-class development environment (Xcode) to build genuinely native apps for both iOS and Android.
Skip is a tool that transpiles your SwiftUI iOS app into a Kotlin Jetpack Compose app, and enables you to use a single language to create a complete app that reaches the entire mobile marketplace.
What it is: Skip stands in contrast to other cross-platform development tools like Flutter, React Native, and Xamarin, in that it enables the creation of genuinely native applications for both of the dominant mobile platforms. 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.
How it works: you build a Skip app using the same tools that you use to create a standard iOS app: Xcode, Swift, and SwiftUI. Skip augments this workflow with a Swift Package Manager plugin called "skipstone", which transpiles your Swift into Kotlin each time you build your app, and launches the Android app side-by-side with the iOS app each time you run the app. The transpilation works not just on your primary app module, but also transitively processes all your dependent SwiftPM modules, so you can break complex projects down into individually testable sub-modules containing business logic or UI code. In fact, this is how our own adaptor modules for the standard frameworks are structured: SkipFoundation adapts the Foundation framework and SkipUI adapts the SwiftUI framework, so the same familiar API can be used when building the app. And there's a GitHub ecosystem of open-source modules supporting popular frameworks, including SQLite, Firebase, Lottie, and many other common building blocks of modern apps.
Over the past year Skip has evolved into a fully-capable solution for creating best-in-class apps for both iOS and Android. And today we are delighted to announce the release of version 1.0, meaning that it is ready for production use.
We have a wealth of videos and documentation available at https://skip.tools, and I'll be around to field any questions that any of you might have. Thanks in advance for taking a look!
Report
@mwp Congrats on the release of Skip! 🎉 It's impressive to see a tool that keeps native development intact while offering a seamless way to expand apps across iOS and Android without extra runtimes. The automatic SwiftUI to Jetpack Compose transpilation seems like a significant leap forward. How does Skip manage intricate or custom UI elements and complex third-party libraries? I'm curious about how it maintains design consistency and performance across both platforms. This looks like a great step forward for mobile development.
Report
@mwp
Skip's approach to transpiling Swift code for native Android development is an innovative concept. It addresses the challenge of maintaining separate codebases while building native apps for both iOS and Android.
Here are some key points and questions for further exploration:
- How does the transpiled Kotlin code compare to native Android development in terms of performance and efficiency?
- Does Skip support seamless integration with existing native libraries or frameworks for both platforms?
- How does Skip handle debugging and code inspection across different codebases (Swift vs. Kotlin)?
As a developer with experience in mobile development, I'm interested in how Skip works. Here are some potential areas for collaboration:
- Contributing to further optimize the transpilation process for better performance on Android devices.
- Expanding compatibility with additional popular mobile development libraries and frameworks.
- Exploring ways to improve debugging capabilities across the transpiled codebase.
I'd love to learn more about Skip's technical architecture and explore opportunities to contribute to its development.
Additionally, I'm interested in trying out Skip for a project to see how it simplifies cross-platform development while maintaining native app quality.
Ohhh, congrats on the launch! Is this the tool we've all been waiting for? I think it is! native components for both OS's is GREAT! One question though; I can imagine there are components that are specifically built for iOS or Android. How do you handle those differences?
Hey @mwp this looks amazing. I'm a cross platform developer myself. I use a different stack, but I know the pain of developing for iOS, Android and the Web at the same time 😅
How is Skip handling Android specific things like the back button, side-nav, asset generation and so on?
Congrats on the launch 🚀
@crebuh Thanks for the positive words! For Android-specific navigation, the standard SwiftUI navigation gets converted to use the Compose Navigation (https://developer.android.com/de...), which follows standard navigation idioms on Android. You can read more at https://skip.tools/docs/modules/....
For asset generation, we use the SwiftPM Resources/ method to embed images, localization, etc. At transpilation time, these are converted into Java resources, which the Skip runtime libraries will look for when it is time to use this. Then is discussed at https://skip.tools/docs/resource....
Please let us know if you have any more questions, either here, or on our Slack channel (https://skip.tools/slack/) or community discussion forums (https://community.skip.tools).
Report
congrats on your launch 🚀
I’m really impressed by the concept! While frameworks like Flutter and React Native offer cross-platform solutions, as a developer, I’ve never felt they were perfect. Skip’s approach of achieving cross-platform development with native languages feels like a well-balanced and innovative solution.
Report
This is a must try for me.
I have loved the swift language for long time now.
I can wait to see how the experience with Skip brings an Android feel to it.
Congrats on the launch
Report
This is an awesome tool and I've been playing around with it over the past week. I'm putting together a demo app with it to test the platform and I have to say it's really going well. I'm so excited to ship an app with Skip on Android. Upvoted!
Report
Sounds interesting, but I've seen similar claims from Flutter and React Native, isn't this just another cross-platform thing that's gonna perform worse than native dev, might be good for startups but kinda skeptical about its performance and long-term usability without proprietary runtimes, anyone tried it and had a good experience?
@bizgrowthleader The critical difference is that Flutter/RN/Xamarin/etc. all implement their own layout and controls in a least-common-denominator way, using a language (Dart/JS/C#/etc) that is native to neither platform. Skip, on the other hand, is using the languages (Swift+Kotlin) endorsed by the OS (iPhone+Android) vendors (Apple+Google), and using the vendor-recommended toolkits (SwiftUI+Jetpack Compose) to implement the user interface. Skip is less of a "cross-platform" framework, and more like automation to help you create two individually native apps from a single codebase.
I definitely recommend checkout out the tour videos at https://skip.tools/tour/ to see what we mean. Please don't hesitate to reach out to me if I can answer any other questions or clarify Skip's value proposition.
Skip
Hurrayy
Mailfox
Skip
Skip