項目啟發(fā)來自谷歌的同類框架項目
https://github.com/googlesamples/android-architecture
然后找了個自己練手的App做了個更簡易好理解版本的同類項目,開了個超級大坑~
https://github.com/boredream/DesignResCollection
歡迎star項目以及follow我训桶,項目將持續(xù)更新W厶Α!刻诊!
DesignResCollection
提供同一個App的不同架構(gòu)實現(xiàn)防楷,對其進行對比分析,方便大家選取使用
為什么要做這樣一個項目
Android 的框架多用MVC模型進行開發(fā)坏逢,而其中的Activity經(jīng)常承擔(dān)了大量的V和C的工作域帐,既處理邏輯又處理UI。
因此Activity中很容易聚集大量代碼是整,造成結(jié)構(gòu)復(fù)雜混亂肖揣、測試維護困難等諸多不便。
這個項目就是為了幫助解決這個問題的浮入。其中將提供一個相同的應(yīng)用程序龙优,然后使用不同的框架實現(xiàn)之。
您可以使用本項目中的示例代碼作為參考,或者直接作為項目的架子在此之上繼續(xù)開發(fā)自己的項目彤断。
本項目中野舶,主要關(guān)注的重點在于代碼的結(jié)構(gòu)框架、測試以及可維護性宰衙。
但是要注意平道,這里提供了不同的架構(gòu),各自有自己的優(yōu)缺點供炼。因此在選取時要根據(jù)自己的需要選擇對應(yīng)的框架結(jié)構(gòu)一屋。
比如你只是一個簡單的App,不需要單元測試袋哼,功能UI都比較少冀墨,那直接MVC結(jié)構(gòu)即可。
代碼示例 [持續(xù)開發(fā)中...]
顯示設(shè)計網(wǎng)站中收集來的資源的一個應(yīng)用DesignResCollection涛贯,不同結(jié)構(gòu)對應(yīng)不同的[_結(jié)構(gòu)后綴]诽嘉。
比如基本的MVP結(jié)構(gòu)就是 DesignResCollection_MVP。不同結(jié)構(gòu)的具體介紹請查看對應(yīng)文件夾中的README.md
已開發(fā)完成的示例
- DesignResCollection_MVC/ - Model-View-Controller 結(jié)構(gòu)弟翘。
待開發(fā)的示例
- DesignResCollection_MVP/ - Model-View-Presenter 結(jié)構(gòu)虫腋。
- DesignResCollection_MVP-Dagger2/ - 基于 Model-View-Presenter 結(jié)構(gòu),添加Dagger2框架衅胀。
其他相關(guān)示例
- DesignResCollection(ing...) - 完整App代碼岔乔,不斷豐富完善中,實現(xiàn)一個最終完整版滚躯。本項目中的示例是基于此項目做了功能和頁面上的精簡雏门,便于演示不同代碼結(jié)構(gòu)。
- DesignCollectionCloudEngine - 部署在LeanCloud上的云代碼項目掸掏,用于定時爬取數(shù)據(jù)保存到LeanCloud中為應(yīng)用提供數(shù)據(jù)來源的茁影。
開發(fā)計劃
2016.8.17~
DesignResCollection_MVP/ - Model-View-Presenter 結(jié)構(gòu)。
通用依賴框架
- 使用LeanCloud作為后端服務(wù)丧凤,比較簡單募闲,無需自行開發(fā)。
- 使用LeanCloud的Restful-API接口愿待。(不用LeanCloud的Android SDK浩螺,更貼近于實際開發(fā)中用開發(fā)接口文檔的情景)
- 網(wǎng)絡(luò)框架部分使用Retrofit2.0 + RxJava。
- 圖片使用Glide仍侥。
- 代碼助手Model 常見工具類要出、功能等都封裝到了這個依賴Model中,一來為了方便农渊,二來讓注意力更集中在項目框架結(jié)構(gòu)上患蹂。
到底使用哪種框架使用在我自己的app中?
每個框架示例中都有一個README,你可以先查看下每種的特點传于。
最終項目里還會對比下所有框架的優(yōu)缺點列出來囱挑,方便你根據(jù)自己具體情況進行全面的比較選取。
應(yīng)用截圖
device-2016-08-17-142739.png
使用
在Github中下載~ 解壓~ Open對應(yīng)框架項目的文件夾