Closed KunMinX closed 4 years ago
本项目发起自 2019 年,系我为了方便开发者们 无痛理解 Google 开源的 Jetpack MVVM 中每个架构组件的 存在缘由、职责边界,而 精心设计的一个又一个高频应用场景。
该项目专注于解析 Jetpack 高频核心组件,曾被某对标阿里 P7 架构师拿去给 2300 名学员讲课,通过它你可迅速理解状况并应用于工作或面试中。
https://github.com/KunMinX/Jetpack-MVVM-Best-Practice
在这个项目中,
我们为 横、竖屏 的情况 分别安排了两套 截然不同的布局,并且在 生命周期、重建机制、状态管理、DataBinding、ViewModel、LiveData 、Navigation 等知识点的帮助下,通过寥寥几行代码,轻松做到 在横竖屏两种布局间 无缝地切换,并且不产生任何 预期外的错误。 我们在多个 Fragment 页面 分别安排了 播放状态 指示器(包括 播放暂停按钮状态、播放列表当前索引指示 等),并向你展示了 如何 以及为何 通过 LiveData 配合 作为唯一可信源 的 ViewModel 或单例,来实现 全应用范围内 可追溯事件 的统一分发。 我们在 Fragment 和 Activity 之间分别安排了 跨页面通信,从而向你展示 如何基于 迪米特原则(也称 最少知道原则)、通过 UnPeekLiveData 和 应用级 SharedViewModel 来实现 生命周期安全的、事件源可追溯的 页面通信(事件回调)。 我们在 ui.page 、data.repository、domain.request 等目录下,分别安排了 视图控制器、ViewModel 、DataRepository 等 内容,从而向你展示,单向依赖 的架构设计,是如何通过分层的 数据请求和响应,来 规避 内存泄漏 等问题。 本项目的代码一律采用 经过 ISO 认证的 标准化工业级语言 Java 来编写。并且,在上述目录 所包含的 类中,我们大都 提供了丰富的注释,来帮助你理解 骨架代码 为何要如此设计、如此设计能够 在软件工程的背景下 避免哪些不可预期的错误。
我们为 横、竖屏 的情况 分别安排了两套 截然不同的布局,并且在 生命周期、重建机制、状态管理、DataBinding、ViewModel、LiveData 、Navigation 等知识点的帮助下,通过寥寥几行代码,轻松做到 在横竖屏两种布局间 无缝地切换,并且不产生任何 预期外的错误。
我们在多个 Fragment 页面 分别安排了 播放状态 指示器(包括 播放暂停按钮状态、播放列表当前索引指示 等),并向你展示了 如何 以及为何 通过 LiveData 配合 作为唯一可信源 的 ViewModel 或单例,来实现 全应用范围内 可追溯事件 的统一分发。
我们在 Fragment 和 Activity 之间分别安排了 跨页面通信,从而向你展示 如何基于 迪米特原则(也称 最少知道原则)、通过 UnPeekLiveData 和 应用级 SharedViewModel 来实现 生命周期安全的、事件源可追溯的 页面通信(事件回调)。
我们在 ui.page 、data.repository、domain.request 等目录下,分别安排了 视图控制器、ViewModel 、DataRepository 等 内容,从而向你展示,单向依赖 的架构设计,是如何通过分层的 数据请求和响应,来 规避 内存泄漏 等问题。
ui.page
data.repository
domain.request
本项目的代码一律采用 经过 ISO 认证的 标准化工业级语言 Java 来编写。并且,在上述目录 所包含的 类中,我们大都 提供了丰富的注释,来帮助你理解 骨架代码 为何要如此设计、如此设计能够 在软件工程的背景下 避免哪些不可预期的错误。
非常好的项目,但是暂时不接受具有一定引流性质的项目哦 如果你愿意把ReadMe中部分内容去掉,我们一定很乐意收录~
本项目发起自 2019 年,系我为了方便开发者们 无痛理解 Google 开源的 Jetpack MVVM 中每个架构组件的 存在缘由、职责边界,而 精心设计的一个又一个高频应用场景。
该项目专注于解析 Jetpack 高频核心组件,曾被某对标阿里 P7 架构师拿去给 2300 名学员讲课,通过它你可迅速理解状况并应用于工作或面试中。
https://github.com/KunMinX/Jetpack-MVVM-Best-Practice
在这个项目中,