🥳 Kotlin 1.4 is released!
It brings the speed and quality improvements that were frequently requested by the community. On top of that, you can check out SAM interfaces, along with other exciting features!
Try the new Kotlin 1.4. Details here ➡️
📢 Case studies from AWS, Atlassian, Shazam, and other industry-leading companies can now all be found on the server-side web page.
Check out the first 16 stories 📒 🎙️ 🎥
Kotlin is turning 10! 🎉
It’s been almost 10 years since Kotlin was announced. None of the steps we’ve taken would have happened without you! We want to know how it has affected your life – share your story with the hashtag
#10yearsofKotlin
!
Details ⬇️
🥳🥳🥳 The new Kotlin Multiplatform Mobile is here!
It is a smart solution to the longstanding problem of having to write the same code for a project twice, once for iOS and once Android.
Enjoy the natural way to share code between mobile platforms.
🥳We just published Compose for Desktop Milestone 1!
It provides a declarative & reactive way to create desktop user interfaces with pure Kotlin, and you can even share your UI with
@AndroidDev
!
Read about it, try it & go build some desktop UIs!🛠️🖥️
If you are using the isBlank() or isEmpty() methods to assign default strings, consider using their ifBlank and ifEmpty counterparts instead. They are designed to make exactly this use-case more concise and to avoid repetition.
🎉🎉🎉 Kotlin has started 2023 off with an exciting new achievement: it is the primary language in 1 million open-source GitHub repositories!
Congratulations to the whole community, and thank you for loving Kotlin! 💜
🎉 Starting today,
@Google
officially supports Kotlin Multiplatform by
@JetBrains
for sharing business logic across mobile, web, server, and desktop! Enjoy first-class tooling and library support for KMP on Android.
A new era of KMP begins, and we’re thrilled to join it!
Kotlin Multiplatform will boost your productivity by sharing business logic across mobile, web, server, and desktop.
Jetpack libraries like DataStore and Room already support KMP with more to come! →
#GoogleIO
📢 Kotlin 1.5.0 Is Out!
🏁 Stable language features
💼 Many standard and test library improvements
⚙️ New default JVM IR compiler
Read more in the blog post!
Welcome Ktor 1.0, a connected applications framework built by the Kotlin team! Create asynchronous, high-performing, and lightweight web servers and build non-blocking multiplatform web clients, all in one language with idiomatic APIs.
🥳 Kotlin 1.0 was released 7 years ago!
Since then, it's evolved from a Java alternative to an ecosystem that allows writing code for server-side, mobile, frontend, data science, and more.
Concise. Cross-platform. Fun. 💜
When and why did you start using Kotlin?
New in Kotlin 1.3: Use the Trace Current Stream Chain button on a sequence chained call in the debugger to visually inspect the contents of the sequence at each step of evaluation.
Kotlin 1.2.20 is out!
• Support for Gradle build cache
• Improved incremental compilation for Android and Kotlin/Java projects
• IDE support for the new Kotlin style guide
• Inlay hints in the editor for receivers and values returned from lambdas
📢
@netflix
Android and iOS apps are now powered by
#KMM
! 😎
Learn how KMM helps tech giant Netflix optimize product reliability and speed of delivery, crucial for serving their customers' constantly evolving needs! ⬇️
🎂
Happy Birthday, Kotlin!
10 years ago today Kotlin was announced publicly for the first time.
In the coming weeks, we’ll unveil a documentary about the language and a web page with exciting Kotlin stories.
Share your story with the hashtag
#10yearsofKotlin
!
Kotlin 1.3.20 is here!
• Building multiplatform projects with Gradle Kotlin DSL
• Shorter build time for Kotlin/JS with incremental compilation
• Faster Gradle builds with parallel task execution
• Code contracts in Kotlin/Native
and more:
👩💻 Why do companies choose Kotlin for server-side?
🌍 What are the advantages of learning Kotlin and adopting its ecosystem?
✅ Read our latest blog post or watch the video to find out:
We’re happy to announce the release of Kotlin 1.3.60! It introduces Kotlin Worksheets, many quality and tooling improvements, support for the new Kotlin/Native targets, a sneak preview into Kotlin 1.4, and more.
Kotlin 1.3.40 released! typeOf() for reified type reflection, compile-time trimIndent, and trimMargin, external annotations in IDE, combined test report for multiplatform projects, new Gradle plugin for Kotlin/JS, faster Kotlin/Native memory management
Have you been suspending your learning of coroutines and channels because you didn’t know where to start? Get asynchronous clarity with our new hands-on lab:
We’re happy to announce the release of
#Kotlin
1.3.50 with quality and tooling improvements, Duration and Time measurement API preview, IntelliJ IDEA Ultimate Kotlin/Native debugging plugin, and other updates: 🎉
Use trailing commas to keep the version control history clear. When you add a new function or class parameter, the previous line remains unchanged since it already contains the comma.
#KotlinTips
📣 📣 📣 Great news! We have started a YouTube channel!
The first videos have been published and soon there will be much more video content about Kotlin.
✅ Subscribe to Kotlin by JetBrains to stay updated!
➡️ ➡️ ➡️
🚀Kotlin Multiplatform is Stable in Kotlin 1.9.20 and production-ready!
Learn about the evolution of KMP and what the Stable version brings. Discover how it can streamline your development process, and explore new learning resources to get started quickly:
📣 Update on the name of Kotlin Multiplatform
From now on, “Kotlin Multiplatform” (KMP) is the preferred term when referring to the Kotlin technology for sharing code, regardless of the combination of platforms being discussed.
We are deprecating the “Kotlin Multiplatform
The 'joinToString' extension function provides a rich set of options for transforming iterables into strings: Separators, prefix and postfix, limiting, and even the possibility to specify a lambda for transforming individual objects to their text representation!
#KotlinTips
Comparing two strings irrespective of their capitalization? Don’t create new strings with toLower() to compare them. Instead, use equals(), which has an option to ignore case when comparing two strings. This way you won’t have to allocate any extra strings to do the comparison.
Kotlin 1.6.0 has been released 🚀
Highlights include:
🐴 Stable exhaustive whens.
⛺ Kover, a new code coverage tool.
🧠 An experimental new memory manager for Kotlin/Native.
Learn about these and lots of other new features in the blog post 👇
📣 Kotlin Multiplatform Mobile has reached Beta and is on track to becoming Stable!
Check out a video made by the Kotlin team with some early Multiplatform Mobile adopters, get hands-on experience through a new series of webinars, and start using it today!
On a map, use 'withDefault' to get a wrapper that obtains a default value when using 'getValue' on a key that is not present. Note that this does not change the behavior of the indexed access operator x[idx] / x.get(idx)!
#KotlinTips
Join the Kotlin 1.4 Online Event and meet the team! 🎉
Four days of diving deep into the technologies behind Kotlin’s latest release, with plenty of opportunities for discussion with the team in Q&A sessions and 1-to-1 booths.
More details:
📣 The Kotlin 1.9.20 release is out, the K2 compiler for all the targets is now in Beta, and Kotlin Multiplatform is now Stable. Highlights include:
✅ K2 is now in Beta for all the targets
✅ Stable Kotlin Multiplatform
✅ New default hierarchy template for setting up
Join us in our Virtual Booth at the Kotlin 1.4 Online Event to meet and chat 1-on-1 with the Kotlin team!
You really can ask us anything, just indicate that you want a session with us when you register 🙂
➡️
We’ve just released Kotlin 1.3.70! Learn all about the new experimental functionality in the standard library and other improvements in our latest blog post
Ktor 1.0 Beta is here! Ktor, made by the Kotlin team, is a framework for building asynchronous servers and multiplatform clients in Kotlin. Ktor is built with coroutines and delivers high performance and an idiomatic API. Learn more and get started at
It is
#KMMnews
time!
We are approaching the final stages of the new Kotlin Multiplatform Mobile release. It will have many cool features for making it fun to build apps with a shared codebase!
We are also about to launch a dev portal to support this release.
Stay Kotlin!
Use ‘it’ only in the simplest scenarios, when its type is clear from the context. Otherwise, introduce an explicit lambda parameter or use member references. It’s especially important for call chains where the lambda parameter type changes from one call to the next
#KotlinTips
Kotlin 1.4-M1 is now available: with new language features, a more powerful type inference algorithm, and other niceties. Please give it a try and share your feedback with us!
Kotlin 1.4.0 Release Candidate is here!
- Improved IDE support for the Gradle Kotlin DSL
- Standard library as a default dependency
- Simplified management for CocoaPods dependencies
- And more
Check out the blog post for more details:
Introducing the first public preview of the experimental Kotlin Notebook plugin for IntelliJ IDEA! Now you can explore, prototype, visualize, and document your code – all in the same environment. Watch the video for a glimpse of how it works, or check out the blog post for the
Use the partition function to split a collection into two lists based on a predicate. The function returns a pair of lists:
the first contains all elements for which the predicate evaluates to true;
the second contains all the other elements.
#KotlinTips
🥳 We’re thrilled to introduce Kotlin 2.0 with the stable K2 compiler. It’s fast, smart, and multiplatform, significantly boosting your daily productivity.
🌐 Multiplatform from the ground up.
🚀 Double the compilation speed.
🛠️ Enhanced code analysis.
📢 KOTLIN ROADMAP UPDATE: Get ready for the upcoming improvements!
Kotlin 2.0 with a Stable K2 Compiler is on the horizon!
The K2 compiler aims to bring major performance improvements, speed up new language feature development, and provide a better architecture for multiplatform
🎨 Compose Multiplatform 1.0. is live! Kotlin now has a production-ready, declarative, multiplatform UI framework. UI development in Kotlin becomes a pleasure.
👀 Learn more and try it today!
Kotlin 1.2.40 is here!
• Now platform modules can have more than one expectedBy dependency
• Support for crossinline suspend parameters in inline functions
•
@JvmDefault
annotation that makes interface methods default in Java
We've released Kotlin 1.4-M3!
Check out the blog post, where we guide you through the updates to the standard library. We look forward to your feedback.
We have just launched our new Kotlin Server page. You'll find the frameworks, tools, use cases, tutorials, and more there!
Check it out and share it with your friends
Working with large numbers? You can use an underscore as a thousands separator, and make it easier to spot how many digits a number actually has.
#KotlinTips
We’re happy to announce the release of Kotlin 1.3.30, a new bug fix and tooling update for Kotlin 1.3. The main areas of focus for this release have been around Kotlin/Native, KAPT performance, as well as improvements for IntelliJ IDEA.
Kotlin 1.2.60 is out! Optional expectation for annotations, support for building multiplatform projects in IntelliJ IDEA, experimental faster kapt implementation, and more:
Kotlin 1.4-M2 is released 🎉 with a new portion of features for you to preview:
- Improved code sharing in multiplatform projects
- New flexible project wizard
- Explicit API mode for libraries
We look forward to your feedback!
Kotlin 1.2.30 is out!
• A new declaration in the standard library, which imitates the suspend modifier for lambda expressions
• Support for TestNG in kotlin.test
• Support for Android modules in multiplatform projects
and a lot more:
New Project Lead for Kotlin
@abreslav
is stepping down as the Project Lead for Kotlin,
@relizarov
is the new Project Lead.
Read the details in the latest Andrey’s blog post.
When working with multiple lists, evaluate whether set operations like union, intersect, or subtract can help solve your task quickly, rather than relying on filters. They are available as extension and infix functions on Sets, Lists, and more.
#KotlinTips
Starting with 1.4, a property can delegate its getter and setter to another property. To rename a property in a backward-compatible way, introduce a new property, annotate the old one with a
@Deprecated
annotation, and delegate its implementation.
Variable destructuring can simplify working with regular expressions: use the destructured function to turn capture groups from a regular expression (denoted by parentheses) into components that can be used in a destructuring assignment.
#KotlinTips
1.4.20 is released!
✅ Supporting new JVM features, like string concatenation via invokedynamic.
✅ Improved performance and exception handling for KMM projects.
✅ Extensions for JDK Path: Path("dir") / "file.txt".
Check out the blog post for more ⬇️
Kotlin 1.3-M1, first preview of 1.3, is out! Coroutines are graduating to stable, variable for 'when' subject, experimental unsigned arithmetic and inline classes, multiplatform random number generator, and more:
kotlinx.serialization reaches 1.0 🥳
Read all about the stable release of our multiplatform serialization library, learn about what makes it unique, and find out how it can make your job easier – whether you are a mobile, server-side or frontend developer!
🌈 Kotlin 2.0 is almost here! There’s less than 48 hours to go. Get ready for smarter and faster development with an even smoother multiplatform experience.
Tune in to the opening keynote, live from KotlinConf:
📆 May 23
⏱️ 9:00 am CET
🔗
🌐 Jetpack Compose advances to the browser! Our newest technology preview brings Google’s toolkit for building reactive user interfaces with Kotlin to the web.
Take a look, and learn all about the first preview version of Jetpack Compose for Web!
Kotlin 1.2.70 is Here!
• improved incremental compilation for Kotlin/JS
• native binaries built with Excelsior JET for the standalone Kotlin compiler
• new refactorings and inspections
Read more here:
To write typesafe HTML directly inside your Kotlin code, use the kotlinx.html library. This is especially useful when building apps for the browser using Kotlin/JS!
#KotlinTips
Kotlin 1.4.30 is available! 🎊
✅ New JVM backend, now in Beta
✅ Preview of new language features
✅ Improved Kotlin/Native performance
✅ Standard library API improvements
Check out the blog post for details ➡️
🎉 Welcome Kotlin Multiplatform in
@JetBrains_Fleet
🎉
The new tooling allows you to streamline the development of multiplatform apps in a single IDE, making the process simple and enjoyable. Features include:
🌟 Simplicity: Auto-generated Run Configurations for Android and/or
kotlinx.serialization is Kotlin’s solution for data serialization. It supports JSON, CBOR and Protobuf, works on JVM, JS and Native, and is powered by a compiler plugin (so it doesn’t use reflection).
📢 The Kotlin 1.9.0 release is out and the K2 compiler for the JVM is now in Beta. This release contains new language features as well as improvements for Kotlin Multiplatform and Kotlin/Native. Here are some highlights from this release:
✅ New Kotlin K2 compiler updates
✅