Kotlin+元件化開發實踐—開源專案Designer-App

一隻懂音樂的碼蟲發表於2019-01-28

app-logo

前言:

歷時一個多月,利用自己的閒暇時間,終於完成了我的第一個開源專案終於完成了我的第一個開源專案Designer v1.0初級版本,後續將會繼續開發迭代,用於學習和經驗總結。專案主要是仿想去App——一個很文藝,充滿設計感的電商類APP,為了豐富功能,裡面還加入了仿開眼視訊的模組。

專案截圖

專案截圖Part 1.png

專案截圖Part 2.png

《一》專案簡介

1、專案初衷:

我們知道,**Kotlin**可以很大程度上提高我們編寫程式碼的效率,而且完全相容Java,支援lambda表示式、Null safe等,相信使用了Kotlin的朋友,都不會再想使用Java編寫程式碼了。那麼元件化呢,**元件化的優勢**就更多了,特別是對於解決大型專案的迭代研發所面臨的程式碼冗餘、業務耦合、專案臃腫,資原始檔大把重複等等問題幫助非常大。

元件化的優點:

其一:它把專案的基礎類公共部分進行單獨抽離封裝,有利於更好地對庫的依賴進行管理,不至於隨著專案的迭代而變得亂糟糟。

其二:將業務拆分成多個模組進行獨立管理,每個業務模組都能獨立執行。能單獨提測,大大節省開發時間

其三:對專案進行業務劃分,結構清晰明瞭,出現問題時有利於很快的進行排查錯誤,節省後期維護和除錯的時間。

2、專案簡介

本專案採用**元件化開發+Kotlin語言**編寫,頁面佈局全使用**ConstraintLayout**完成。網上能找到一些元件化開發的開源專案,也能找到很多Kotlin相關的開源專案,但是元件化+Kotlin結合的開源專案,還是比較少,所以我就大膽的把兩者結合實踐了一把,確實是遇到了不少的坑,特別是庫的依賴經常報錯,但是經歷這個過程,自然而然獲得的收穫也就更大了。後續我也會把開發過程中遇到的一些問題進行彙總分享出來。

《二》專案架構及技術要點

1、專案架構圖

image.png

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

致謝:

MVPArms官方快速元件化方案開源,來自5K star的信賴

RxJava

Retrofit

GSYVideoPlayer

ARouter

Kotlin中使用Room

宣告

感謝想去App和開眼App提供參考,個人使用了抓包的方式使用了其中的API,並非攻擊,如構成侵權,請及時通知我刪除或者修改。

相關文章