Kotlin MutiPlatform
更新: 5/31/2025 字数: 0 字 时长: 0 分钟
最近学习了一下KMP,并且写了一个由Jetpack Compose转换为Kotlin MutiPlatform Compose的小demo,整体对跨平台也是有了一点点切实的想法,这里就来聊一下
跨端真的是一套代码解决所有问题吗?
不太可能,甚至我感觉有点伪命题。
不说别的,单从设计的角度来说,由于不同端的设备不同,你不太可能所有的端都用同一套设计方案去写代码。所以最后呈现的效果其实是公用一套组件,然后你去根据组件在不同的端进行重新布局(H5跨端使用CSS也是来根据屏幕大小重新布局也类似)
也就是说,现在的跨端指的是跨系统,而程序员理想中的跨端(不论可行性)是跨设备(除了系统外还要抹平设备大小等客观因素)
从这种角度来看我们得到的其实是一套可以写多个端的语言(Kotlin/Dart/JS......)和一套成熟的解决方案(KMP/Flutter/ReactNative......)
KMP的选择?
KMP选择将多端彻底的分开,不同的端定义不同的模块,同时公用一个CommonMain模块来书写公用代码与接口,然后由不同设备的模块进行实现和使用,这一方法和我上面提到的思想有点相似。
当然,我个人感觉根据Kotlin的生态和KMP的社区,未来可能会出现99%的代码都在公用模块的情况,但目前还是任重道远。