Android架構設計之MVP(二)

這是本系列文章的第二部分。在第一部分,我們提出了 MVP 的概念,并做出了一個安卓應用架構的藍圖。如果你還沒有閱讀第一部分,那么大部分接下來的文章將對你沒有多大意義。所以,在你繼續(xù)讀下去之前,瀏覽一遍第一部分。

基于在第一部分中提出的藍圖,我們將開發(fā)一個成熟的安卓應用,通過它實現(xiàn) MVP 架構。

MVP 項目的 GitHub repo 地址:

MindorksOpenSource/android-mvp-architecture

本項目旨在提供一種正確的安卓應用架構方式。它包括了大多數(shù)安卓應用的全部代碼模塊。

這個項目剛開始看起來會很復雜,但是隨著你花時間去探索,你看它也會變得更清晰明了。這個項目是用 Dagger2, Rxjava, FastAndroidNetworking 和 PlaceHolderView 實現(xiàn)的。

把這個項目當作一個學習案例。研究它的每一行代碼。如果這里面有任何 bug 或者你能想出一個更好的邏輯實現(xiàn),創(chuàng)建一個 pull request。我們在逐步寫測試。歡迎你為測試做貢獻,并通過 pull request 的方式提交。

開發(fā)出的應用的截屏如下:


這個應用有一個登錄頁面和一個主頁面。登錄頁面實現(xiàn)了 Google,F(xiàn)acebook 和服務器登錄。Google 和 Facebook 登錄是通過啞 API 實現(xiàn)的。登錄是基于獲取 access token 的,接下來的調用都被這個 token 所保護。主屏幕創(chuàng)建了和 MVP 相關問題的答題卡。這個 repo 包含了任何應用的大多數(shù)組件所需的基本框架。

讓我們看一眼項目的結構:

整個應用被打包為五個部分:

data: 它包含所有訪問和操控數(shù)據(jù)的組件。

di: 使用 Dagger2 提供依賴的類。

ui: View 類和它們對應的 Presenter。

service: 應用需要的服務。

utils: 工具類。

類的設計方法是這樣的:它們應該能夠被繼承,并能最大化代碼復用。

項目結構圖:


簡單的想法包含復雜的概念。

有很多非常有趣的部分。但如果我嘗試同時解釋所有的部分,信息量就太大了。所以,我認為最好的做法是解釋核心的理念。這樣,讀者就可以通過瀏覽項目 repo 來理解這些代碼。我建議你至少花一周時間研究這個項目。按照時間從后到前的順序研究這些主要的類。

研究 build.gradle 并尋找它使用的所有依賴。

探索 data 包以及 helper 類的實現(xiàn)。

ui base 包創(chuàng)建了Activity, Fragment, SubView 和 Presenter 的基類。所有其他相關的組件都應該從這些類派生。

di 包是應用中負責提供依賴的類。要理解依賴注入,請瀏覽我發(fā)表的由兩部分組成的文章,Dagger2 part 1?和?Dagger2 part 2

資源:Styles, fonts, drawable。


原文地址:Essential Guide For Designing Your Android App Architecture: MVP: Part 2

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容