基于Kotlin + Jetpack全家桶 + Coroutines(協程) 等架構實現的一款...

[復制鏈接]
來自: fmtjava 分類: Android精品源碼 上傳時間: 2020-4-16 20:34:34
Tag:

項目介紹:

本帖最后由 fmtjava 于 2020-4-16 20:36 編輯

Jetpack_GitHub


Platform
API
License: MIT
Release Version



基于Kotlin + Jetpack全家桶 + Coroutines(協程) 等架構實現的一款精簡版Github客戶端項目。


開源不易,如果喜歡的話希望給個 Star 或 Fork ^_^ ,謝謝


項目地址:https://github.com/fmtjava/Jetpack_GitHub


項目截圖



???
???





???
???





???
???



???
???


下載體驗



  • 點擊 下載(密碼:123456)

  • 下方二維碼下載(每日上限100次,如達到上限,還是 clone 源碼吧!?(? ? ??)))



核心技術棧


Kotlin語言


聽說Android開發與Kotlin更配哦!Kotlin語言100%兼容Java,并且具有數據類、空安全、延遲加載、屬性代理、拓展方法、函數表達式、高級函數等高級特性,極大
的簡化代碼量,不需要在findViewById、不需要為空指針煩惱、不需要編寫復雜的JavaBean,讓你能夠更專注與業務,kotlin是一門小清新的語言,只要你Java足夠
扎實,上手kotlin會很方便,kotlin會讓你開發Android APP如沐春風,快點學習Kotlin吧!


AAC架構


還在為MVP內存泄露而煩惱嗎?還在苦惱App架構選型嗎?Googel官方AAC架構來襲,讓你的App架構更加清晰,不在為內存泄露而煩惱。架構圖如下

?
Model-View-ViewModel,View 指綠色的 Activity/Fragment,主要負責界面顯示,不負責任何業務邏輯和數據處理。Model 指的是 Repository 包含的部分,主要負責數據獲取,來組本地數據庫或者遠程服務器。ViewModel 指的是圖中藍色部分,主要負責業務邏輯和數據處理,本身不持有 View 層引用,通過 LiveData 向 View 層發送數據。Repository 統一了數據入口,不管來自數據庫,還是服務器,統一打包給 ViewModel。


核心組件



  • Lifecycles:它持有關于組件(如 Activity 或 Fragment)生命周期狀態的信息,并且允許其他對象觀察此狀態

  • ViewModel:以注重生命周期的方式管理界面相關的數據,為Activity 、Fragment存儲數據,直到完全銷毀;

  • LiveData:不用手動控制生命周期,不用擔心內存泄露,數據變化時會收到通知,與ViewModel的組合使用可以說是雙劍合璧,而Lifecycles貫穿其中;

  • DataBinding:將布局組件與源數據綁定,使源數據變化的同時布局組件及時同步更新,與ViewModel、LiveData、Lifecycles搭配使用,能夠碰撞出極致的MVVM火花

  • Room:流暢地訪問 SQLite 數據庫;


koin


koin 是一個用于kotlin的實用型輕量級依賴注入框架,采用純kotlin編寫而成,僅使用功能解析,無代理、無代碼生成、無反射。koin 是一個DSL,一個輕便的容易和一個使用的API。從此告別Dagger2的困境,讓依賴注入更加簡單。


Retrofit + Okhttp + Coroutines(協程)打造強大的網絡請求



  • Retrofit:Square出品的網絡請求庫,極大的減少了http請求的代碼和步驟

  • Okhttp: 同樣Square出品,不多介紹,做Android都應該知道

  • Coroutines(協程):kotlin1.3版本發布,Coroutines穩定版也正式發布,Coroutines真是非常神奇,讓你可以使用同步的方式寫異步請求代碼,增強代碼的可讀性、不在為回調而煩惱、優雅的進行線程切換操作,Coroutines的“黑魔法“特性會讓你眼前一亮。


Coroutines(協程)


還在為線程切換而煩惱嗎? 還在深陷回調的噩夢嗎? 還在為Thread初始化帶來的性能損耗而煩惱? kotlin1.3協程穩定版來襲,專治上述的疑難雜癥,Android開發使用協程具備以下優點:



  • 協程依賴于線程,但是協程掛起時不需要阻塞線程,幾乎是無代價的,協程是由開發者控制的。

  • 異步編程時無需編寫大量的回調接口,Coroutines的“黑魔法“特性讓你用同步的方式編寫代碼,增強代碼可讀性

  • 協程調度器代替Handler、AsyncTask、Rxjava更優雅的處理線程切換


LiveEventBus


LiveEventBus是一款Android消息總線,基于LiveData,具有生命周期感知能力,支持Sticky,支持AndroidX,支持跨進程,支持跨APP


Assent


輕便且靈活的Android動態權限申請框架,支持Kotlin和AndroidX


Glide


Glide相比起Fresco要輕量很多,api調用起來也很簡潔,對圖片加載要求不是很高的話建議使用Glide。


更新日志


v2.0



  • 接入Paging改寫動態分頁列表頁面,并封裝Paging版分頁模版(BasePagingVMFragment、BaseLPagingModel)

  • 提供Paging版分頁列表模版以及普通版分頁列表模版,方便對比學習

  • 下個版本計劃加入Navigation


v1.9



  • 添加動態頁面

  • 調整項目結構,優化代碼


v1.8



  • 添加App啟動優化代碼,提升App的啟動速度

  • 調整項目結構,優化代碼


v1.7



  • 使用協程進一步簡化異步代碼,增強代碼的可讀性

  • BaseActivity、BaseMVActivity等基類再次進行封裝


v1.6



  • 封裝通用列表以及統一分頁模版代碼

  • 使用FragmentTransaction#setMaxLifecycle(Fragment, Lifecycle.State)替換setUserVisibleHint,實現新的Fragment懶加載方案

  • BaseFragment以及BaseActivity等基類再次進行封裝

  • 調整項目結構,優化代碼


v1.5



  • 添加動態權限申請功能,優化歡迎頁以及登陸頁的樣式以及邏輯

  • 調整項目結構,優化代碼


v1.4



  • 完善搜索功能,新增用戶以及倉庫排序搜索

  • 調整項目結構,優化代碼


v1.3



  • 加入koin依賴注入框架完善AAC架構

  • 調整項目結構,優化代碼


v1.2



  • 修復Activity/Fragment自定義異常處理沒有調用問題

  • 調整項目結構,優化代碼


v1.1



  • 啟動頁添加svg動畫

  • 加入DataBinding完善AAC架構

  • LastAdapter替換BaseRecyclerViewAdapterHelper,結合DataBinding更方便

  • 調整項目結構,優化代碼


v1.0



  • 初始化項目,完成Github App核心功能


Thanks



關于我



License


Copyright (c) 2019 fmtjava


Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:


The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


相關源碼推薦:

我來說兩句
所有評論(26)
ff12345 2020-4-17 18:03:01
幫幫頂頂??!
回復
深思 2020-4-17 18:06:24
幫幫頂頂??!
回復
ffg12 2020-4-17 18:11:57
支持樓主,支持安卓巴士!
回復
humanboy 2020-4-17 18:19:48
感謝分享,安卓巴士有你更精彩:lol
回復
rebecca 2020-4-17 18:26:31
感謝分享,樓主V5~
回復
Mr_Zhao 2020-4-17 18:35:23
感覺樓主很用心,辛苦啦~
回復
fmtjava 2020-4-17 20:48:34
感謝分享,安卓巴士有你更精彩:)
回復
1234下一頁
提取碼:  下載次數:16 狀態:已購或VIP 售價:10(原價:10)金錢 下載權限:初級碼農 
2143 0 16
代碼貢獻英雄榜
用戶名 下載數
聯系我們
首頁/微信公眾賬號投稿
帖子代碼編輯/版權問題
QQ:435399051,1294855032
如何獲得代碼達人稱號?
如何成為簽約作者?
領先的中文移動開發者社區
18620764416
7*24全天服務
意見反饋:[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粵ICP備15117877號 )

天津福彩快乐10分预测