I am starting to learn SwiftUI and it’s so much the same as JetpackCompose, much more than I expected! Just the syntax is different.
At the same time, I also understand why JetpackCompose is not going to follow the same mobile cross-platform road of Flutter, by writing directly into the iOS canvas.
I can see how SwiftUI is awesomely tight to the iOS framework, and how a “foreign” UI could never match that. I am very impressed by how the exact same SwiftUI control renders differently on iPhone, iPad, Mac or iWatch, and that is all managed by the OS framework.
Given how similar the code structure between JetpackCompose and SwiftUI is, I believe transpiling from JetpackCompose to SwiftUI makes much more sense than JetpackCompose writing into iOS canvas. And I believe JetBrains is very much aware of that. Given their experience in this kind of stuff, they could probably create a JetpackCompose->SwiftUI transpiling tool that achieves perfection.
For the same reason, I am really starting to understand the limitations of Flutter. It’s quite clear now that Flutter is just a toy project, which cannot stand the competition of native UIs.
In the future much more than now, the quality of apps will depend on their native UI look and feel. Apps not implementing the native UI will be perceived of lower quality.
I am pretty sure native UI in mobile is going increase its “market share” thanks to these new declarative UIs. In 2 years time we’ll see many more native UI apps than we see now. ReactNative, Xamarin or even Flutter will stand no chance.