曾经有人整理过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