
获得徽章 0
- 上周有位小伙伴在模仿和测试 “知乎” 等软件的“DeepLink”时表示,allowTaskReparenting 并没有使 activity 从启动 task 回迁到原宿主 task,
经检验,allowTaskReparenting 实际上有起效,得出与实际存在偏差的结论,是由于实验者在实验过程中 疏忽了某个关键因素所致。
试验代码目前已更新到 Relearn Android 开源项目(可自行通过 commit 记录查找),复现步骤已记录到《任务与返回栈》篇评论区95楼,
感兴趣的小伙伴可自行回到任务篇重温。github.com
展开赞过评论1 - 前几天有位在 腾讯音乐部门 工作的小伙伴和我说,他在公司核心项目的重构中参考了 Jetpack MVVM Scaffold 的架构模式,
十分青睐 UnPeekLiveData 的设计,并且应邀在 V4.5 的基础上做了优化和升级(UnPeekLiveData 现已更新 V5.0 的代码到 GitHub)。github.com
为此,可以邀请小伙伴们匿名参与一次问卷调查吗,因为我们希望借此机会收集已经在用本架构模式的公司产品,
以便吸引到更多的小伙伴参与到对这些架构组件的使用、反馈,集众人之所长,让架构组件得以不断演化和升级。
(我们将于 2021.4.25 公布结果)wj.qq.com
展开等人赞过评论8 - 前一阵子忙的忘了《最佳实践》项目已发行一周年了😅
事实上,该项目的演变经历了一波三折,例如期间曾一度想过,要不要以 kotlin 的方式去重新架构,然而考虑到多数人出于实际工作的需要仍然停留在 java,而 java 又是 null 安全问题频发的大户,因而再三考虑,决定坚持 100% 纯 Java 开发,
这样也才有机会通过“高密度的接触”来意识到“接地气”的痛点,乃至不断琢磨着改进、让 java 开发也能不假思索、不必为不可预期的 null 安全一致性问题烦恼。
而这或许也是该项目这一年来能够持续维护且受开发者青睐的原因之一吧github.com
展开等人赞过48 - 刚刚为《脚手架》项目中的 ViewModel 全面确立了 “状态分治” 和 “页面通信” 两大场景下的命名,以方便语义上的理解,并在源码注释中对两大场景下的细节设计做了补充说明,感兴趣的小伙伴可随时查阅
github.com
等人赞过评论8 - 刚刚在 Jcenter 提交了 UnPeekLiveData v4.0,该版本在 v3.0 的基础上,参考了小伙伴 Flywith24 WrapperLiveData 遍历 ViewModelStore 的思路,全面提升 “防止倒灌时机” 的精准度。
为了尽可能降低学习成本,我们在引入新机制的前提下,尽可能地与传统 LiveData 的使用习惯保持一致,仅在 “订阅者观察处” 做了微调:
需对 Activity 和 Fragment 分别使用 ObserveActivity 和 ObserveFragment,具体缘由可详见代码注释中的解析。
目前在用 UnPeekLiveData v3.0 的小伙伴,可随时升级到 “更快更稳” 的 v4.0。github.com
展开赞过评论1 - 刚刚分享了一篇《Jetpack MVVM 脚手架》开源项目简介,1 年来已有数百位小伙伴在练手项目中应用了脚手架设计,感兴趣的小伙伴可随时查阅。等人赞过19
- 在 GitHub 开源的基于 LiveData 全局分发状态的 Jetpack-MusicPlayer,连日来陆续收到类似的使用提问,这里简要分享一下使用细节:
其实这类开源库的内在逻辑都是依赖于自身内在的实体类,因而在使用这类开源库时,请勿直接魔改库实体类,而是建议遵循开闭原则,继承库实体类并添加其他字段,且库拓展实体类和后端数据实体类需要分别准备一份,
这样当遇到字段与后端数据不一致的情况下,通过遍历后端数据 实例化和装载库的拓展实体类的对象 即可达成目的。github.com
展开赞过11 - 看到英文文章中 “LiveData 不应在 Repository 中使用” 的观点 “人传人”,这里简要分享下我的看法。
proandroiddev.com
事实上,文中提及的核心问题在于:对 Transformation 等过度设计的类的使用,导致 LiveData 的观察者回调在接触 Activity/Fragment 之前被调用,从而在回调中因执行耗时逻辑而导致主线程阻塞。
因而,问题的关键在于 Transformation 这些过度设计的类,也即,“不是 LiveData 本身应该出现在哪,而是 LiveData 的观察者回调应该出现在哪”。
所以对此问题妥当的描述应是:“建议通过 Kotlin Flow 或 RxJava 来取代 Transformation 等过度设计的类”、“建议 LiveData 的观察者回调只用于最终的 Activity/Fragment”,而不是 “LiveData 不应在 Repository 中使用”,
事实上如果你不曾使用那些过度的设计的类,那么在 Repository 通过 ViewModel 注入的 LiveData 来回推数据完全没问题。展开等人赞过15