t6gfx4ddv3
2023-08-01 14:20:43 +08:00
直接 Kotlin + Compose 。
如果类比前端,从 xml 到 Compose 就好像是从 jQuery 升级到了 React 。在推上看到一开始 Compose 就是要做 Android 上的 React ,貌似还是 java 写的。正式出来后感觉比 React 还要声明式,加上 Kotlin 感觉写 React 都不太顺畅了。
Compose 上手后根本不想再回去,万金油 Box, Column, Row 可以直接实现 xml 里绝大部分用 XXXLayout 实现的布局,自定义布局也比 xml 那套流程简单不只一点。动画 API 非常好用,加上 graphicsLayer 这个 Modifier ,几十行就可以实现以前几百行数个 Animator 的 View 动画。LazyColumn 等列表类的 API ,对 ListView 、RecyclerView 这些繁琐的组件更是降维打击。
不足就是目前元素共享动画实现起来很麻烦,几年了也没推出一个好用的 API ;文本选择还不能自定义菜单项;性能比不上 xml ,滚动、动画一些场景下存在明显卡顿,debug 版本的 app 调试一些复杂页面比 ppt 还卡;其他一些小功能还有缺失,比如到现在滚动视图都还要自己画滚动条;还有一些其他小问题,比如函数参数稳定性,社区反响很大,官方却似乎没怎么提过,但是有时候确是优化卡顿的关键。
不过这些缺点应该会得到解决和改善,除非谷歌作大死。而且 Kotlin 跨平台势头正起,JetBrains 也在出力,未来 Compose 能和 Flutter 比一比也说不定。