2023 年安卓原生开发: 是用 jetpack compose 还是用其他的?

2023-08-01 01:25:13 +08:00
 HaroldFinchNYC

个人不太喜欢 kotlin ,虽然 jetpack compose 是所谓 declarative ,学习曲线平滑

现在如果继续用 Java ,用什么呢?谢谢

5024 次点击
所在节点    程序员
44 条回复
janus77
2023-08-01 10:49:16 +08:00
如果是自用的小软件,可以用 compose ,就是做不出很漂亮的界面来,老版的 UI 写法已经有很多成熟组件库之类的东西了,很多也就是调调 api 就可以做出漂亮的界面,compose 的话,如果你有复杂交互和漂亮界面的需求,连大佬都不一定能研究出最佳实践。
如果是商业项目,目前还是建议老版写法
james2013
2023-08-01 11:38:00 +08:00
我觉得 kotlin 很好用,compose 不好用
superedlimited
2023-08-01 11:41:19 +08:00
2023 年了,新开发安卓,不爱 kotlin 的理由是啥…是喜欢 java 那种又厚又长的裹脚布吗…
xieren58
2023-08-01 12:21:25 +08:00
绝对 jetpack compose , 我用两年多了...
justonelastdance
2023-08-01 13:23:23 +08:00
@xieren58 话说 kotlin 可以开发 ios 吗
john6lq
2023-08-01 13:26:46 +08:00
1. Kotlin 是大势所趋,编写效率及代码整洁度摆在那。
2. Compose 可灵活定制样式,摆脱 drawable 、layout 文件夹,自适应布局、黑暗模式等。
listen6256
2023-08-01 13:44:42 +08:00
compose 在老手机上性能差、卡顿,不如 xml 。
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 比一比也说不定。
Tolcol
2023-08-01 14:40:27 +08:00
@Esen #15 老哥转行了吗
haaro
2023-08-01 15:34:42 +08:00
日本很多大厂都在往 compose 转,之前看到 rakuten 招聘直接就是 compose first
ww940521
2023-08-01 15:37:49 +08:00
建议直接参考 Google 的 nowinandroid 的 demo 项目。
coobbi
2023-08-01 15:51:46 +08:00
使用过 jetpack compose ,还不成熟,想要实现一些复杂的组件或者想要使用一些成熟的开源组件,往一块拼凑很费劲。
自己玩耍的项目可以使用 jetpack compose 。有 kpi 要求或者项目有工时要求的慎用。
xieren58
2023-08-01 16:01:57 +08:00
@apple15634145 可以, 具体可以看 KMM (Kotlin Multiplatform Mobile)相关...
dreamingclj
2023-08-01 16:21:20 +08:00
kotlin 比 java 好用多了
Esen
2023-08-01 18:03:04 +08:00
@timelessg compose 套娃不难受吗
Esen
2023-08-01 18:05:04 +08:00
@xlsepiphone 躺不平啊,年纪大了等着被裁而已,自己打算整副业不搞这一行了,以前觉得自己能写一辈子代码,不会厌倦,现在看见代码就想绕着走
Esen
2023-08-01 18:06:10 +08:00
@Tolcol 还没有,还得挣钱吃饭,只不过搞 framework ,kotlin 基本用不着
mkoijnbhu
2023-08-01 18:39:31 +08:00
2023 了, 别用 java+xml 写 Android 了, 写 UI 的话有现成的 xml 组件你直接拿来用还算方便, java 真就别用了
agagega
2023-08-01 21:03:24 +08:00
不懂 Android ,从这个帖子看起来,Compose 在 Android 开发的接受度比 SwiftUI 在 iOS 的接受度明显更高?
Takuron
2023-08-01 22:42:05 +08:00
能接受 compose 接受不了 kotlin 可还行
compose 没用过,但 kotlin 确实属于我不喜欢但真香的东西,协程这种东西用了几次九再也不想线程了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX