曾經有人整理過Github上的Java/Android項目Top100,隨着愈來愈多的Android項目開始轉向Kotlin,我也想整理一下優秀的Kotlin/Android開源項目,便於你們更好的學習和參考。java
項目選取過程很簡單:android
android kotlin
關鍵字,Most stars
按星量排名Best match
校訂,避免漏掉一些低星的人氣項目Trending
以及筆者經驗不按期更新榜單,追加熱門項目最終整理結果以下( 榜單將會持續更新和維護):ios
No. | Repo | Desc | Star |
---|---|---|---|
1 | square/okhttp | 方塊公司出品的http客戶端庫, 4.0的大版本功能上與3.0徹底一致,只是將語言從Java換成Kotlin重寫了一遍,很是適合兩門語言的對照學習 | 38k+ |
2 | square/leakcanary | 一樣來自方塊公司出品,一款檢測內存泄露工具, 幫助你在開發階段方便的檢測出內存泄露的問題, 使用起來很是簡單方便,其工做原理是面試中的常見問題 | 25k+ |
3 | afollestad/material-dialogs | AppCompat的Material主題僅管支持絕大多數控件,卻無法讓AlertDialog也變成Material風格,這個庫容許你在任意版本上實現Material風格的alertdialog,並且自定義起來也很是方便 | 18k+ |
4 | Kotlin/anko | Anko is a Kotlin library which makes Android application development faster and easier, 雖然已經不在維護,可是仍然值得學習和借鑑 | 15k+ |
5 | LouisCAD/Splitties | 因爲anko-layout的廢棄,想基於DSL進行UI佈局的同窗能夠看看這個庫,能夠學習到KotlinDSL的更多玩法 | 1.3k |
6 | square/retrofit | okhttp雖好,但在android開發中不多直接使用,更多的是使用retrofit。其源碼中到處滲透着優秀的設計模式,很是值得學習 | 36k |
7 | permissions-dispatcher/PermissionsDispatcher | 經過使用註解用來管理 Android6.0以後引入了動態權限申請, 兼容kapt的使用 | 10k+ |
8 | JakeWharton/RxBinding | J神的RxBinding,已經用Kt重寫過了 | 9.5k+ |
9 | gyf-dev/ImmersionBar | android 4.4以上沉浸式狀態欄和沉浸式導航欄管理,適配橫豎屏切換、劉海屏、軟鍵盤彈出等問題,能夠修改狀態欄字體顏色和導航欄圖標顏色 | 8.6k+ |
10 | InsertKoinIO/koin | 發揮 Kotlin語法優點,配合DSL、reified等特性實現的依賴注入框架(更準確的說是個服務發現框架) | 5.9k |
11 | Kodein-Framework/Kodein-DI | 跟Koin功能和定位相似的Kotlin依賴注入框架,相對於Koin影響力略小 | 2.4k+ |
12 | zetbaitsu/Compressor | android圖片壓縮庫,經過使用DSL接口更加易用,同時支持在Coroutine總處理異步任務 | 5.4k+ |
13 | android/android-ktx | 官方的kotlin擴展庫,基本上是Kotlin/Android項目的必備工具 | 7.6k+ |
14 | square/moshi | Kotlin上首選的序列化/反序列化庫,其中一些kapt的操做值得學習 | 6.5k |
15 | wasabeef/Blurry | 可能對於學習Kotlin幫助不大,可是做爲Android上少有的高斯模糊庫,瞭解一下 | 4.5k+ |
16 | square/okio | 讓你更加簡單的處理java.io,對於Kotlin也有很好的支持 | 7.1k+ |
17 | coil-kt/coil | android端的圖片加載庫,雖然沒有glide、fresco的前輩的名氣大,可是在個人榜單排名更靠前,由於它徹底由kotlin打造,使用coroutine處理異步任務 | 4.3k+ |
18 | igorwojda/android-showcase | 雖然不是一個工具庫,可是裏面有不少Kotlin/Android開發的最佳實踐和範例,值得學習 | 3.7k+ |
19 | kittinunf/fuel | 號稱Kotlin/Androids上最簡單的HTTP網絡庫,使用kt的lambda語法處理各類回調 | 3.6k+ |
20 | square/wire | 可用於Kotlin的gRPC庫,方塊出品必屬精品 | 3.2k+ |
21 | airbnb/MvRx | 用於Kotlin/Android的Redux框架,充分發揮Kotlin的語法優點,例如經過by關鍵字建立ViewModel,比Jetpack出現更早 | 3.7k |
22 | airbnb/epoxy | Android列表庫,配合MvRx能夠打造響應式的列表頁面,節省大量模板代碼 | 6.7k+ |
23 | mikepenz/FastAdapter | 快速建立和配置RecyclerView的Adapter,核心代碼基於Kotlin實現 | 3.1k+ |
24 | spekframework/spek | 基於Kotlin的單元測試框架,能夠用DLS的方式寫UT | 2k+ |
25 | skydoves/Pokedex | 一個學習Android的Best Practice項目,使用了Dagger Hilt, Motion, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData)等各類新技術 | 3k+ |
26 | android10/Android-CleanArchitecture-Kotlin | 在Kotlin/Android中實踐Clean Architecture的SampleApp,邊學語言邊學架構設計 | 2.7k+ |
27 | arrow-kt/arrow | 大名鼎鼎的用於基於Kotlin的函數式編程庫 | 3.8k |
28 | anvil-ui/anvil | 基於React思想的Kotlin/Android的響應式UI框架 | 1.4k+ |
29 | Yalantis/JellyToolbar | 一個用於Kotlin/Android的自定義Toolbal,雖然幾年前的庫了 | 1.5k+ |
30 | airbnb/paris | 能夠經過代碼動態設置控件的Style,擺脫煩人的xml | 1.4k+ |
31 | google/flexbox-layout | 能夠在android中使用Flaxbox佈局的控件 | 15.9k+ |
32 | sanogueralorenzo/Android-Kotlin-Clean-Architecture | 另外一款用於kotlin/android的Clean Architecture庫 | 1.3k+ |
33 | xiaojinzi123/Component | 一個強大、100% 兼容、支持 AndroidX、支持 Kotlin而且靈活的組件化框架 | 2k+ |
34 | Shopify/livedata-ktx | Livedata的Kotlin擴展,像RxJava同樣增長了一些鏈式操做符 | 460+ |
35 | arrow-kt/arrow | 大名鼎鼎的用於基於Kotlin的函數式編程庫 | 3.8k |
36 | sseasonnn/RxDownload | A multi-threaded download tool written with RxJava and Kotlin | 3.9k |
37 | detekt/detekt | kotlin的靜態檢查工具,AST部分也是用Kotlin實現的 | 3.1k |
38 | uber/AutoDispose | 對RxJava流進行自動bind和dispose,部分代碼用kotlin實現 | 3k+ |
39 | moezbhatti/qksms | Kotlin/Android的IM App | 2.9k+ |
40 | square/kotlinpoet | 與javapoet的做用同樣,協助生成kotlin代碼,框架自己也是用kotlin實現的 | 2.4k+ |
41 | nhaarman/mockito-kotlin | 使用Kotlin在UT中寫mockito | 2.4k+ |
42 | Kotlin/kotlinx.serialization | Kotlin官方的序列化庫,可用於Kotlin Multiplatform Project | 2.3k+ |
43 | pilgr/Paper | Paper是一個快速的NoSQL類存儲,用於Android上的Java / Kotlin對象,支持自動模式遷移 | 2.1k+ |
44 | square/AssistedInject | 自動生成JSR330規範的DI模板代碼 | 700+ |
45 | freeletics/RxRedux | 用於Kotlin/Android的Redux庫,基於RxJava實現 | 500+ |
46 | babylonhealth/orbit-mvi | 這是一個用於Kotlin/Android的Model-View-Intent (MVI)框架。它的靈感來自Jake Wharton,RxFeedback和Mosby的「Managing State with RxJava" | 300+ |
47 | Foso/Jetpack-Compose-Playground | 幫助你學習Jetpack Compose的優秀項目 | 500+ |
48 | Kotlin/dokka | 像javadoc同樣,用於生成Kotlin的doc | 1.7k+ |
49 | skydoves/ColorPickerPreference | Android上的顏色選取庫,可實現ColorPicker,ColorPickerDialog,ColorPickerPreference等功能 | 340+ |
50 | RubyLichtenstein/RxTest | RxTest是一個用於測試RxJava的Kotlin庫 | 280+ |
51 | google/iosched | GooglePlay官方APP的開源項目,同時是一個學習Kotlin/Jetpack的最佳實踐 | 20k+ |
52 | ReactiveCircus/FlowBinding | 簡單說就是Coroutine Flow版的RxBinding | 450+ |
to be continued...git