Here's a list of additional learning resources that can help you learn to
do even more with Kotlin.

## Sites

- [kotlinlang.org](https://kotlinlang.org) - The JetBrains site for all things Kotlin.
- [Kotlin Symbol Processing API](https://github.com/google/ksp) - Kotlin Symbol Processing (KSP) is an API that you can use to develop lightweight compiler plugins.

## Samples

- [Sunflower](https://github.com/android/sunflower): Sunflower is a gardening app that illustrates Android development best practices with Android Jetpack.
- [Google I/O Android app](https://github.com/google/iosched): iosched is the official Android app for Google I/O
- [Plaid](https://github.com/android/plaid): Plaid is an Android app that provides design news and inspiration while also illustrating material design best practices.

## Pathways

- [Learn Kotlin coroutines](https://developer.android.com/kotlin/coroutines/coroutines-pathway): This pathway contains a series of codelabs and articles that teach you all about Kotlin coroutines.

## Codelabs

- [Coroutines codelab](https://developer.android.com/codelabs/kotlin-coroutines): This codelab shows you how to use Kotlin coroutines to manage background threads and simplify your async code.
- [Building a Kotlin extensions library](https://developer.android.com/codelabs/building-kotlin-extensions-library): Learn how to build a Kotlin extensions library that adds coroutines and Flow support to existing classes.
- [Advanced Coroutines with Kotlin Flow and LiveData](https://developer.android.com/codelabs/advanced-kotlin-coroutines): Learn how to use Kotlin coroutines with LiveData and Flow in an Android app.

## Videos

- ['Kotlin on Android' YouTube search](https://www.youtube.com/results?search_query=Kotlin+on+Android): This link contains a list of Kotlin-related YouTube videos.
- [What's New in Kotlin on Android, 2 Years In](https://www.youtube.com/watch?v=ldM6QZy9e0s): This talk from Google I/O 2019 examines Android's increasing support for Kotlin.
- [How to Kotlin - from the Lead Kotlin Language Designer](https://www.youtube.com/watch?v=6P20npkvcb8): This Google I/O 2018 talk highlights how to write more idiomatic Kotlin.
- [Coroutines: Gotta catch 'em all](https://www.youtube.com/watch?v=w0kfnydnFWI): Learn best practices for handling cancellation and exceptions in Kotlin coroutines.
- [Shaping Your App's Architecture with Kotlin and Architecture Components](https://www.youtube.com/watch?v=Sy6ZdgqrQp0): This video from KotlinConf 2018 covers the architecture lessons learned while converting Plaid to Kotlin and integrating Jetpack Architecture Components.
- [Android Jetpack ❤️ Kotlin: On the road to more wholesome APIs](https://www.youtube.com/watch?v=TLksQq8T5v4): This KotlinConf 2019 talk provides info about the state of Kotlin on Android and gives you a glimpse into the future of what app development with Android Jetpack looks like.
- [Understand Kotlin Coroutines on Android](https://www.youtube.com/watch?v=BOHK_w09pVA): This Google I/O 2019 talk gives an overview of using Kotlin coroutines on Android.
- [LiveData with Coroutines and Flow](https://www.youtube.com/watch?v=B8ppnjGPAGE): This talk from the 2019 Android Dev Summit covers the `liveData` coroutine builder, showing when and how to use it along with testing patterns and antipatterns to make clean, efficient, and solid reactive UIs.
- [#AskAndroid at Android Dev Summit 2019 - Kotlin \& Coroutines on Android](https://www.youtube.com/watch?v=zbYYoL7vo9Y): This session from the 2019 Android Dev Summit answers Kotlin and coroutines-related questions submitted online by Android developers.

## Articles and blog posts

- [Lessons learnt using Coroutines Flow in the Android Dev Summit 2019 app](https://medium.com/androiddevelopers/lessons-learnt-using-coroutines-flow-4a6b285c0d06): This article highlights best practices and other lessons learned when adding Flow support to the Android Dev Summit 2019 app.
- [Dagger in Kotlin](https://medium.com/androiddevelopers/dagger-in-kotlin-gotchas-and-optimizations-7446d8dfd7dc): This article describes best practices and things to watch for when using Dagger in a Kotlin app.
- [Easy coroutines in Android: viewModelScope](https://medium.com/androiddevelopers/easy-coroutines-in-android-viewmodelscope-25bffb605471): This article describes viewModelScope, an extension property that adds coroutines support to the `ViewModel` class.
- [Coroutines in Android (series - 1st article linked)](https://medium.com/androiddevelopers/coroutines-on-android-part-i-getting-the-background-3e0e54d20bb): This post is the first in a series that teaches you about Kotlin coroutines.
- [Kotlin Vocabulary: typealias](https://medium.com/androiddevelopers/alter-type-with-typealias-4c03302fbe43?source=collection_home---4---2---): This post discusses typealias, a Kotlin keyword that lets you provide an alternate name for an existing type without introducing a new type.
- [Kotlin Vocabulary: inline classes](https://medium.com/androiddevelopers/zero-cost-abstractions-in-kotlin-19b953f3a936): This post introduces inline classes, a way to ensure type-safety without performance cost.
- [Suspending over Views](https://medium.com/androiddevelopers/suspending-over-views-19de9ebd7020): This post talks about how coroutines can make UI programming easier.
- [Collections and sequences in Kotlin](https://medium.com/androiddevelopers/collections-and-sequences-in-kotlin-55db18283aca): This post shows how collections and sequences work in Kotlin.

## Social Channels

- [Kotlin community](https://kotlinlang.org/community): This kotlinlang.org page lists additional Kotlin-focused events and groups.
- [Kotlin on Slack](https://slack.kotlinlang.org): Use this link to sign up for the Kotlin Slack channel, where you can discuss all things Kotlin with other enthusiasts.
- [Talking Kotlin](http://talkingkotlin.com): Bi-monthly podcast with a focus on the Kotlin language.
- [Kotlin on Twitter](https://twitter.com/kotlin): This is the official Twitter account for Kotlin.

## Books

- [Android development with Kotlin](https://www.packtpub.com/application-development/android-development-kotlin): Learn how to make Android development much faster using a variety of Kotlin features, from basics to advanced, to write better quality code.
- [Kotlin for Android developers](https://leanpub.com/kotlin-for-android-developers): One of the first books about Kotlin, this book shows existing Android developers how to write their app in Kotlin.