[Jetpack] 人生苦短,讓腳手架爲你節省時間

溫馨提示: 本文以《讓人耳目一新的 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 的獨家理解用於出書和賣課的商業用途。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章