Stay organized with collections
Save and categorize content based on your preferences.
At Google I/O 2019, we announced that Android development will be
increasingly Kotlin-first, and we’ve stood by that commitment. Kotlin is an
expressive and concise programming language that reduces common code errors
and easily integrates into existing apps. If you’re looking to build an
Android app, we recommend starting with Kotlin to take advantage of its
best-in-class features.
In an effort to support Android development using Kotlin, we co-founded the
Kotlin Foundation
and have ongoing investments in improving compiler performance and build
speed. To learn more about Android's commitment to being Kotlin-first, see
Android's commitment to Kotlin.
Why is Android development Kotlin-first?
We reviewed feedback that came directly from developers at conferences, our
Customer Advisory Board (CAB), Google Developer Experts (GDE), and through
our developer research. Many developers already enjoy using Kotlin, and the
request for more Kotlin support was clear. Here’s what developers appreciate
about writing in Kotlin:
Expressive and concise: You can do more with less. Express your ideas
and reduce the amount of boilerplate code. 67% of professional developers who
use Kotlin say Kotlin has increased their productivity.
Safer code: Kotlin has many language features to help you avoid common
programming mistakes such as null pointer exceptions.
Android apps that contain Kotlin code are 20% less likely to crash.
Interoperable: Call Java-based code from Kotlin, or call Kotlin from
Java-based code. Kotlin is 100% interoperable with the Java programming
language, so you can have as little or as much of Kotlin in your project
as you want.
Structured Concurrency: Kotlin coroutines make asynchronous code as
easy to work with as blocking code. Coroutines dramatically simplify
background task management for everything from network calls to
accessing local data.
What does Kotlin-first mean?
When building new Android development tools and content, such as Jetpack
libraries, samples, documentation, and training content, we will design
them with Kotlin users in mind while continuing to provide support for
using our APIs from the Java programming language.
Java language
Kotlin
Platform SDK support
Yes
Yes
Android Studio support
Yes
Yes
Lint
Yes
Yes
Guided docs support
Yes
Yes
API docs support
Yes
Yes
AndroidX support
Yes
Yes
AndroidX Kotlin-specific APIs (KTX, coroutines, and so on)
Our engineers enjoy the language features Kotlin offers, and today over 70 of
Google's apps are built using Kotlin. This includes apps like Maps, Home, Play,
Drive, and Messages. One example of success comes from the
Google Home team, where migrating new feature
development to Kotlin resulted in a 33% reduction in codebase size and a 30%
reduction in the number of NPE crashes.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-06-27 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-06-27 UTC."],[],[],null,["# Android’s Kotlin-first approach\n\nAt Google I/O 2019, we announced that Android development will be\nincreasingly Kotlin-first, and we've stood by that commitment. Kotlin is an\nexpressive and concise programming language that reduces common code errors\nand easily integrates into existing apps. If you're looking to build an\nAndroid app, we recommend starting with Kotlin to take advantage of its\nbest-in-class features.\n\nIn an effort to support Android development using Kotlin, we co-founded the\n[Kotlin Foundation](https://kotlinlang.org/foundation/kotlin-foundation.html)\nand have ongoing investments in improving compiler performance and build\nspeed. To learn more about Android's commitment to being Kotlin-first, see\n[Android's commitment to Kotlin](https://android-developers.googleblog.com/2019/12/androids-commitment-to-kotlin.html).\n\nWhy is Android development Kotlin-first?\n----------------------------------------\n\nWe reviewed feedback that came directly from developers at conferences, our\nCustomer Advisory Board (CAB), Google Developer Experts (GDE), and through\nour developer research. Many developers already enjoy using Kotlin, and the\nrequest for more Kotlin support was clear. Here's what developers appreciate\nabout writing in Kotlin:\n\n- **Expressive and concise:** You can do more with less. Express your ideas and reduce the amount of boilerplate code. 67% of professional developers who use Kotlin say Kotlin has increased their productivity.\n- **Safer code:** Kotlin has many language features to help you avoid common programming mistakes such as null pointer exceptions. Android apps that contain Kotlin code are 20% less likely to crash.\n- **Interoperable:** Call Java-based code from Kotlin, or call Kotlin from Java-based code. Kotlin is 100% interoperable with the Java programming language, so you can have as little or as much of Kotlin in your project as you want.\n- **Structured Concurrency:** Kotlin coroutines make asynchronous code as easy to work with as blocking code. Coroutines dramatically simplify background task management for everything from network calls to accessing local data.\n\nWhat does Kotlin-first mean?\n----------------------------\n\nWhen building new Android development tools and content, such as Jetpack\nlibraries, samples, documentation, and training content, we will design\nthem with Kotlin users in mind while continuing to provide support for\nusing our APIs from the Java programming language.\n\n| | Java language | Kotlin |\n|------------------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------|\n| Platform SDK support | Yes | Yes |\n| Android Studio support | Yes | Yes |\n| Lint | Yes | Yes |\n| Guided docs support | Yes | Yes |\n| API docs support | Yes | Yes |\n| AndroidX support | Yes | Yes |\n| AndroidX Kotlin-specific APIs (KTX, coroutines, and so on) | N/A | Yes |\n| Online training | Best effort | Yes |\n| Samples | Best effort | Yes |\n| Multi-platform projects | No | Yes |\n| Jetpack Compose | No | Yes |\n| Compiler plugin support | No | Yes - The [Kotlin Symbol Processing API](https://github.com/google/ksp) was created by Google to develop lightweight compiler plugins. |\n\nWe use Kotlin, too!\n-------------------\n\nOur engineers enjoy the language features Kotlin offers, and today over 70 of\nGoogle's apps are built using Kotlin. This includes apps like Maps, Home, Play,\nDrive, and Messages. One example of success comes from the\n[Google Home team](/stories/apps/google-home), where migrating new feature\ndevelopment to Kotlin resulted in a 33% reduction in codebase size and a 30%\nreduction in the number of NPE crashes.\n\nTo learn more about Kotlin on Android, see the\n[Kotlin on Android FAQ](/kotlin/faq)."]]