V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KunMinX
V2EX  ›  Android

[Jetpack] 人生苦短,让脚手架为你节省时间

  •  
  •   KunMinX · 2020-10-13 13:45:17 +08:00 · 9478 次点击
    这是一个创建于 1536 天前的主题,其中的信息可能已经有所发展或是发生改变。

    温馨提示: 本文以《让人耳目一新的 Jetpack MVVM 精讲》作为前置知识的铺垫,假定小伙伴们在阅读本文前 已对精讲篇的内容有了一定理解。

    背景

    人,不是机器,人注定会犯错。

    尤其是在 多人协作的软件工程背景下 快速版本迭代的时候。

    有限的注意力应始终放在刀刃上,因而那些机械重复的模板代码,应在后台自己默默安排好一切、免除因各种手工操作的失误 而造成的不可预期的后果

    脚手架项目应运而生。

     

    架构图总览

    脚手架项目不仅仅是我一个人的创作,也是集许许多多优秀开发者参与演化的结果。

    该项目主要包含 表现层、领域层、数据层 三层:

    脚手架项目有 3 宝。考虑到 “按需” 选用的原则,现已抽取为 “依赖库” 独立维护。

    • 福利 1:DataBinding 严格模式

    GitHub:Strict-DataBinding

    • 福利 2:UnPeekLiveData 发送一次性事件

    GitHub:UnPeek-LiveData

    • 福利 3:Smooth-Navigation 使转场顺滑

    GitHub:Smooth-Navigation

    • 通过 Request 来复用转发逻辑

    • 通过 UseCase 管理可叫停的业务

    • 通过 DataResult 回调数据层结果

    综上

    任何技术的存在,都是旨在特定背景下解决特定问题,架构模式也不例外。

    透过过去一年的开源和对高频场景的总结,我们已为 “页面开发” 场景下存在的高频隐患提供了 “相应解”。

    随着背景因素的不断变化,技术亦处于不断的发展中,因而《 GitHub:Jetpack MVVM 脚手架》仍朝着趋于成熟的方向不断完善。

    今后如在个人项目中 用到了该脚手架项目的依赖库,可随时在 issue 区提供项目信息,如此可以让更多的开发者 有机会认识你的开源作品

    划重点 👆 👆 👆

    GitHub:Jetpack MVVM 脚手架

     

    谁在使用

    刚刚在 GitHub 看到有小伙伴基于《脚手架》项目的架构设计重构了多个项目,感兴趣的小伙伴可前往查阅 😉

    GitHub - Jetpack 开发短视频应用实战 - 重构

    GitHub - 仿网易云音乐安卓客户端 - 重构

     

    版权声明

    本文以 CC 署名-非商业性使用-禁止演绎 4.0 国际协议 发行。

    Copyright © 2019-present KunMinX

    本项目是作为《重学安卓》专栏 Jetpack MVVM 系列文章的配套项目而存在,文章内容和项目中的代码设计均涉及本人对 Jetpack MVVM 的独家理解,本人对此享有著作权

    任何组织或个人,未经与作者本人沟通,不得将本项目的代码设计和本人对 Jetpack MVVM 的独家理解用于出书和卖课的商业用途。

    1 条回复    2020-10-13 13:45:34 +08:00
    KunMinX
        1
    KunMinX  
    OP
       2020-10-13 13:45:34 +08:00
    考虑到后续开发者查阅的方便,相关开源项目请在 issue 区提交,我看到了会予以处理。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2523 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 01:35 · PVG 09:35 · LAX 17:35 · JFK 20:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.