Ever since Google announced Kotlin as a first class language for Android I have been dipping myself into the language heavily. On my little adventure to getting a good grasp of the language and speed up my Android app development process, I stumbled upon a lot of useful articles, videos, libraries and open source sample projects demonstrating the beauty of Kotlin.
In this article, I will be listing out various of such resources to help you learn Kotlin in a short time without banging your head on the wall.
Note: This list isn’t complete or final. It will be updated frequently with new resources, so you can bookmark this page or save it in Pocket to be aware of the new additions.
Let’s get started, shall we?
Start your Kotlin journey with these helpful resources and medium brought to you by the team behind the language.
- Kotlin Docs – The official documentation
- Kotlin Koans – Learn Kotlin by trying out code online
- Kotlin Slack – Official Slack channel for Kotlin
- Kotlin Discuss – A forum to discuss all things Kotlin
Books & Videos
Enrich your knowledge with these handy books and videos prepared for you by some of the best developers.
- Kotlin for Android Developers by Antonio Leiva
- Kotlin in Action by Dmitry Jemerov & Svetlana Isakova
- Programming Kotlin by Stephen Samuel & Stefan Bocutiu
- Kotlin for Beginners – An Udemy course on the basics of Kotlin
- Android Kotlin Developer – An Udemy course tailored especially for Android development with Kotlin
- Introduction to Kotlin – A short intro to the language by Hadi Hariri and Andrey Breslav at Google I/O 2017
- Android Development with Kotlin – A short talk on usefulness of Kotlin by Jake Wharton
- Better Android Development with Kotlin & Gradle – A talk by Ty Smith at GOTO Conference 2016
- Life is Great and Everything Will Be Ok, Kotlin is Here – A detailed talk about how to use Kotlin for advanced cases and experiences of using it in production by Jake Wharton and Christina Lee
- 10 Kotlin Tricks in 10(ish) Minutes – Some useful tricks and tips by Jake Wharton
- Redux for Android using Kotlin – A detailed talk on how to take the Redux approach in your Android app using Kotlin by Nevin Chen
Take your Kotlin development skills with the real life experiences and handy tricks on the language and some frameworks.
- Why you Should Start using Kotlin to Supercharge your Android Development
- Why Kotlin?
- Why Kotlin is my next programming language
- Why you should totally switch to Kotlin
How to Kotlin?
- Keddit – Learn Kotlin while Developing an Android App
- The Wormhole Route to Android Coding using Kotlin
- Articles and Tutorials on Kotlin by Antonio Leiva
- Flux Android Architecture Components using Kotlin
- Zero boilerplate delegation in Kotlin
- 16 Kotlin Tips for Android Development
- How to remove all !! from your Kotlin code
- Some of my favorite Kotlin features (that we use a lot in Basecamp)
- Coding Functional Android Apps in Kotlin
- Mutable vals in Kotlin
- Musings on Kotlin Ranges
- The Ugly Truth about Extension Functions in Kotlin
- Not so Singletons in Kotlin
- Kotlin + RxJava = Functional Powerhouse
- Kotlin: The Good, The Bad, and The Ugly
- Kotlin – A deeper look
- Kotlin vs Java: Compilation speed
- How “Effective Java” may have influenced the design of Kotlin
- An in-depth look at Kotlin’s intializers
Experiences using Kotlin
- Lessons from converting an app to 100% Kotlin
- Kotlin – lesson learned from early adoption
- How we made Basecamp 3’s Android app 100% Kotlin
- How I feel in love with a programming language
- Kotlin makes me a happier (better) programmer
Assuming that you have either went through the articles and docs in the previous sections of this article or already have some prior knowledge of the language, these sample projects will help you dig deeper and see more usages of Kotlin without pulling out your hair.
- Keddit by Steps – Small Reddit Android client developed with Kotlin
- Getting Started with Kotlin – How to use Kotlin with popular Android libraries
- Kotlin MVP Architecture – Clean MVP Architecture with Dagger2 + Retrofit2 + Fresco + GenericRecyclerAdapter for Kotlin
- Kotlin MVP Example – A small client server app on Kotlin that is using MVP architecture
- Anko Example – A small application built with Anko DSL
- Kotlin Android Starter – Kotlin Android starter based MVP/Dagger2/RxJava2/Robolectric/Espresso/Mockito. It provides a generator to rapidly create a Kotlin Android project
- Clean Architecture Kotlin – This repository shows an implementation of clean architecture with Kotlin
- Kotlin Sample – Simple Android app written in Kotlin
- Simple Calendar – A simple calendar with events, customizable widget and no ads
- Kotlin Dagger Example – Example of Android project showing integration with Kotlin and Dagger 2
- Kotlin101 – 101 examples for Kotlin Programming Language
- Functional Android Reference – Showcase project of Functional Reactive Programming on Android, using RxJava
- Clean News – Hacker News client written with Clean Architecture and Redux
- Kotlin Coroutines – Design documents and examples for coroutines in Kotlin
- From Java to Kotlin – Your Cheat Sheet For Java To Kotlin
Now that you’re ready to supercharge your development using Kotlin, these libraries with help you save more development time and effort.
- Kotlin Android Template – An Android project template using Kotlin/MVP/ReactiveX. It provides a generator to rapidly create a Kotlin Android template project
- Anko – Pleasant Android application development by JetBrains
- Mystique – A generalized adapter for RecyclerView on Android which makes it easy to add heterogeneous items to a list
- AsyncAwait – async/await for Android built upon coroutines introduced in Kotlin 1.1
- RxKotlin – RxJava bindings for Kotlin
- Konfetti – Celebrate more with this lightweight confetti particle system
- Kodein – Painless Kotlin Dependency Injection
- Kapsule – Minimalist dependency injection library for Kotlin
- Spek – A specification framework for Kotlin
- Redux Kotlin – Predictable state container for Kotlin apps
- MaterialDrawerKt – A Kotlin DSL wrapper around the mikepenz/MaterialDrawer library
- Kotpref – Android SharedPreferences delegation library for Kotlin
- Kotlin Jetpack – A collection of useful extension methods for Android
- Anvil – Minimal UI library for Android inspired by React
- funKTionale – Functional constructs for Kotlin
- Mockito Kotlin – Using Mockito with Kotlin
- TimberKt – Easy Android logging with Kotlin and Timber
- Kotson – Kotlin bindings for JSON manipulation via Gson
- Exposed – Kotlin SQL Framework
- DBFlow – A blazing fast, powerful, and very simple ORM android database library that writes database code for you
- Result – The modeling for success/failure of operations in Kotlin
- Konsent – An acceptance test library for Kotlin
- PaperParcel – Auto-generate the fastest possible Parcelable implementations for Java and Kotlin
- Stepper-Touch – Stepper Touch for Android based on MaterialUp submission
- Bubble – Screen orientation detector for android
- KotliQuery – A handy Database access library in Kotlin
- Kotlin Monads – Monads for Kotlin
- Koda Time – Joda Time Extensions by Kotlin
- Kotlin Statistics – Idiomatic statistical operators for Kotlin
- Bubble Picker – An easy-to-use animation which can be used for content picking for Android
- SearchFilter – Implementing Search Filter Animation in Kotlin for Quora Meets LinkedIn, Our App Design Concept
- Multi-Selection – Multiselection Solution for Android in Kotlin
Add-ons for your IDE to make your Kotlin coding experience even better and ship products faster.
- Kotlin Android Extensions – A plugin to bind views easily without doing a lot of ceremonies
- Android Parcelable IntelliJ Plugin for Kotlin – An easy parcelable generator plugin for IntelliJ inspired by its Java counterpart
- Dokka – Documentation Engine for Kotlin
Other resources that don’t quite fit into a category but are useful to be aware of and use them as required.
- Kotlin Developers on LinkedIn – A group on LinkedIn where you can interact and share ideas with other Kotlin developers
- Talking Kotlin – A bimonthly podcast that covers the Kotlin programming language by JetBrains, as well as related technologies. Hosted by Hadi Hariri
- Kotlin on Stack Overflow – Find questions and answers related to Kotlin
- Kotlin on Reddit – A Reddit group devoted to all things Kotlin
I have tried to cover as many useful resources as I could to feature in this list. Nevertheless, I might have missed something wonderful. If you think you have something on your mind which deserves to be here, then do feel free to mention it here in the comments section and I will consider it for adding to the list.
As I have already said that this list is not final and it subject to change as new resources pop up. Be sure to save this link so that you can be aware of new additions and stay updated with the latest resources to help you out with your development.