Android架構(gòu)設(shè)計之MVP(二)

這是本系列文章的第二部分裁眯。在第一部分偎捎,我們提出了 MVP 的概念蠢终,并做出了一個安卓應(yīng)用架構(gòu)的藍圖序攘。如果你還沒有閱讀第一部分,那么大部分接下來的文章將對你沒有多大意義寻拂。所以程奠,在你繼續(xù)讀下去之前,瀏覽一遍第一部分祭钉。

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

MVP 項目的 GitHub repo 地址:

MindorksOpenSource/android-mvp-architecture

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

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

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

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


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

讓我們看一眼項目的結(jié)構(gòu):

整個應(yīng)用被打包為五個部分:

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

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

ui: View 類和它們對應(yīng)的 Presenter什荣。

service: 應(yīng)用需要的服務(wù)矾缓。

utils: 工具類。

類的設(shè)計方法是這樣的:它們應(yīng)該能夠被繼承稻爬,并能最大化代碼復(fù)用嗜闻。

項目結(jié)構(gòu)圖:


簡單的想法包含復(fù)雜的概念。

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

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

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

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

di 包是應(yīng)用中負(fù)責(zé)提供依賴的類喂急。要理解依賴注入格嘁,請瀏覽我發(fā)表的由兩部分組成的文章,Dagger2 part 1?和?Dagger2 part 2廊移。

資源:Styles, fonts, drawable糕簿。


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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市狡孔,隨后出現(xiàn)的幾起案子懂诗,更是在濱河造成了極大的恐慌,老刑警劉巖苗膝,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殃恒,死亡現(xiàn)場離奇詭異,居然都是意外死亡辱揭,警方通過查閱死者的電腦和手機离唐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來问窃,“玉大人亥鬓,你說我怎么就攤上這事∮虮樱” “怎么了嵌戈?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長听皿。 經(jīng)常有香客問我熟呛,道長,這世上最難降的妖魔是什么尉姨? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任庵朝,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘偿短。我一直安慰自己,他們只是感情好馋没,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布昔逗。 她就那樣靜靜地躺著,像睡著了一般篷朵。 火紅的嫁衣襯著肌膚如雪勾怒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天声旺,我揣著相機與錄音笔链,去河邊找鬼。 笑死腮猖,一個胖子當(dāng)著我的面吹牛鉴扫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澈缺,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼坪创,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了姐赡?” 一聲冷哼從身側(cè)響起莱预,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎项滑,沒想到半個月后依沮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡枪狂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年危喉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摘完。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡姥饰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出孝治,到底是詐尸還是另有隱情列粪,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布谈飒,位于F島的核電站岂座,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏杭措。R本人自食惡果不足惜费什,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望手素。 院中可真熱鬧鸳址,春花似錦瘩蚪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巡球,卻和暖如春言沐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酣栈。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工险胰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人矿筝。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓起便,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窖维。 傳聞我的和親對象是個殘疾皇子缨睡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容