Kotlin Multiplatform Mobile Alpha

Hi everyone!
Have you seen the latest news from the Kotlin team?
Kotlin Multiplatform Mobile (KMM) is now Alpha!
What do you think about this product?

1 Like

Yes!
Very excited to see this!

I’m a serverside developer but I’ve been eyeing mobile. I have some experience toying with Flutter/Dart and for the last year I’ve been on the fence about if I’d use Kotlin (either just android or multiplatform) vs flutter–but this release squarely puts me on the side of experimenting on mobile with Kotlin.

Most of my concerns were related to dependencies, emulator, a good starting point example, and having an existing trail for proven success.

I haven’t read the case studies yet but seeing that KMM isn’t going to be dropped and will continue to have support is great! For example, I found this skimming a use-case:

After the release of Kotlin 1.4, KMM is in Alpha status. It means that you can use it in production and the Kotlin team is fully committed to continue working on this technology, improving and evolving it further, and won’t suddenly drop it.

1 Like

Nice to hear!
Hope, you will enjoy the product and will be inspired by case studies!
I would recommend to start building your first cross-platform application with KMM from this step-by-step guide

1 Like

I’m going to switch my app to this amazing tool, but I found a big problem! switching to this tool, my codebase is full of errors because Synthetic is not found and all imports are broken…
I opened a discussion yesterday herehttps://discuss.kotlinlang.org/t/synthetic-not-available-in-new-kmm-example-project/18997.

PS nice work!! :slight_smile:

Good afternoon,

reviewing the use cases that you mention on the kotlin blog (https://blog.jetbrains.com/kotlin/2020/08/kotlin-multiplatform-mobile-goes-alpha/), and entering each of the following cases of I use, I find the following weights of the apps, both on iOS and Android.-

----------------

Use cases: https://kotlinlang.org/lp/mobile/case-studies/quizlet/

Android 11MB

iOS 111MB

----------------

Use cases: https://kotlinlang.org/lp/mobile/case-studies/fastwork/

Android 35MB

iOS 133MB

----------------

Use cases: https://kotlinlang.org/lp/mobile/case-studies/yandex/

Android 85MB

iOS 209MB

Why is there so much difference in the size of the apps between iOS and Android?

I would like to know the differences to consider migrating the developments or not.

Thank you very much in advance,
Greetings,
Sergio

3 Likes

This probably just depends on the iOS specific dependencies that the developers are using. Stuff like Swift UI for example might be increasing the app’s size

1 Like

But no matter how many dependencies it includes (in this case I don’t think it’s SwiftUI since the minimum version is iOS 11, although there will be others), the difference between iOS and Android is excessive.

It reminds me of the problem in the size of the apps that exists in Flutter …

1 Like

It is really hard to tell why apps are so different in size.

KMM allows developers to share parts of code they want to share not everything or nothing. KMM modules are compiled into jvm bytecode for Android and native code for iOS respectively. They are connected as jar and .framework so there should not be any overhead in terms of size of the app. It is like using a regular library.

You can see the size of bytecodes from the samples on this page.

Overall iOS apps usually demand more storage than Android applications.

1 Like

Ok thanks, I will investigate in more detail … A priori the examples are usually a hello world that does not usually take up much space, the same thing happened to flutter, then you compiled with more code and the app ended up growing in size. The concept of generating framework is a good idea, but we would have to look at internal imports for what makes it generate a larger size …

As a question, what would generate a larger size, with swift or with Objective-C? Or are they similar?

The difference should be the same as between projects based on
ObjC .framework + ObjC and ObjC .framework + Swift

So KMM has no affect on the size

I think here is the answer to your question

@alex.anisimov what would be your advice of “migrating” existing cross-platform projects like Xamarin, etc. to Kotlin Multiplatform Mobile?

E.g. For Xamarin case I see that it should be possible to wrap it in Android / IOS library. But as far as I see it’s in experimental state and looks like development is abandoned for almost 2 years.

I know, that code sharing and cross-platform development is not the same thing - thus wondered if you think it is even could be possible and worth it?