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

舒適提示: 本文以《讓人耳目一新的 Jetpack MVVM 精講》做爲前置知識的鋪墊,假定小夥伴們在閱讀本文前 已對精講篇的內容有了必定理解。git

背景

人,不是機器,人註定會犯錯。github

尤爲是在 多人協做的軟件工程背景下 快速版本迭代的時候。markdown

有限的注意力應始終放在刀刃上,於是那些機械重複的模板代碼,應在後臺本身默默安排好一切、免除因各類手工操做的失誤 而形成的不可預期的後果架構

腳手架項目應運而生。oop

 

架構圖總覽

腳手架項目不單單是我一我的的創做,也是集許許多多優秀開發者參與演化的結果。post

該項目主要包含 表現層、領域層、數據層 三層:spa

腳手架項目有 3 寶。考慮到 「按需」 選用的原則,現已抽取爲 「依賴庫」 獨立維護。架構設計

  • 福利 1:DataBinding 嚴格模式

GitHub:Strict-DataBinding設計

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

GitHub:UnPeek-LiveData3d

  • 福利 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 的獨家理解,本人對此享有全部權和最終解釋權

當您借鑑或引用本文的引言、思路、結論進行二次創做,或全文轉載時,須註明連接出處,不然咱們保留追責的權利。

相關文章
相關標籤/搜索