分享一個基於MVP+Retrofit+RxJava+MaterialDesign的App

PleaseCallMeCoder發表於2016-07-13

2016已經荒廢了一半,還有一半可以繼續浪費。

原始碼我已經上傳到github上了,歡迎fork和star
https://github.com/PleaseCallMeCoder/PrettyGirls

我想說的

最近一直在忙專案的事,所以很久不寫部落格了。抽時間整理了下最近的收藏的一些文章,感覺新的知識點還是挺多的,於是乎自己抽時間寫了一個簡單的App。為什麼說它簡單呢?因為這個app只有四個頁面而已。有人說了,這麼簡單你還寫?答曰:麻雀雖小,五臟俱全。這個App基本包含了開發一個專案用到的所有元素。寫這個app的目的如下:

  • 將rxjava、retrofit、mvp、materialdesign等知識點做一個簡單的整合
  • 封裝一個通用baselibrary,方便以後構建專案,而且可以不斷完善這個library
  • 不斷優化,不斷重構,因為模組少所以重構起來比較方便
  • 拋磚引玉,三人行必有我師,希望大家多多指教

你想知道的

說完了我想說的,說說大家可能想知道的。

一個專案的完整流程如下:痛點–>分析–>原型–>UI/UE–>設計–>架構–>測試–>構建–>QA–>運營–>迭代。這裡我們重點關注架構,並不是因為架構最重要,而是因為本文的重點是這個App的整體架構。

專案結構

這裡我用了MVP模式配合多模組Activty+多Fragment的思路。對於MVP和Fragment的有點這裡我就不過多介紹了。我簡單說下我的實現思路。

封裝一個baselibrary

我們可以利用以往專案經驗分模組分類別封裝出一些父類,完成公共操作,後續開發只需要繼承這些父類就可以完成大部分操作,節省開發成本。這裡我封裝了:

  • 包括普通activity和支援右滑退出當前頁面的activity父類(退出方式類似qq)
  • activity管理棧
  • fragment的基類
  • adapter的基類

這個library基本已經滿足了這個App的開發。但是沒有最好只有更好,這個baselibrary我會不斷完善和優化,以滿足更復雜的需求。

分包

這裡我採用的是按模組來劃分包。包括以下幾部分:

  • app

    包括全域性異常處理,系統常量,和app的基本配置等。

  • 模組包

    每個模組包含一個契約介面,本模組的一個activity和多個fragment,presenter的實現類等,當然如果模組比較複雜還可以再繼續分

  • data

    提供app的本地或者遠端資料,資料模型等

  • util

    工具類

  • widget

    自定義控制元件

依賴庫

至於依賴庫的選擇個人認為因人而異,我使用的庫如下:

butterknife————View註解庫和配套外掛android-butterknife-zelezny

retrofit+okhttp————網路請求相關

gson————google推薦的json資料解析庫

glide————google推薦的Android圖片載入庫

RxAndroid+RxJava——Rx函式響應式程式設計中文文件

compile ‘com.android.support:design:23.0.1’————谷歌Material Design控制元件庫

關於App

app截圖

github

下載

鳴謝

程式碼家-乾貨集中營

OXO

所有開源的人

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

任選一種支付方式

分享一個基於MVP+Retrofit+RxJava+MaterialDesign的App 分享一個基於MVP+Retrofit+RxJava+MaterialDesign的App

相關文章