前言:
歷時一個多月,利用自己的閑暇時間,終于完成了我的第一個開源項目Designer v1.0初級版本,后續將會繼續開發迭代,用于學習和經驗總結。項目主要是仿想去App——一個很文藝,充滿設計感的電商類APP,為了豐富功能,里面還加入了仿開眼視頻的模塊。
項目截圖
《一》項目簡介
1、項目初衷:
我們知道,Kotlin可以很大程度上提高我們編寫代碼的效率,而且完全兼容Java,支持lambda表達式、Null safe等,相信使用了Kotlin的朋友,都不會再想使用Java編寫代碼了。那么組件化呢,組件化的優勢就更多了,特別是對于解決大型項目的迭代研發所面臨的代碼冗余、業務耦合、項目臃腫,資源文件大把重復等等問題幫助非常大。
組件化的優點:
其一:它把項目的基礎類公共部分進行單獨抽離封裝,有利于更好地對庫的依賴進行管理,不至于隨著項目的迭代而變得亂糟糟。
其二:將業務拆分成多個模塊進行獨立管理,每個業務模塊都能獨立運行。能單獨提測,大大節省開發時間
其三:對項目進行業務劃分,結構清晰明了,出現問題時有利于很快的進行排查錯誤,節省后期維護和調試的時間。
2、項目簡介
本項目采用組件化開發+Kotlin語言編寫,頁面布局全使用ConstraintLayout完成。網上能找到一些組件化開發的開源項目,也能找到很多Kotlin相關的開源項目,但是組件化+Kotlin結合的開源項目,還是比較少,所以我就大膽的把兩者結合實踐了一把,確實是遇到了不少的坑,特別是庫的依賴經常報錯,但是經歷這個過程,自然而然獲得的收獲也就更大了。后續我也會把開發過程中遇到的一些問題進行匯總分享出來。
《二》項目架構及技術要點
1、項目架構圖
2、項目涉及的技術要點:
1、組件化+Kotlin結合開發,如何管理第三方依賴
2、BaseActivity和BaseFragment等基類及通用布局的封裝
3、MVP+Dagger 2+Retrofit+Rxjava(包括了多個BaseUrl請求的場景處理)
4、組件化開發下ARouter的運用
5、EventBus的使用
6、Google原生數據庫Room的使用
7、Glide的使用(封裝加載圖片工具類GlideUtils,圓形、圓角圖片、背景圖片加載等)
8、Kotlin下使用ButterKnife
9、CommonAdapter萬能適配器(包括多類型布局的運用—首頁的逛模塊和視頻分類詳情都有運用)
10、GSYVideoPlayer實現視頻播放(包括全屏切換功能)
11、5.0新特性CoordinatorLayout +AppBarLayout效果實現(視頻分類詳情)
12、沉浸式狀態欄(Activity和在Fragment中的使用及不同手機的適配)
13、DataBinding的使用
14、約束布局ConstraintLayout的使用
寫在結尾:
Designer項目可以說得上是傾注了我蠻多心血了,每個頁面和功能都當成是上線的App來做,App的logo還特地做了UI設計??力求做到精致和完善,其中還包括了很多自己項目開發中的經驗匯總和對新技術的探索和整合,希望對各位讀者有所幫助,歡迎點個star,follow,或者給個小心心,嘻嘻??也可以分享給你更多的朋友一起學習,您的支持是我不斷前進的動力。如果有任何問題,歡迎在GitHub上給我提issue或者留言。
下載Apk體驗
項目源碼:Designer
Designer的源碼中,在config.gradle文件,配置了項目編譯模式??梢栽O置是單模塊運行模式還是集成開發模式。
致謝:
MVPArms官方快速組件化方案開源,來自5K star的信賴
Android組件化框架搭建
RxJava
Retrofit
GSYVideoPlayer
ARouter
Kotlin中使用Room
baseAdapter
ConstraintLayout 完全解析 快來優化你的布局吧
聲明
感謝想去App和開眼App提供參考,個人使用了抓包的方式使用了其中的API,并非攻擊,如構成侵權,請及時通知我刪除或者修改。