4 ms·
From my admittedly limited experience KMM is a complete mess. There doesn't seem to be a reasonable feature set across platforms. Even the standard library has
by YmiYugy 3y ago
From my admittedly limited experience KMM is a complete mess.
There doesn't seem to be a reasonable feature set across platforms.
Even the standard library has massive holes, forcing you to littler your code with expect/actuals everywhere.
This might be manageable for my own code, but completely destroys the ecosystem.
A very large number of important libraries only works the JVM. Jetpack Compose and Compose Multiplatform are also not the same. I typically can't use libs written for Jetpack Compose in Compose Multiplatform.
- blashyrk 3y agoI would argue that the shared feature set is quite reasonable. You get coroutines, you get Ktor, date/time libraries, kotlinx.serialization. You even get metaprogramming via KSP. I basically only write expect/actual implementations to talk to platform APIs, but even those, when abstracted correctly behave just like a normal API to users. You still write the UI layer natively. IMO this is a positive not a negative unless you're working on a product that doesn't care about native UX. And if you REALLY want a shared UI layer, Compose Multiplatform seems to be right around the corner.
- kaba0 3y agoThe JVM’s biggest feature is all the millions of great quality packages it has.
- blashyrk 3y agoI agree, but the subset of those that's relevant to mobile (Android, and with KMM, iOS) development often has KMM-compatible counterparts. The exceptions to that would be libraries that rely on runtime reflection heavily (serialization libraries for example), those are mostly replaced with libraries that work statically and/or code generation via KSP.
- dickersnoodle 3y agoSpoiler alert: We (iOS developers) don't.