Kotlin Multiplatform Mobile Docs Help

What's new in Kotlin for KMM

KMM is part of the larger Kotlin ecosystem and leverages Kotlin features and improvements for a better mobile developer experience. Every Kotlin release brings features and improvements that are helpful for mobile developers like you.

Android Studio will recommend an automatic update to a new Kotlin release. You can also update manually.

Here you can find a short summary of the features Kotlin provides for developing multiplatform mobile applications.

Kotlin 1.5.0 for KMM

Kotlin 1.5.0 introduces a number of improvements and features that are helpful for KMM:

  • Simplified test dependency selection for each platform. Now you can use the kotlin-test dependency to add dependencies for testing in the commonTest source set. The Gradle plugin will infer the corresponding platform dependencies for each test source set:

    • kotlin-test-junit for JVM source sets.

    • kotlin-test-common and kotlin-test-annotations-common for common source sets.

    iOS source sets use Kotlin/Native, which has everything built in, so they do not require any additional artifacts.

    You can also use the kotlin-test dependency in any shared or platform-specific source set. Learn more about setting dependencies on test libraries.

  • New API for getting a char’s Unicode category. A variety of new character-related functions are available on all platforms and in the common code. They include several functions for checking whether a char is a letter or a digit, like Char.isLetterOrDigit(), as well as functions for checking the case of a char, like Char.isUpperCase(). The property Char.category and the enum class CharCategory are available, as well.
    Learn more about this new API.

  • Improved Kotlin/Native performance and stability. Kotlin/Native is receiving a set of performance improvements that speed up both compilation and execution.
    Learn more about the Kotlin/Native improvements.

Learn more about what's new in Kotlin 1.5.0.

Kotlin 1.4.30 for KMM

Kotlin 1.4.30 introduces a number of improvements that are helpful for KMM:

  • Improved compilation time for an iOS simulator. Recompiling binaries for the iOS simulator after making changes in the code now requires much less time. You can see the most significant improvements when re-running unit tests or applications on the iOS simulator. For example, the time required to rebuild the framework in the KMM Networking and data storage sample has decreased from 9.5 seconds (in 1.4.10) to 4.5 seconds (in 1.4.30).
    These optimizations affect other scenarios as well.

  • Support for libraries delivered in Xcode 12.2.

  • Support for the new watchosX64 target in Kotlin/Native. This target makes it possible to run the simulator on 64-bit architecture.

Learn more about what's new in Kotlin 1.4.30.

Kotlin 1.4.20 for KMM

Kotlin 1.4.20 introduces a number of features, improvements, and bug fixes that are helpful for KMM:

  • CocoaPods plugin improvements:

    • Rebuilding dependencies only when necessary.

    • Ability to add dependencies on libraries from a custom spec repository, Git repository, or archive, as well as on libraries with custom cinterop options.
      Learn more about adding CocoaPods dependencies and these improvements.

  • Support for libraries delivered in Xcode 12.

  • Escape analysis for Kotlin/Native. A prototype of a new mechanism that gives a 10% iOS runtime performance improvement by allocating certain objects on the stack instead of the heap.

  • Opt-in wrapping of Objective-C exceptions in runtime to avoid crashes. Learn how to opt in.

  • Updated structure of multiplatform library publications. The library root publication, which stands for the whole library, now includes metadata artifacts. These were published separately in earlier Kotlin versions.
    For compatibility, both multiplatform library authors and users must update to Kotlin 1.4.20. Learn more about publishing a multiplatform library.

  • Deprecation of the Kotlin Android Extensions plugin. The Parcelable implementation generator has been moved to a separate kotlin-parcelize plugin.

Learn more about what's new in Kotlin 1.4.20.

Last modified: 05 May 2021