是 難得一見 的 Jetpack MVVM 最佳實踐! 前言 項目簡介 The One More Thing is:

 

前言

很高興見到你!

上週我在 各大技術社區 發表了一篇 《Jetpack MVVM 精講》,原以爲在 知識網紅 唱衰安卓 的 2019 會無人問津,沒想到文章一經發布,從 國內知名公司 的架構師、技術經理,到 世界級公司 的 Android 開發 都在看。😉

並且從讀者的反饋來看,近期大部分安卓開發 已跳出舒適圈,開始嘗試認識和應用 Jetpack MVVM 到實際的項目開發中。

只可惜,關於 Jetpack MVVM,網上多是 東拼西湊、人云亦云、通篇貼代碼 的文章,這不僅不能提供完整的視角 來幫助讀者 首先明確背景狀況,更是給還沒入門 Jetpack 的讀者 徒添困擾、起到 勸退 的作用。

好消息是,這一期,我們帶着 精心打磨的 Jetpack MVVM 最佳實踐案例 來了!

 

是讓人 愛不釋手 的 交互設計! 是 連貫 的 用戶體驗 唯一可信源 的 統一分發
橫豎屏佈局 的 無縫切換

 

項目簡介

本人擁有 3 年的 移動端架構 踐行和設計經驗,領導團隊重構的 中大型項目 多達十數個,對 Jetpack MVVM 架構在 確立規範化、標準化 開發模式 以 減少不可預期的錯誤 所作的努力,有着深入的理解。

在這個案例中,我將爲你展示,Jetpack MVVM 是如何 蘊繁於簡 地 將原本十分容易出錯、一出錯就會耽擱半天時間的開發工作,通過 寥寥的幾行代碼 輕而易舉地完成。😉

👆👆👆 劃重點!

 

在這個項目中,

我們爲 橫、豎屏 的情況 分別安排了兩套 截然不同的佈局,並且在 生命週期重建機制狀態管理DataBindingViewModelLiveDataNavigation 等知識點的幫助下,通過寥寥幾行代碼,輕鬆做到 在橫豎屏兩種佈局間 無縫地切換,並且不產生任何 預期外的錯誤

我們在多個 Fragment 頁面 分別安排了 播放狀態 指示器(包括 播放暫停按鈕狀態、播放列表當前索引指示 等),並向你展示了 如何 以及爲何 通過 LiveData 配合 作爲唯一可信源 的 ViewModel 或單例,來實現 全應用範圍內 可追溯事件 的統一分發

我們在 Fragment 和 Activity 之間分別安排了 跨頁面通信,從而向你展示 如何基於 迪米特原則(也稱 最少知道原則)、通過 UnPeekLiveData 和 應用級 SharedViewModel 來實現 生命週期安全的、事件源可追溯的 頁面通信(事件回調)。

我們在 ui.pagedata.repositorybridge.request 等目錄下,分別安排了 視圖控制器、ViewModel 、DataRepository 等 內容,從而向你展示,單向依賴 的架構設計,是如何通過分層的 數據請求和響應,來 規避 內存泄漏 等問題。

本項目的代碼一律採用 經過 ISO 認證的 標準化工業級語言 Java 來編寫。並且,在上述目錄 所包含的 類中,我們大都 提供了豐富的註釋,來幫助你理解 骨架代碼 爲何要如此設計、如此設計能夠 在軟件工程的背景下 避免哪些不可預期的錯誤。

 

除了 在 蘊繁於簡 的代碼中 掌握 MVVM 最佳實踐,你還可以 從這個開源項目中 獲得的內容 包括:

  1. 整潔的代碼風格 和 標準的資源命名規範。
  2. 對 視圖控制器 知識點的 深入理解 和 正確使用。
  3. AndroidX 和 Material Design 2 的全面使用。
  4. ConstraintLayout 約束佈局的最佳實踐。
  5. 優秀的 用戶體驗 和 交互設計
  6. 絕不使用 Dagger,絕不使用奇技淫巧、編寫艱深晦澀的代碼。
  7. One more thing.

The One More Thing is:

詳見 GitHub 倉庫 Jetpack-MVVM-Best-Practice

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