2025年了,还是要吐槽一下compose(CMP)写桌面,目前体验并不好。

  1. 目前没有pure-native方案,只有jvm,因此起步体积就不小(社区中有老哥自己在搞linux-native的方案,但还在alpha阶段)。
  2. 然后没有成熟的开源webview方案(不是没有,而是不成熟),只有一个闭源付费的jxbrowser(有着高性能的compose渲染支持;还有线程安全的支持;对接口的提供也非常丰富)。
  3. 再有因为底层基于swing,因此一些先进的原生窗口功能就没有,社区也不活跃,非要的话只能自己搞jni。(比如说右键菜单,文件选择器,系统托盘都是swing那套,有兴趣的找个网图就知道有多丑了,而且连一些基本的字体适配也不是很好)

我个人建议:

  1. 如果是轻量的compose应用,那么可以考虑直接走compose-web+electorn的方向,至少底层工具链是现代化的。compose-web虽然也很糟心……
  2. 但我是说“轻量compose应用”,如果你的应用有原生图层混合,或者使用了复杂的kotlin协程,那就不算轻量。这时候还是只能老实走compose-jvm。那么我上头提到的那些问题一个都逃不掉。