~/devreads

#kotlin

20 posts

27 May

Alyona Chernyaeva 2 min read

Last week at the KotlinConf 2026 keynote (watch the recording here), we announced Koog 1.0. Koog is JetBrains’ open-source framework for building AI agents in Kotlin and Java. It provides the core building blocks for agentic applications: tools, workflows, persistence, memory, observability, and integrations with existing JVM and Kotlin Multiplatform projects. We introduced Koog at […]

aijavakotlin

20 May

Alina Dolgikh 8 min read

Years of productivity-focused design are now visible in the data. Pragmatism has been central to Kotlin’s design from day one. The language prioritizes the developer’s convenience and productivity over academic purity or feature ambition. Developers describe working in Kotlin in a fairly consistent way: more time spent on what you’re trying to build, less time […]

newskotlinproductivity

15 May

Márton Braun 4 min read

We are updating the default project structure for Kotlin Multiplatform projects to give modules clearer responsibilities, better align with conventions used by other build systems and frameworks, and reflect the changes in Android Gradle Plugin 9.0. You’ll see this project structure in newly created projects generated by our tools, in the official documentation, and in […]

kotlinmultiplatform

13 May

Viliam Sedliak 6 min read

TL;DR New “val inside parentheses” syntax is being introduced to allow for name-based destructuring. Additionally, new syntax with square brackets is being introduced for positional destructuring. Both are currently Experimental (enabled using the -Xname-based-destructuring=only-syntax compiler argument) and will become Stable in a future release. In the distant future, the behavior of the “val outside parentheses” […]

newstutorialscompilerkotlintutorial

2 Dec 2025

Rafael Torres 5 min read

Expedia Group Technology — Engineering Exploring the strategy pattern and functional programming alternatives in Kotlin Photo by Karsten Winegeart on Unsplash When designing software around business processes (e.g., orchestration services), one of the key challenges is organizing business logic in a way that is maintainable, scalable, and adaptable to change. In this post, we’ll explore how to address such challenges…

kotlinkotlin-beginnerssoftware-engineeringstrategy-patternfunctional-programming

6 Oct 2025

Pierrick CAEN 6 min read

Photo by Mario Verduzco on Unsplash Medium Android App — Migrating from Apollo Kotlin 3 to 4: Lessons Learned In this post, I’ll share my experience migrating the Medium Android app from Apollo Kotlin version 3 to version 4, including the challenges I encountered and how I solved them to improve our GraphQL implementation. Understanding Our Apollo Cache Implementation Before…

graphqlapollo-clientandroidkotlin

26 Jun 2025

Karan Gourisaria 6 min read

How Blinkit Cracked Android's Performance Puzzle with Droid Dex Adaptive real-time performance tuning — fewer ANRs, smoother UX, and smarter device-specific optimization Picture this: Your app runs buttery-smooth on Pixel 7 Pro while throwing ANRs on a Redmi Note 4. Users on a Fold 6 have to experience the same janky transitions as those on a ₹6,000 device. Sounds familiar?…

engineeringperformancemobile-developmentandroidkotlin

21 Feb 2024

Yury 9 min read

Jetpack Compose both makes it easier and promotes usage of an internal design system by creating custom Compose components. But how should we build these components? In this article, we will take a look at possible implementations of a design component, explore their API verbosity and extensibility, and how we can find a balance between these characteristics to make Compose…

jetpack-composekotlinandroid

9 Feb 2024

Konstantin Zolotov 9 min read

During the development process, we often focus on the source code but rarely inspect the compiled bytecode. This means we’re missing out on a valuable source of information and data for analysis. How? Let’s delve into Dex file inspection and build a tool that demonstrates how source code changes impact the compiled binary. Have you ever set R8 rules to…

bytecodekotlinandroidandriod-app-development

6 Sept 2023

Zac Sweers 5 min read

Embarking on a journey Stepping out of SFO with the familiarity of the fogginess of the city, my story at Slack unfolds once again. As a return intern, I found myself prepped for another exciting summer, and this opportunity encompassed a renewed sense of anticipation — a mix between known pathways and new adventures. Returning…

uncategorizedandroiddevtoolsinternshipskotlin

8 Nov 2022

Aleksei Bingham 17 min read

First and foremost, thanks for visiting my little slice of the internet! I hope the following is both insightful and comedic as I plan to @inject well constructed jokes throughout this post. Introduction Hello! My name is Aleksei and at the time of writing this I’m a rising Senior perusing a Bachelors of Science in Computer Science at the Rochester…

androidinternshipskotlinstravadependency-injection

25 Oct 2022

Ryan Paragas 4 min read

About Me: Hey there! My name is Ryan, and I come from an unconventional background. I am not like most interns from the group in 2022. I’ve dropped out of college 3 times, worked in different fields for about 10 years, then transitioned into a bootcamp. Now working with Strava, they have set the expectation of what it should be…

routekotlininternshipsengineeringstrava

10 Nov 2021

Zac Sweers 2 min read

We use plenty of open source tools at Slack and we’ve benefited immensely from the wider Android, Kotlin, and Gradle communities. We also try to be good citizens by giving back. This includes things like sponsoring the Kotlin Lang Slack, contributions to projects we use like Anvil and Insetter, sharing projects of our own like…

uncategorizedandroidkotlinmobileopen-source

20 Jul 2021

Zac Sweers 6 min read

Note: This article assumes some familiarity with Dagger, Anvil, and Kotlin. We use Dagger heavily in the Slack Android app for compile-time dependency injection. It’s powerful, flexible, supports basic Kotlin idioms, and allows for advanced dependency injection patterns with less boilerplate. It’s not without its sharp edges though. It slows down our builds with kapt,…

uncategorizedandroidkotlin

15 Nov 2019

Ben Boral 3 min read

Background At RetailMeNot, we are excited by the promise of automating visual regression tests with Applitools . In this post, I’ll show how to make writing Applitools tests for Android a cinch. We’ll start with the official integration guide recommendations and then use JUnit and Kotlin features to make our tests concise and maintainable. This post assumes the reader is…

junitkotlinapplitoolsandroid

9 Jun 2017

lukaseder 1 min read

It was hard to limit ourselves to 10 Nice Examples of Writing SQL in Kotlin With jOOQ, recently, because the Kotlin language has many nice little features that really help a lot when working with Java libraries. We’ve talked about the nice with() stdlib function, which allows to “import” a namespace for a local scope … Continue reading Using Kotlin’s…

kotlindynamic sqljavajooq

18 May 2017

lukaseder 1 min read

Kotlin is the next big thing. With Google announcing official support for Kotlin on Android, we’ll see a lot more traction for this lovely language. After today's #kotlin announcement, we're betting this tag will blow up just like Swift did. #io17. https://t.co/whOcJlJfWe pic.twitter.com/2QKEJIRYVi — Stack Overflow (@StackOverflow) May 17, 2017 We’ve already blogged about the … Continue reading 10 Nice…

kotlindestructuringjooqlambda expressionslocal variable type inference

31 Mar 2016

lukaseder 1 min read

This article is overdue. After the hype around the release of Kotlin 1.0 has settled, let’s have a serious look at some Kotlin language features that we should have in Java as well. In this article, I’m not going to wish for unicorns. But there are some low hanging fruit (as far as I naively … Continue reading 10 Features…

kotlincase classdata classdefaulted parameterselvis operator

15 Mar 2016

lukaseder 1 min read

Here we go again. THAT TOPIC. But hang on. The approach discussed here (and in the Ceylon language) is not something you see every day. At the same time, it is very cunning. Nulls are baked into the language … or so it may seem. Indeed, in Ceylon, like in Kotlin (and possibly many other … Continue reading Ceylon Might…

ceylonkotlinnullnull pointernullpointerexception

22 Feb 2016

lukaseder 1 min read

This has caught me by surprise. After studying the Kotlin language to learn about how to best leverage this interesting new language for jOOQ, I stumbled upon this puzzler. What do you think the following program will print? fun main(args: Array) { (1..5).forEach { if (it == 3) return print(it) } print("done") } Well… You … Continue reading A Very…

kotlinclosurelambdalambda expression