起因
就是看到别人自己写了个项目模板生成器, 然后问了一下那个人说是compose写的我才恍然大悟,我怎么没想到 compose还有compose multiplatform呢, 然后我就动手开始写一个单页Web程序。
使用
compose multiplatform for web是依靠wasm来实现的, 虽然能在浏览器内渲染出美观的ui,但是本质上并不是一个html+css+js的实现而是靠canvas绘制出的ui,所以这些绘制出的文字并不能被复制。
compose multiplatform for web也是kmp的一部分所以需要引入kotlin multiplatform 的gradle插件,我直接就在jetbrains官方文档中找到了一个空的示例项目, 然后将其作为子模块引入,compose multiplatform能在多个平台共用一套代码是很舒服但是缺点就是体积膨胀很严重, 一个几百行的kt文件编译出的页面大约会膨胀到30mb上下, 其中最大的就是wasm的模块。
使用感受
使用dsl的方式写ui很舒服,并且在完全使用Kotlin来编写,不用切换到其他的IDE进行编码,这点我很喜欢。
缺点
-
使用 compose web就得和kotlin/js kotlin/wasm一起使用, kotlin/js的库不算太多,但是基本是能实现一些简单的功能的。
-
编译的速度实在是太慢了, 重新启动一次都得30秒左右才能启动, 这点我个人感觉十分难受
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiaoman1221@yhdzz.cn,工作室将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有。



求问这个编译出来的wasm能gzip压缩吗?能压到多少?
哈哈,又一个掉进KMP坑的,欢迎入伙!
感觉还行,就是不知道实际用起来会不会卡。
wasm体积这么大,做移动端网页加载估计够呛,流量和速度都是问题🤔
我之前也想过用Kotlin写前端,就是怕生态跟不上,看来还得观望下。
那如果是做仪表盘这种内部应用呢?对加载速度要求没那么高应该能用吧?
老用户表示,KMP配置折腾一次后面就舒服了,新手建议直接找个现成模板。
编译慢是真的,每次改点东西都得等半天,开发体验打折扣了。
蹲一个后续,如果优化了体积和编译速度求踢!
感觉用来做内部工具或者对体验要求高的后台还行。
30MB…这加载得等半天吧,用户怕不是直接关了。
老哥能分享一下那个空项目的链接吗?找起来有点费劲。
这文字不能复制?那实用性打折扣了啊,只能自己看。
之前也想试试,看到要搞KMP配置就头大,放弃了。
用kotlin写前端不用切IDE这点确实爽,就是生态还是弱了点。
wasm体积这么大吗?那做移动端web是不是不太合适?
编译要30秒确实有点劝退,我连10秒都等不了。
第一次听说compose还能这么玩,有点意思啊。