Kotlin 1.5.30 officially launched just now. There has been a steady stream of Kotlin releases over the last year or so, each with new features and fixes.

In other words, business as usual.

Since we (Touchlab) are plugging away, day in and out, working on client projects using KMM🐶, it can be easy to lose track of the bigger milestones. Kotlin 1.5.30 feels (numerically speaking) like just another point release, but this is a milestone advance for the platform. 1.5.30 …

Here’s a quick little followup to Sam’s post: Multiplatform Encryption with SQLDelight and SQLCipher. Recently for a client we needed to implement this with Kotlin 1.4.0, and ran into a couple issues. I’m only going to describe how to get the iOS side working as Android is pretty straightforward (although Android is in the sample and video).

Here’s KaMPKit updated to use SQLCipher

The cipher key is hardcoded in code. Do *not* do that in your app. You need to get your key from a more secure source.

Here’s a video showing edits on KaMP Kit:

SQLiter ran into…


The story of coroutines for Kotlin/Native has been complex for a while now, and with the news that the Kotlin/Native memory model will be changing, coroutines for Kotlin/Native will remain a complex story for some time.

Ktor is built around coroutines. The coroutines situation fundamentally affects how Ktor functions. There have been multiple moving targets in this story, which has created a lot of confusion and a number of bug reports that kind of cross over the same core issues.

In this post, I will attempt to add some clarity to the situation.

The Coroutines Situation

To be clear, when we’re talking about…

The Kotlin 1.4 release is a major milestone in the evolution of Kotlin as a platform. A lot of this release is behind the scenes. Stabilizing and improving the platform itself, as well as moving forward the common compiler efforts that have been in the works for quite a while.

Just this week, in fact, Jetpack Compose was released to Alpha. Prior to 1.4, running Compose meant running a custom version of Kotlin because it relies on the new compiler. That is all beginning to come together.

Join our live Touchlab Share video chat Friday where we talk about the…

On the JetBrains Blog, Roman Elizarov just dropped a pretty big piece of news, if you’re in the Kotlin/Native and Multiplatform world.

If you still have questions after reading this post and want our input, submit your KN concurrency questions and we’ll get back to you.

The explicitly thread-confined, “frozen” concurrency model, is changing.

I’ve been talking about this concurrency and runtime model for the past 2+ years. From a safety perspective, there’s a lot to like. Unrestricted shared memory access is problematic, to put it mildly. Enforcing some rules at runtime means extra safety, and forces you to…

Very recently, a draft PR (#1648) landed in the kotlinx.coroutines github that will enable multithreaded coroutines in Kotlin Native (KN). This is a big deal for the technology, and a lot of people have been waiting for it. I tweeted a little screenshot, and just that got a fair bit of attention

It is not a stretch to say a lot of developers have been waiting for this, as one of the tweet replies highlights:

To be clear, as much as this is a good thing technically, I think it’s a big deal psychologically. You could achieve concurrency…

Droidcon NYC’s CFP hit a new high this year. Not just numbers, but really excellent content as well. The lineup is amazing and we’re very excited for this year’s event!

Jetbrains and Google have created an event series called Kotlin/Everywhere. Droidcon NYC is proud to be a part of the event series. We were originally thinking it would be “a track” at the event, but as Android is mostly Kotlin-focused now, and because we’ve made a strong effort to have Multiplatform front and center, the “Kotlin-focused” content is going to be everywhere.

If you haven’t heard, Kotlin won Breakout project…

I am absolutely sure the tool integration for llbd and Kotlin Native will improve dramatically in the near future. However, for today, there’s no easy way to run a debugger on your test code.

You can, however, attach Xcode and run some tests. There will probably need to be multiple ways to do this, depending on how you’re running your tests. Today’s version will be for projects that have macOS as a target and build a simple kexe that runs the tests.

To be clear, this method will only work for the macOS profile tests. …

It’s that time of year again! Droidcon NYC will be back for year 6, bringing together the best and brightest of the Android development world.

This year’s CFP opened a few weeks ago, and will be open until June 16th. I like to make sure we have some time after I/O and post I/O vacations to digest all the new stuff that’s happening. We have digested!

Droidcon 2019 CFP


Every year we get requests for topics of interest and some guidance for how to submit.

Some general advice. The talk selection panel (announced soon) will be made up of Android…

In order to add generics to header output in Kotlin Native, I had to kind of reverse engineer the Kotlin native compiler using a debugger 👎. Attaching a debugger to the Konan compiler requires a few steps, but is relatively straightforward.

Step 1: Build Kotlin Native

You’ll need to clone KN and make sure to create a branch pointing at the version you want to use. As the docs state, this will take at least an hour, and in my experience, that’s optimistic, but it’s generally a trouble free build. Just take a walk/nap.

Step 2: Create Sample Project

When you run into a compile issue, it may be in…

Kevin Galligan

Partner at Touchlab: https://touchlab.co. Kotlin GDE. Very much into Kotlin Multiplatform.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store