Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more

Roman Belov

 

You can read this blog post in other languages:

 

Today we are releasing Kotlin 1.3 together with a set of accompanying libraries, build tools, and learning materials!

We develop Kotlin to be a good tool for all application developers, at all scales and on all platforms. In Kotlin 1.3 coroutines graduated to stable, making non-blocking code easy to read and write. Scalability has never been as approachable before! This release also brings Kotlin/Native Beta that compiles Kotlin code directly to native binaries. The multiplatform capabilities of Kotlin now cover all supported platforms so one can share business logic between such components as Android and iOS apps. Servers can share logic with web and mobile clients too, and multiplatform libraries make everyday tasks easily portable.

1_3_banner_dark

We’ll organize a series of webinars covering major features of 1.3. Subscribe here:

Community and Ecosystem

Kotlin has seen an unprecedented growth in adoption this year. Since January 2018, about 1.5 million users wrote Kotlin code, and this number has more than doubled since last year. The trends on StackOverflow and in our public Slack are also very encouraging. We are grateful to the Kotlin community for being supportive and welcoming!

We are happy to see the ecosystem around Kotlin grow and mature. Kotlin is friends with Google Cloud Platform, the Spring Framework and Gradle, not to mention the first-class support on Android. The open source community is creating excellent libraries such as RxKotlin, mockito-kotlin, TornadoFX, Kodein, and ΛRROW. And projects like Square’s Okio and LibreOffice are migrating to Kotlin or planning to do so. Everyone is welcome to join the Kotlin ecosystem with their great ideas and projects!

Many people outside JetBrains contributed to Kotlin 1.3 with pull requests, bug reports and all kinds of feedback. We appreciate your help a lot and are really happy to move Kotlin forward together!

Coroutines are now stable

Coroutines are a modern way to write non-blocking asynchronous code that’s easy to understand and evolve. It’s a powerful tool for anything from offloading work onto background workers to implementing complicated network protocols. The kotlinx.coroutines library hits 1.0 release and provides a solid foundation for managing asynchronous jobs at any scale including composition, cancelation, exception handling and UI-specific use cases.

Get started today at kotl.in/coroutines!
Subscribe to a Coroutines Webinar here

Kotlin/Native Beta

Kotlin/Native uses LLVM to compile Kotlin sources to standalone binaries (no VM required!) for various operating systems and CPU architectures including iOS, Linux, Windows, Mac and even WebAssembly and embedded systems like STM32. It features fully automatic memory management, can interoperate with C, Objective-C (and Swift), and exposes platform APIs such as Core Foundation, POSIX, and any native library you fancy!

The Kotlin/Native runtime promotes immutable data and prohibits any attempts of sharing unprotected mutable state between threads. In fact, threads don’t exist for Kotlin/Native, they are abstracted away as a low-level implementation detail and replaced by workers — a safe and manageable way of doing concurrency.

Discover Kotlin/Native at kotl.in/native.
Subscribe to a webinar here

Multiplatform projects and tooling

Working on all platforms is an explicit goal for Kotlin, but we see it as a premise to a much more important goal: sharing code between platforms. With support for JVM, Android, JavaScript, and Native, Kotlin can handle any and all components of a modern application. And this brings the invaluable benefit of reuse for code and expertise, saving the effort for tasks more challenging than implementing everything twice or multiple times. While multiplatform capabilities in Kotlin are still experimental, 1.3 makes a big step forward.

Kotlin 1.3 ships with a set of multiplatform libraries that cover everyday tasks such as HTTP, serialization and managing coroutines. The easiest way to write multiplatform code is to rely on such libraries. You can also create your own multiplatform libraries wrapping platform-specific dependencies into a common API.

Start sharing code across platforms now: kotl.in/multiplatform.
Subscribe to a webinar here

Tooling for Kotlin/Native and Multiplatform

Kotlin 1.3 features tooling support for Kotlin/Native and Multiplatform projects that’s available in IntelliJ IDEA Community Edition, IntelliJ IDEA Ultimate, and Android Studio. All code editing features such as error highlighting, code completion, navigation and refactoring are available in all the three IDEs. We’ll be working on more advanced features and integrations with commercial tooling.

Ktor 1.0 Beta

Ktor, our connected applications framework that implements the entire HTTP stack fully asynchronously using coroutines, has reached Beta and is available at ktor.io.

Other improvements

In addition to everything covered so far, this release comes with many other features and improvements, including:

See full description in our What’s New page. The changelog is available here. The compatibility guide is here.

KotlinConf

We’ve just published all the videos from KotlinConf 2018 covering the hottest topics of the 1.3 release. Check out the opening keynote and session recordings to deep dive on what’s new and noteworthy:

Watch more KotlinConf 2018 videos on JetBrains TV

Learning Kotlin

We do our best to make learning Kotlin easy and fun. Out of the numerous resources available, we’d like to highlight these:

  • A new course by Svetlana Isakova and Andrey Breslav is starting on Coursera
  • Atomic Kotlin, a book for beginners by Bruce Eckel and Svetlana Isakova is open for early access
  • The new play.kotl.in mini-web-IDE has Koans, Examples and embeddable code snippets
  • The EduTools plugin helps learn Kotlin right in the IDE
  • Certified Kotlin Training is available from multiple providers around the world

The Kotlin 1.3 webinars will be a great starting point for everyone.

How to upgrade

As always, you can try Kotlin online at play.kotl.in.

  • In Maven, Gradle and npm: Use 1.3.0 as the version number for the compiler and the standard library. See the docs here.
  • In IntelliJ IDEA: 2018.3 has Kotlin 1.3 bundled, in earlier versions Install or update the Kotlin plugin to version 1.3.
  • In Android Studio: Install or update the plugin through Plugin Manager.
  • In Eclipse: install the plugin using Marketplace.
  • The command-line compiler can be downloaded from the Github release page.

Let’s Kotlin!

P.S. You can discuss this post on Reddit and Hacker News or leave a comment below

Comments below can no longer be edited.

30 Responses to Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more

  1. SH says:

    October 29, 2018

    Does this mean you don’t need CLion for Kotlin/Native anymore?

    • Luca Spinazzola says:

      October 30, 2018

      Doesn’t look like IntelliJ supports directly running/debugging native kotlin programs… But neither does CLion with the multiplatform plugin … It even looks like they removed the super old konan plugin support from clion.

  2. alfalive says:

    October 29, 2018

    Still need CLion for Kotlin/Native … 🙁

    • alfalive says:

      October 29, 2018

      But we can use 2018.3 Beta 🙂

  3. Nick says:

    October 30, 2018

    SDK Man ( https://sdkman.io/install ) is missing from the “How to upgrade” list.

  4. Nick says:

    October 30, 2018

    Will there be Kotlin 1.3 webinar(s) that are synchronised with the NZDT, and the various AU timezones?

  5. Priya Sindkar says:

    October 30, 2018

    I updated Kotlin plugin to 1.3 in Android Studio 3.2 but still not able to access coroutine lambdas.. I am unable to understand why this I can’t access them. Does anyone know what setting I am missing?

    • alexeybelkov says:

      October 30, 2018

      Please read the migration guide here: https://github.com/Kotlin/kotlinx.coroutines/blob/master/COMPATIBILITY.md#migration-to-100-version-with-kotlin-13 If some questions still remain, the best place to ask is the #coroutines channel in our public Slack: http://slack.kotlinlang.org

      • Priya Sindkar says:

        October 30, 2018

        Got the issue I had. I was not using runBlocking while make coroutines calls! facepalm. Problem solved. Thanks..

        • Jolan says:

          October 30, 2018

          This was not needed before was it?
          So every time we want to do something asynchronously we need to do
          runBlocking {
          launch {
          doSomething()
          }
          }
          ?

    • Iven Krall says:

      October 31, 2018

      You will need the coroutine libraries org.jetbrains.kotlinx.kotlinx-coroutines-core and kotlinx-coroutines-android as they are not exactly part of the stdlid. Found myself in your position, too.

  6. Kotlin 1.3 正式发布:Coroutine 『毕业』、Kotlin/Native 达成 1.0 Beta 等 - Kotlin Blog says:

    October 31, 2018

    […] 翻译自:Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more […]

  7. Mobile Hackers says:

    November 2, 2018

    This release news is 2nd in the latest mobilehackers.io top mobile developer news !

    Congrats @kotlin dev team !

  8. Kotlin 1.3 正式发布 – xmamiga says:

    November 3, 2018

    […] 2018年10月29号,Kotlin 官方博客正式发布了 Kotlin 1.3,还附带了一些开源库、构建工具和学习资源。 […]

  9. Timothy S Hawkins says:

    November 5, 2018

    Are there any specific instructions for upgrading the kotlin-native suport inside CLion to version 1.3? I can only find mentions of kotlinJVM or KotlinJS.

  10. Junior says:

    November 6, 2018

    is there something similar to Blazor with kotlin?

  11. Kotlin 1.3 Released – Arvi Fox says:

    November 6, 2018

    […] Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more [https://blog.jetbrains.com/kotlin/2018/10/kotlin-1-3/] […]

  12. JetBrains объявила о релизе Kotlin версии 1.3 | Axoft says:

    November 7, 2018

    […] JetBrains объявила о релизе Kotlin версии 1.3. Разработчики стабилизировали […]

  13. Unfolding right now at #AndroidDevSummit! | Top 10 says:

    November 7, 2018

    […] week, JetBrains released the latest version of Kotlin, 1.3, which brings new language features, APIs, bug fixes, and performance […]

  14. Android Dev Summit’te tanıtılan yenilikler ve güncellemeler | SiberBulucu.Com says:

    November 8, 2018

    […] büyük bir çoğunluğu tarafından kullanılan Kotlin dili de yeni bir güncellemeye kavuştu. Kotlin 1.3 sürümüne göre yapılabileceklerden biraz […]

  15. Unfolding right now at #AndroidDevSummit! – bet365娱乐成21点 says:

    November 8, 2018

    […] week, JetBrains released the latest version of Kotlin, 1.3, which brings new language features, APIs, bug fixes, and performance […]

  16. Unfolding right now at #AndroidDevSummit! - 最新黑桃棋牌官方下载 says:

    November 8, 2018

    […] week, JetBrains released the latest version of Kotlin, 1.3, which brings new language features, APIs, bug fixes, and performance […]

  17. Unfolding right now at #AndroidDevSummit! | Just Wow Buy It says:

    November 13, 2018

    […] week, JetBrains released the latest version of Kotlin, 1.3, which brings new language features, APIs, bug fixes, and performance […]

  18. Часто задаваемые вопросы по Windows 10 IoT Enterprise 2019 | Axoft says:

    November 14, 2018

    […] JetBrains объявила о релизе Kotlin версии 1.3. Разработчики стабилизировали […]

  19. SolarWinds приобрела 8MAN, платформу управления правами доступа | Axoft says:

    November 16, 2018

    […] JetBrains объявила о релизе Kotlin версии 1.3. Разработчики стабилизировали […]

  20. Unfolding right now at #AndroidDevSummit! | Premium Blog! | Development code, Android, Ios anh Tranning IT says:

    November 19, 2018

    […] week, JetBrains released the latest version of Kotlin, 1.3, which brings new language features, APIs, bug fixes, and performance […]

  21. rad says:

    November 27, 2018

    Hi, Kotlin is nearly full platform language,
    Kotlin support jvm, android, native(iOS, windows, linux, Mac), and javascript, wasm, iot, DSL, gradle. kotlin is great, I think kotlin will be unique language which native support full platform.

    My question is :
       Can Kotlin support apple watchOS, tvOS which require bitcode support?
    

    thanks!