Developer Advocate at JetBrains
The new AWS SDK for Kotlin with Coroutines support
The new AWS SDK for Kotlin was announced at AWS re:Invent in December 2021. Using the SDK, you can build Kotlin applications that work with Amazon S3, Amazon EC2, DynamoDB, and more. The SDK is currently in preview and is expected to become stable soon. The SDK was designed from the ground up to support the Kotlin language and its best practices, providing Kotlin developers with a familiar and
Advent of Code 2021 in Kotlin, Day 1
In this post, I’m going to walk you through my solution to the Advent of Code 2021 Day 1 task. Of course, I used Kotlin to solve it! https://www.youtube.com/embed/76IzmtOyiHw The input for the task is a text file, where each line is a number that represents a measurement of the depth of the seafloor. The task is to count the number of measurements where the depth increases. For examp
Idiomatic Kotlin: Solving Advent of Code Puzzles, Set Operations
Grouping and counting the characters in strings and collections is a very typical task given in coding interviews. Usually, the solutions for such tasks are quite simple. In this blog post, we learn about a few useful functions in Kotlin that make set operations really simple. The task: custom customs The task for the Advent of Code Day 6 challenge requires us to count the answers on cus
Useful Kotlin Idioms You Should Know
Kotlin was designed to be very similar to Java to make migration as smooth as possible. However, Kotlin was also designed to improve the developers' experience by providing a more expressive syntax and a more sophisticated type system. To take full advantage of the language and write more concise code, learning Kotlin idioms is a must. Without them, it is easy to fall back into old Java patterns.
Kotlin Coroutines 1.5: GlobalScope Marked as Delicate, Refined Channels API, and More
Kotlin Coroutines 1.5.0 delivers GlobalScope that is now marked as a delicate API, extensions for JUnit, the refined Channel API, and stabilized reactive integrations.
Expedia Group Case Study: Bootiful APIs With GraphQL and Kotlin
Expedia adopted Kotlin because of its null-safety compiler guarantees, the conciseness of the language, and its full Java interoperability. Interoperability with Java made a gradual Kotlin integration possible without having to fully rewrite applications.
GitLive Case Study: Kotlin Multiplatform Across Desktop and Mobile
GitLive uses Kotlin Multiplatform to share code between IDE plugins (for all JetBrains IDEs and VSCode), as well as soon-to-be-released mobile applications for iOS and Android. A team of 5 working on the project have written over 12k lines of Kotlin code as a shared library used by 4 different platforms: Android, iOS, JVM and Node.JS. This shared library represents 75-85% of the total code written
Server-Side Development with Kotlin: Frameworks and Libraries
It is quite common to use existing frameworks and libraries for backend application development. If we look at most of the popular frameworks in the Java ecosystem, many of them actually support Kotlin out of the box. There are a lot of Java libraries too. You can use these frameworks and libraries in your Kotlin programs thanks to Kotlin’s flawless Java interoperability. Kotlin is an excellent
Productive Server-Side Development With Kotlin: Stories From The Industry
Kotlin was created as an alternative to Java, meaning that its application area within the JVM ecosystem was meant to be the same as Java’s. Obviously, this includes server-side development. We would love to hear about your experience with Kotlin for developing server-side applications and share your experience with the community! Tell us your story! Kotlin has experienced immense growth in t
kotlinx.coroutines 1.4.0: Introducing StateFlow and SharedFlow
We’re pleased to announce the release of version 1.4.0 of the Kotlin Coroutines library. The highlights of the release are StateFlow and SharedFlow, which are being promoted to stable API. StateFlow and SharedFlow are designed to be used in cases where state management is required in an asynchronous execution context with Kotlin Coroutines.
Build Chains: TeamCity’s Blend of Pipelines. Part 2 – Running Builds in Parallel
In the previous blog post, we learned about snapshot dependencies and how they can be applied to create build chains in TeamCity. In this blog post, we describe how snapshot dependencies enable parallel builds. More snapshot dependencies Previously, we started creating the build chain for the demo application. We created two build configurations: one builds the application and the other builds the
Build Chains: TeamCity’s Blend of Pipelines. Part 1 – Getting Started
In TeamCity, when we need to build something, we create a build configuration. A build configuration consists of the build steps and is executed in one run on the build agent. You can define as many build steps as you like in one build configuration. However, if the number of steps grows too large, it makes sense to examine what the build configuration is doing – maybe it does too many things! We