Someone once sorted out the Top100 Java/Android projects on Github. As more and more Android projects began to switch to Kotlin, I would also like to sort out the excellent Kotlin/Android open source projects for better learning and reference.
The project selection process is simple:
- Search
android kotlin
keywords,Most stars
press the star traffic ranking - Manual secondary screening, sifting out some face-to-face and e-book items
Best match
Correction to avoid missing some low-star popular itemsTrending
Update the list from time to time and add popular items based on the author’s experience
The final results are as follows (the list will continue to be updated and maintained):
No. | Repo | Desc | Star |
---|---|---|---|
1 | square/okhttp | The http client library produced by Cube, the major version of 4.0 is completely the same as 3.0 in terms of function, but the language is changed from Java to Kotlin and rewritten again, which is very suitable for comparative learning of the two languages. | 38k + |
2 | square/leakcanary | Also produced by Cube, a memory leak detection tool to help you easily detect memory leaks in the development phase. It is very simple and convenient to use. Its working principle is a common problem in interviews. | 25k + |
3 | afollestad/material-dialogs | AppCompat’s Material theme only supports most controls, but it can’t make AlertDialog into Material style. This library allows you to implement Material style alertdialog on any version, and it’s very convenient to customize. | 18k+ |
4 | Kotlin/anko | Anko is a Kotlin library which makes Android application development faster and easier, although it is no longer maintained, it is still worth learning and learning from | 15k+ |
5 | LouisCAD/Splitties | Due to the abandonment of anko-layout, students who want to implement UI layout based on DSL can take a look at this library and learn more ways to play KotlinDSL | 1.3k |
6 | square/retrofit | Although okhttp is good, it is rarely used directly in Android development, and more often uses retrofit. The source code is permeated with excellent design patterns, which is worth learning | 36k |
7 | permissions-dispatcher/PermissionsDispatcher | After using annotations to manage Android 6.0, dynamic permission applications are introduced, which is compatible with the use of kapt | 10k+ |
8 | JakeWharton/RxBinding | J God’s RxBinding has been rewritten with Kt | 9.5k+ |
9 | cyf-dev / ImmersionBar | Android 4.4 and above immersive status bar and immersive navigation bar management, adapt to horizontal and vertical screen switching, notch screen, soft keyboard pop-up and other issues, you can modify the font color of the status bar and the color of the navigation bar icon | 8.6k+ |
10 | InsertKoinIO/koin | A dependency injection framework (more precisely a service discovery framework) that leverages the advantages of Kotlin syntax and cooperates with features such as DSL and reified | 5.9k |
11 | Kodein-Framework / Kodein-DI | The Kotlin dependency injection framework, which is similar in function and positioning to Koin, has slightly less influence than Koin | 2.4k + |
12 | zetbaitsu/Compressor | The android image compression library is easier to use by using the DSL interface, while supporting the processing of asynchronous tasks in Coroutine | 5.4k + |
13 | android / android-ktx | The official kotlin extension library is basically an essential tool for Kotlin/Android projects | 7.6k+ |
14 | square/moshi | The preferred serialization/deserialization library on Kotlin, some of the kapt operations are worth learning | 6.5k |
15 | wasabeef / Blurry | It may not be very helpful for learning Kotlin, but as a rare Gaussian blur library on Android, learn about it | 4.5k+ |
16 | square / okio | Let you deal with java.io more easily, and also has good support for Kotlin | 7.1k+ |
17 | coil-kt/coil | The image loading library on the android side is not as famous as the predecessors of glide and fresco, but it ranks higher on my list because it is completely built by kotlin and uses coroutine to handle asynchronous tasks. | 4.3k + |
18 | igorwojda/android-showcase | Although it is not a tool library, there are many Kotlin/Android development best practices and examples, which are worth learning | 3.7k + |
19 | kittinunf/fuel | Known as the simplest HTTP network library on Kotlin/Androids, it uses kt's lambda syntax to handle various callbacks | 3.6k+ |
20 | square/wire | The gRPC library that can be used in Kotlin, the cube produced must be a boutique | 3.2k + |
21 | airbnb / MvRx | The Redux framework for Kotlin/Android takes full advantage of Kotlin's syntax, such as creating ViewModel through the by keyword, which appeared earlier than Jetpack | 3.7k |
22 | airbnb/epoxy | Android list library, with MvRx can create a responsive list page, saving a lot of template code | 6.7k + |
23 | mikepenz / FastAdapter | Quickly create and configure the Adapter of RecyclerView, the core code is implemented based on Kotlin | 3.1k+ |
24 | bacon framework / bacon | Based on Kotlin's unit test framework, UT can be written in DLS way | 2k + |
25 | skydoves/Pokedex | A Best Practice project for learning Android, using various new technologies such as Dagger Hilt, Motion, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData) | 3k + |
26 | android10/Android-CleanArchitecture-Kotlin | Practice Clean Architecture SampleApp in Kotlin/Android, learn language and architecture design while learning | 2.7k + |
27 | arrow-kt/arrow | Well-known functional programming library based on 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+ |
总结
优秀的程序员都会懂得通过学习来提高自己的技术和竞争力,以此在工作中彰显自己的价值。为此我也特地整理了一份《Android进阶知识库》,希望能帮助自己和大家查漏补缺。目前在 Github 上已有 0.1K+Star,需要阅读的朋友,我把GIthub地址放在下方,欢迎查阅;