MVP/MVVM
文章平均质量分 95
fundroid
Android GDE(谷歌开发者专家)| 互联网大厂移动端架构师
展开
-
Jetpack MVVM 七宗罪之五: 在 Repository 中使用 LiveData
由于 LiveData 简单好用再加上官网早期的推荐,很多人会将 LiveData 用在 Domain 甚至 Data 层等非 UI 场景,这样的用法并不合理,也已经不再被官方推荐。原创 2022-01-04 11:52:51 · 3190 阅读 · 4 评论 -
Jetpack MVVM 七宗罪之三:在onViewCreated中请求数据
Jetpack 的 MVVM 本身没有错,错在开发者的某些使用不当。本系列将分享那些 AAC 中常见的错误用法,以帮助大家打造更健康的应用架构原创 2021-08-14 18:28:17 · 1584 阅读 · 4 评论 -
Jetpack MVVM 七宗罪之二:在 launchWhenX 中启动协程
首先承认这个系列有点标题党,Jetpack 的 MVVM 本身没有错,错在开发者的某些使用不当。本系列将分享那些 AAC 中常见的错误用法,以帮助大家打造更健康的应用架构Flow vs LiveData自 StateFlow/ SharedFlow 出现后, 官方开始推荐在 MVVM 中使用 Flow 替换 LiveData。Flow 基于协程实现,具有丰富的操作符,通过这些操作符可以实现线程切换、处理流式数据,相比 LiveData 功能更加强大。 但唯有一点不足,无法像 LiveData ..原创 2021-08-06 00:38:17 · 1891 阅读 · 0 评论 -
Jetpack MVVM 七宗罪之一:使用 Fragment 作 LifecycleOwner
首先承认这个系列有点标题党,Jetpack 的 MVVM 本身没有错,错在开发者的某些使用不当。本系列将分享那些 AAC 中常见的错误用法,以帮助大家打造更健康的应用架构Fragment 作为 LifecycleOwner 的问题MVVM 的核心是数据驱动UI,在 Jetpack 中,这一思想体现在以下场景:Fragment 通过订阅 ViewModel 中的 LiveData 以驱动自身 UI 的更新关于订阅的时机,一般会选择放到 onViewCreated 中进行,如下:override f.原创 2021-08-02 09:32:45 · 2930 阅读 · 4 评论 -
基于Kotlin协程实现MVP/MVVM
Kotlin已经正式成为Android的官方开发语言,越来越多的Andorid框架/三方库开始用Kotlin实现。我也尝试通过Kotlin的协程来实现Android常见的MVP/MVVP架构,希望能将Kotlin更好地融入日常开发中。协程的同步和异步使用协程,可以方便地实现各种同步或者异步逻辑。通过suspend函数,我们可以在不阻塞线程的情况下,实现线程间的同步suspend ...原创 2020-01-28 21:22:10 · 1556 阅读 · 0 评论