Replies: 1 comment
-
Thank you for sharing your ideas. You may have seen our recent Skip and Kotlin Multiplatform blog post, where we outline how Skip and KMM can work together in the same app. We are actually quite enthusiastic of the possibility of using Kotlin's cross-platform capabilities alongside Skip, since there are a number of compelling reasons why a team may choose to implement much of their business logic using KMM. We also discuss some of the reasons for why Compose Multiplatform isn't a good fit for iOS apps in particular:
That being said, Compose Multiplatform is, for the most part, the same as Jetpack Compose – on the Android side, at least. An interesting idea could be to target Compose Multiplatform everywhere except Apple platforms (iOS, macOS, tvOS, etc – basically, all the places where SwiftUI will work natively). This would broaden Skip's applicability to non-mobile platforms, and allow you to, say write your Desktop Windows app using Skip. As a matter of fact, since Compose Multiplatform uses the same APIs as Jetpack Compose, it might already work for the most part. The biggest issue would be the dependency we have on Android APIs and build frameworks. For example, many of our SkipFoundation types depend in Android-specific counterpart APIs that have no equivalents in KMP that I am aware of. But it could be possible to come up with those sorts of abstractions that would work across the various Multiplatform targets, such as Android, Windows, and the Web. As we mentioned in the blog post, at this point Skip is squarely focused on making the best possible mobile apps. But if you were interesting in experimenting with expanding Skip's targets beyond just iOS and Android, you could try exporting your Skip project to a stand-alone Gradle project (using |
Beta Was this translation helpful? Give feedback.
-
The Skip tools and Skip UI seem to be one of the best ways to develop apps for Android as a Swift Developer. I like the fact that it extends the scope of SwiftUI to the Android ecosystem while also being truly native to the platform.
As far as Swift is concerned, I see that it can run on Windows and Linux too, but there’s not any SwiftUI-like UI Library for these two platforms yet. And Swift on Web is a completely different story and a long work-in-progress.
If we have a look at the Kotlin side of things, Windows and Linux development with Compose Multiplatform is production ready, and Web development is in alpha and at some point, will be production ready.
Although the goal of SkipUI is to make truly native interfaces for its platforms, am not sure if we can extend this idea to Windows, Linux and Web, since making a C# / Java Script transpiler for Swift doesn't seem to be any good idea, and to top it of, there's not any SwiftUI / Compose like Library available for these languages (maybe React for Javascript but that's it).
Since Skip tools is already transpiles Swift to Kotlin and is having success in using Compose for Android App Development, I wonder if its possible (or feasible) to make Skip tools to target Compose Multiplatform instead of Android Jetpack Compose, so that we can have our SwiftUI App running on iOS, iPadOS, macOS, tvOS, watchOS, visionOS to also run on platforms such as Android, Windows, Linux, Web via Compose Multiplatform.
I believe that doing so will be a game changer in the landscape of cross platform or multi platform app development because we will be able to natively target and access native APIs for all Apple Platforms (Swift), Android (Kotlin), Web (Kotlin/Wasm), while only leaving Windows and Linux to run with Skia graphics engine (non-native).
No other Cross-platform or Multi-platform app development frameworks support these many platforms natively and also the burden to jump across multiple languages and frameworks is completely reduced to Swift & SwiftUI (with little bit of Kotlin & Compose). Skip also has a competitive advantage in this regard as the other development frameworks will never be able to natively support Apple platforms in the best manner, since it means they would need to write a transpiler which transpiles from their language to Swift, which I don't think these established frameworks are willing to do.
I do believe a lot of App developers want to target iOS, macOS and Web first and then the rest of the platforms, and if they don't have the resources to hire a team of developers for each platform, they end up settling with these non-native sub par cross platform frameworks.
Although this idea popped off my imagination, I do believe you guys might have considered this already, but, if this becomes a reality, app developers will be able to give best and native user experiences for most of the platforms, and a functional non-native user experience for Windows and Linux, while having the best developer ergonomics, ease of use, Idiomatic Swift Language with little bit of Kotlin (which also has similar ergonomics).
If this is feasible and is implemented, It would be a win-win-win situation where developers love their development tools and love to code, user love the native user experience and skip.tools will also acquire a much bigger user base.
(My apologies if there was any misunderstanding in the workings of Skip or Compose or SwiftUI)
I would love to hear your thoughts on the subject.
Regards,
Lokesh.T.R
Beta Was this translation helpful? Give feedback.
All reactions