想开一个 compose 相关的群

2022-05-24 16:14:43 +08:00
 IsNotGood
大家有想法加入吗?目前加了一大堆安卓讨论区,群里很多还是 xml 那一套,估计 compose 在国内成不了主流吧。近期开发了一款应用。界面完全是 compose 写的,也遇到过很多问题,只能去 google 。
5341 次点击
所在节点    Android
40 条回复
IsNotGood
2022-05-24 16:21:42 +08:00
说说最近开发的应用吧,是一个单 activity 多 screen ( com pose 页面)组成的。
架构:MVI
inject:dagger hilt
network:retrofit
data:Room 、data store
task:work manager
navigation:compose-destinations ,这是国外一个开源封装库,简化了 compose navigation 的使用,但还是存在许多问题。
还有就是 Accompnist 了,很多 material 库都在这里边,比如下下拉刷新、page 和 flowlayout 等。
Vaspike
2022-05-24 16:22:12 +08:00
我用 jb-compose(即 Jetpack 的桌面移植版)写过一个上位机,问题我都是在 slack 里问官方的人,还蛮热心的
附上官方 kotlinlang 的 slack 链接:https://kotlinlang.slack.com/archives/CJLTWPH7S
equationl
2022-05-24 16:26:26 +08:00
开了踢我一下,最近也在学 compose ,然后写了个 Gitee 的 issue 管理。

正好遇到了好多问题,大家一起交流一下。

另外,compose 现在还是有好多 bug ,不用没感觉,真开始写后才发现问题不少。

附上项目地址: https://github.com/equationl/GiteeTodo
yazinnnn
2022-05-24 16:27:40 +08:00
支持,建议禁止键政黄图,宁缺毋滥
IsNotGood
2022-05-24 16:29:22 +08:00
自己也尝试对 compose 组件进行了封装,比如:右滑按钮删除、表单输入验证、时间选择器、用 canvas 绘制了图表等。其中很多东西都有参考 youtuber 大神的视频,受益匪浅!
IsNotGood
2022-05-24 16:31:14 +08:00
@Vaspike 我有尝试过 desktop 版本,调用文件 api 发现弹出的界面是 java swing 那一套,然后我瞬间没有开发欲望了
Vaspike
2022-05-24 16:34:48 +08:00
@IsNotGood #6
桌面版与 Swing 的关系不大,但是可以嵌入 Swing 的组件
IsNotGood
2022-05-24 16:43:30 +08:00
因 vx 不方便管理,最终决定开个 qqqun ,7948 去掉 17168
IsNotGood
2022-05-24 16:43:55 +08:00
@Vaspike 因 vx 不方便管理,最终决定开个 qqqun ,7948 去掉 17168 ,大大有兴趣可以加入下
IsNotGood
2022-05-24 16:44:19 +08:00
@equationl 因 vx 不方便管理,最终决定开个 qqqun ,7948 去掉 17168 ,大大有兴趣可以加入
IsNotGood
2022-05-24 16:44:29 +08:00
@yazinnnn 因 vx 不方便管理,最终决定开个 qqqun ,7948 去掉 17168 ,大大有兴趣可以加入
lisongeee
2022-05-24 16:50:52 +08:00
有一个困惑已久的问题想问一下,我看 compose 的路由和 react-router/vue-router 一样,是替换渲染的路由,也就是说 push 到一个新界面后之前的页面就被销毁了,而之前的 activity 路由模式,是 push 到一个新界面后之前的界面 会 onPause ,状态都在。
比如 compose-Navigation/react-router/vue-router 都不可能实现 https://stackoverflow.com/questions/72070174/ 这种效果,
那么想问一下,老哥你在开发的过程中会注意这种问题吗?
oynix
2022-05-24 16:57:35 +08:00
抛开初衷,从效率来讲,不如直接 Google
IsNotGood
2022-05-24 17:10:09 +08:00
@lisongeee 您想实现的效果我看可以实现啊,可能是你设置了参数导致前一页被销毁了。
lisongeee
2022-05-24 17:14:29 +08:00
@IsNotGood ,我没有设置什么参数,就是按照 compose-Navigation 官网的来的,那请问用 compose-Navigation 如何实现呢?
IsNotGood
2022-05-24 17:17:44 +08:00
@lisongeee 您加群,我给你发个视频看看是不是您需要的需求
lisongeee
2022-05-24 17:19:19 +08:00
@IsNotGood 哈哈,好呀,可以深度交流一下
mxalbert1996
2022-05-24 17:42:44 +08:00
不如直接在 Kotlin 官方 Slack 的 compose 频道问,那里还有不少 Google 员工出没。
mxalbert1996
2022-05-24 17:43:37 +08:00
lisongeee
2022-05-24 17:55:44 +08:00
@mxalbert1996 不可以实现,我之前试过了

compose-Navigation 下
比如你在页面 A 的协程作用域内
val scope = rememberCoroutineScope()
scope.launch{
while(true){
delay(3000)
log('xxx')
}
}
然后你 controller.navigate('B')
控制台就不会输出了,因为 页面 A 内的局部状态都被销毁了

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

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

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

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

© 2021 V2EX