RxJoke:RxJava+MVP的開(kāi)源項(xiàng)目

RxJoke

一個(gè)集成Rxjava,Retrofit,Mvp,以及Dagger2的開(kāi)源項(xiàng)目

Rxjoke

前言

最近一直在研究和學(xué)習(xí),也一直有想做一個(gè)開(kāi)源項(xiàng)目振定,將消化的知識(shí)運(yùn)用出來(lái)后频,俗話(huà)說(shuō)“紙上得來(lái)終覺(jué)淺,絕知此事要躬行”靠益,所以就做了這樣一個(gè)項(xiàng)目胧后,結(jié)合了一些開(kāi)源框架和三方庫(kù)抱环,比如大家熟知的MVP,Rxjava等镇草,做了一個(gè)笑話(huà)大全。力爭(zhēng)“簡(jiǎn)約而不簡(jiǎn)單吧”竖伯。

工程目錄

工程目錄

整體架構(gòu)

Model-view-presenter祟偷,簡(jiǎn)稱(chēng)MVP打厘,是電腦軟件設(shè)計(jì)工程中一種對(duì)針對(duì)MVC模式户盯,再審議后所延伸提出的一種軟件設(shè)計(jì)模式。

一款工程的架構(gòu)艰管,就相當(dāng)于骨骼牲芋,骨架捺球,只有骨架搭建的好,才能使整個(gè)工程富有彈性裂逐,并且邏輯清晰卜高。這里我選用的最近比較熱的MVP設(shè)計(jì)模式掺涛,并且這款模式也已經(jīng)運(yùn)用到我之前的企業(yè)項(xiàng)目中疼进,效果卓越伞广。對(duì)于MVP,這里推薦幾篇文章。

  1. Android中的MVP
  2. Android開(kāi)發(fā)MVP模式解析
  3. MVP模式在Android開(kāi)發(fā)中的應(yīng)用

數(shù)據(jù)源API

API Store,為開(kāi)發(fā)者提供最全面的API服務(wù)

巧婦難為無(wú)米之炊减拭,做一個(gè)項(xiàng)目拧粪,數(shù)據(jù)的來(lái)源是很重要的,不論B/S,C/S結(jié)構(gòu),其中server都是提供數(shù)據(jù)來(lái)源的正什。而這里我是從百度Api集市搜索的笑話(huà)大全API婴氮。

  1. Api獲取數(shù)據(jù)源(Json數(shù)據(jù))
  2. 利用GsonFormat生成Entity即JavaBean

這里由于結(jié)合了rxjava,所以model層也就上面獲取的javabean,獲取數(shù)據(jù)的代碼我放到了presenter層。

插件GsonFormat快速實(shí)現(xiàn)JavaBean

獲取數(shù)據(jù)

Retrofit – Java(Android) 的REST 接口封裝類(lèi)庫(kù)

RxJava – 一個(gè)在 Java VM 上使用可觀測(cè)的序列來(lái)組成異步的荣暮、基于事件的程序的庫(kù)

獲取數(shù)據(jù)方面(Presenter層)我利用了retrofit2+rxjava,之前用過(guò)volley框架穗酥,okhttp框架砾跃,感覺(jué)是各有所長(zhǎng)节吮,retrofit2給我的感覺(jué)就是分層清晰透绩。
而rxjava,對(duì)于有一定開(kāi)發(fā)經(jīng)驗(yàn)的程序員來(lái)說(shuō)碳竟。上手還是挺輕松的狸臣,并且利用響應(yīng)式開(kāi)發(fā),你會(huì)發(fā)現(xiàn)以前的很多需要回調(diào)來(lái)回調(diào)去的事情變得簡(jiǎn)單輕松统翩。
這里也推幾篇文章厂汗。

  1. 給 Android 開(kāi)發(fā)者的 RxJava 詳解(扔物線(xiàn))
  2. RxAndroid和RxJava的資料分享
  3. 好用的網(wǎng)絡(luò)請(qǐng)求庫(kù)Retrofit2(入門(mén)及講解)
  4. RxJava 與 Retrofit 結(jié)合的最佳實(shí)踐
  5. 當(dāng)鋼鐵俠反應(yīng)更靈敏-RxJava

UI層

谷歌推出了全新的設(shè)計(jì)語(yǔ)言Material Design

butterknife注解框架的偷懶插件

UI顯示層呜师,利用了已經(jīng)普及的Material Design中的設(shè)計(jì)規(guī)范,以及一些常用控件栗涂,如RecycleView,SwipeRefreshlayout等祈争。完成了上拉加載,下拉刷新等功能忿墅,并且利用了butterknife疚脐,用來(lái)快速注入視圖棍弄。
(PS viewholder 同樣可以利用ButterKnife插件生成哦!)


ButterKnife插件使用

其他

  1. Leakcanary -內(nèi)存泄露檢測(cè)工具 LeakCanary 這里提一下照卦,為什么要用這個(gè)役耕,首先聪廉,自工作之后板熊,發(fā)現(xiàn)一款應(yīng)用干签,不論你代碼寫(xiě)的多好,多美喘沿,多優(yōu)雅竭贩,都不如給用戶(hù)帶來(lái)良好體驗(yàn)更重要留量,而用戶(hù)體驗(yàn)一般體現(xiàn)在兩點(diǎn)哟冬,一是界面美觀浩峡,二則是操作流暢翰灾,也即性能良好伐债,當(dāng)一個(gè)工程越來(lái)越大峰锁,你會(huì)發(fā)現(xiàn),性能問(wèn)題也就成了重中之重虹蒋。所以這里推薦一下魄衅。當(dāng)然你會(huì)利用MAT監(jiān)控內(nèi)存也不錯(cuò)哦塘辅。
  2. Glide 圖片加載框架(對(duì)比其他如picasso扣墩,imageloader更優(yōu))
  3. Dagger2 依賴(lài)注入框架

這里著重說(shuō)一下依賴(lài)注入框架Dagger2,這可以說(shuō)是項(xiàng)目中較難上手的,并且是在安卓中優(yōu)點(diǎn)不明確的一個(gè)框架荆责,我曾經(jīng)花了大量時(shí)間去理解并嘗試寫(xiě)一篇文章去談一談當(dāng)它運(yùn)用到實(shí)際項(xiàng)目中時(shí)亚脆,給我們帶來(lái)的好處,目前也在消化中键耕,發(fā)現(xiàn)目前網(wǎng)上大量文章所說(shuō)的都有一些誤區(qū)柑营。但是現(xiàn)在我還未將它引入這個(gè)項(xiàng)目由境,當(dāng)然這里推薦一篇文章

依賴(lài)注入那些事兒

當(dāng)你進(jìn)入誤區(qū)的時(shí)候,嘗試從其根源出發(fā)讥蟆,會(huì)有意想不到的收獲,大家先不去了解Dagger2修然,而是嘗試?yán)斫庖蕾?lài)注入愕宋。

后期我會(huì)將dagger2引入工程中贝。

后話(huà)

以上是開(kāi)源項(xiàng)目 RxJoke的一些簡(jiǎn)介臼朗,有希望了解更多的可以Fork一下视哑,未來(lái)一段時(shí)間我會(huì)繼續(xù)推進(jìn)項(xiàng)目的進(jìn)程挡毅,優(yōu)化以及更新。比如緩存框架段磨,熱更新框架等等薇溃。

截圖



附錄

Apk壓縮包

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市策幼,隨后出現(xiàn)的幾起案子特姐,更是在濱河造成了極大的恐慌黍氮,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滚秩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡郁油,警方通過(guò)查閱死者的電腦和手機(jī)攀痊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)案站,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人嚼吞,你說(shuō)我怎么就攤上這事〕吹螅” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵翔始,是天一觀的道長(zhǎng)罗心。 經(jīng)常有香客問(wèn)我,道長(zhǎng)城瞎,這世上最難降的妖魔是什么渤闷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮脖镀,結(jié)果婚禮上飒箭,老公的妹妹穿的比我還像新娘。我一直安慰自己蜒灰,他們只是感情好弦蹂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著强窖,像睡著了一般凸椿。 火紅的嫁衣襯著肌膚如雪髓抑。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音严里,去河邊找鬼座柱。 笑死戏锹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奈搜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼航缀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了赶袄?” 一聲冷哼從身側(cè)響起蒋困,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤村刨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后逆粹,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡搔扁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年苛聘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唱捣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片战虏。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肥荔,靈堂內(nèi)的尸體忽然破棺而出潜圃,到底是詐尸還是另有隱情堵第,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布凄诞,位于F島的核電站,受9級(jí)特大地震影響汛蝙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜西土,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一庐舟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸睹栖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朴下。三九已至团滥,卻和暖如春力惯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親习蓬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子枫慷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,185評(píng)論 25 707
  • 一.榜單介紹 排行榜包括四大類(lèi): 單一框架:僅提供路由、網(wǎng)絡(luò)層、UI層、通信層或其他單一功能的框架 混合開(kāi)發(fā)框架:...
    偉子男閱讀 5,243評(píng)論 0 161
  • 很喜歡簡(jiǎn)書(shū)的編輯器痴荐,本以為可以私密地寫(xiě)一些東西鸦难,放在只有自己能看到的地方拴事∩ぃ看來(lái)還是便簽比較好键闺。 再見(jiàn)了簡(jiǎn)書(shū)。
    一寢天下無(wú)憂(yōu)閱讀 189評(píng)論 0 0
  • 我不是沒(méi)有情緒嘴高,而是我自己習(xí)慣了宽气,什么也不想涝影,什么也不關(guān)心的狀態(tài)唆樊,因?yàn)槲也魂P(guān)心別人片效,就不會(huì)對(duì)別人有期待,就不會(huì)失望...
    67fbaec5208f閱讀 430評(píng)論 0 1
  • “苦海翻起愛(ài)恨,在世間難逃命運(yùn);相親競(jìng)不可相近徐伐,或我應(yīng)該相信是緣份……”當(dāng)李健在臺(tái)上深情款款地演唱這首《一生所愛(ài)》...
    伊蘭若閱讀 1,017評(píng)論 19 15