iOS ViewController与Kotlin Composable通信方案(仅共享UI)
KMM + Jetpack Compose 跨平台UI状态更新问题解决
场景说明
基于KMM搭建跨平台方案,核心思路是仅用Jetpack Compose实现共享UI层,不共享Kotlin ViewModel,Android和iOS分别使用各自的原生ViewModel开发倒计时应用。
遇到的问题
- Android端:ViewModel状态变更后,Composable UI可以正常响应更新
- iOS端:ViewModel状态更新时,Composable UI无法同步刷新;尝试用
.id()方法强制重组UI,但会导致性能急剧下降,无法正常使用
解决方案
引入KMP-ComposeUIViewController库,通过状态同步机制,让iOS原生ViewModel的状态变更能够正确驱动Composable UI的重组更新,既解决了UI不刷新的问题,也避免了.id()带来的性能损耗。
内容的提问来源于stack exchange,提问作者4gus71n
相关产品推荐
相关产品推荐

