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
gson————google推薦的json資料解析庫
glide————google推薦的Android圖片載入庫
RxAndroid+RxJava——Rx函式響應式程式設計中文文件
compile ‘com.android.support:design:23.0.1’————谷歌Material Design控制元件庫
關於App
app截圖
鳴謝
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!
任選一種支付方式