Kotlin is a modern but already mature programming language aimed to make developers happier. It’s concise, safe, interoperable with Java and other languages, and provides many ways to reuse code between multiple platforms for productive programming.
Pick it up to start building powerful applications!
- If you're already familiar with one or more programming languages and want to learn Kotlin, start with these Kotlin learning materials.
- If Kotlin is your first programming language, we recommend starting with the Atomic Kotlin book or signing up for the free Kotlin Basics track on JetBrains Academy.
Here is how you can take the first steps in developing Kotlin server-side applications.
-
Install the latest version of IntelliJ IDEA.
-
Create your first backend application:
- To start from scratch, create a basic JVM application with the IntelliJ IDEA project wizard.
- If you prefer more robust examples, choose one of the frameworks below and create a project:
Spring Ktor A mature family of frameworks with an established ecosystem that is used by millions of developers worldwide.
A lightweight framework for those who value freedom in making architectural decisions. -
Use Kotlin and third-party libraries in your application. Learn more about adding library and tool dependencies to your project.
- The Kotlin standard library offers a lot of useful things such as collections or coroutines.
- Take a look at the following third-party frameworks, libs and tools for Kotlin.
-
Learn more about Kotlin for server-side:
-
Join the Kotlin server-side community:
- {width=25}{type="joined"} Slack: get an invite and join the #getting-started, #server, #spring, or #ktor channels.
- {width=25}{type="joined"} StackOverflow: subscribe to the “kotlin”, "spring-kotlin", or "ktor" tags.
-
Follow Kotlin on {width=25}{type="joined"} Twitter, {width=25}{type="joined"} Reddit, and {width=25}{type="joined"} Youtube, and don't miss any important ecosystem updates.
If you've encountered any difficulties or problems, report an issue to our issue tracker.
Here you'll learn how to develop and improve your cross-platform mobile application using Kotlin Multiplatform Mobile.
-
Set up your environment for cross-platform mobile development.
-
Create your first application for iOS and Android:
- To start from scratch, create a basic cross-platform mobile application with the project wizard.
- If you have an existing Android application and want to make it cross-platform, complete the Make your Android application work on iOS tutorial.
- If you prefer real-life examples, clone and play with an existing project, for example the networking and data storage project from the hands-on tutorial or any sample project.
-
Use a wide set of multiplatform libraries to implement the required business logic only once in the shared module. Learn more about adding dependencies.
Library Details Ktor Docs. Serialization Docs and sample. Coroutines Docs and sample. DateTime Docs. SQLDelight Third-party library. Docs. You can also find a multiplatform library in the community-driven list.
{type="tip"}
-
Learn more about Kotlin Multiplatform Mobile:
- Learn more about Kotlin Multiplatform.
- Look through samples on GitHub.
- Create and publish a multiplatform library.
- Learn how Kotlin Multiplatform is used at Netflix, VMware, Yandex, and many other companies.
-
Join the Kotlin Multiplatform community:
- {width=25}{type="joined"} Slack: get an invite and join the #getting-started and #multiplatform channels.
- {width=25}{type="joined"} StackOverflow: Subscribe to the “kotlin-multiplatform” tag.
-
Follow Kotlin on {width=25}{type="joined"} Twitter, {width=25}{type="joined"} Reddit, and {width=25}{type="joined"} Youtube, and don't miss any important ecosystem updates.
If you've encountered any difficulties or problems, report an issue to our issue tracker.
Kotlin provides an ability to transpile your Kotlin code, the Kotlin standard library, and any compatible dependencies to JavaScript.
Here you'll learn how to develop and improve your frontend web application using Kotlin/JS.
-
Install the latest version of IntelliJ IDEA.
-
Create your first frontend web application:
- To start from scratch, create a basic browser application with the IntelliJ IDEA project wizard.
- If you prefer more robust examples, complete the Build a web application with React and Kotlin/JS tutorial. It includes a sample project that can serve as a good starting point for your own projects, and contains useful snippets and templates.
- Check out the list of Kotlin/JS samples for more ideas on how to use Kotlin/JS.
-
Use libraries in your application. Learn more about adding dependencies.
Library Details stdlib The Kotlin standard library included in all projects by default. kotlinx.browser The Kotlin library for accessing browser-specific functionality, including typical top-level objects such as document and window. kotlinx.html The Kotlin library for generating DOM elements using statically-typed HTML builders. Ktor The Kotlin multiplatform library for networking. KVision A third-party object-oriented web framework for Kotlin/JS. fritz2 A third-party lightweight, high-performance, independent library for building reactive web apps in Kotlin that are heavily dependent on coroutines and flows. Doodle A third-party vector-based UI framework that uses browser's capabilities to draw user interfaces. Compose for Web, a part of Compose Multiplatform The JetBrains framework that brings Google's Jetpack Compose UI toolkit to the browser. kotlin-wrappers Provide convenient abstractions and deep integrations for one of the most popular JavaScript frameworks. Kotlin wrappers also provide support for a number of adjacent technologies like react-redux
,react-router
, orstyled-components
. -
Learn more about Kotlin for frontend web development:
- The new Kotlin/JS IR compiler (currently with Beta stability).
- Using dependencies from npm.
- Using Kotlin code from JavaScript.
-
Join the Kotlin frontend web community:
- {width=25}{type="joined"} Slack: get an invite and join the #getting-started and #javascript channels.
- {width=25}{type="joined"} StackOverflow: subscribe to the “kotlin-js” tag.
-
Follow Kotlin on {width=25}{type="joined"} Twitter, {width=25}{type="joined"} Reddit, and {width=25}{type="joined"} Youtube, and don't miss any important ecosystem updates.
If you've encountered any difficulties or problems, report an issue to our issue tracker.
-
If you want to start using Kotlin for Android development, read Google’s recommendation for getting started with Kotlin on Android.
-
If you're new to Android and want to learn to create applications with Kotlin, check out this Udacity course.
Follow Kotlin on {width=25}{type="joined"} Twitter, {width=25}{type="joined"} Reddit, and {width=25}{type="joined"} Youtube, and don't miss any important ecosystem updates.
Support for multiplatform programming is one of Kotlin’s key benefits. It reduces time spent writing and maintaining the same code for different platforms while retaining the flexibility and benefits of native programming.
Here you'll learn how to develop and publish a multiplatform library:
-
Install the latest version of IntelliJ IDEA.
-
Create a multiplaform library:
- Complete the Create and publish a multiplatform library tutorial. It shows how to create a multiplatform library for JVM, JS, and Native platforms, test it and publish to a local Maven repository.
- Build a full stack web application using this hands-on.
-
Use libraries in your application. Learn more about adding dependencies on libraries.
Library Details Ktor Docs and sample. Serialization Docs and sample. Coroutines Docs. DateTime Docs. You can also find a multiplatform library in the community-driven list.
{type="tip"}
-
Learn more about Kotlin Multiplatform programming:
-
Join the Kotlin Multiplatform community:
- {width=25}{type="joined"} Slack: get an invite and join the #getting-started and #multiplatform channels.
- {width=25}{type="joined"} StackOverflow: Subscribe to the “kotlin-multiplatform” tag.
-
Follow Kotlin on {width=25}{type="joined"} Twitter, {width=25}{type="joined"} Reddit, and {width=25}{type="joined"} Youtube, and don't miss any important ecosystem updates.
If you've encountered any difficulties or problems, report an issue to our issue tracker.
If anything is missing or seems confusing on this page, please share your feedback.