# kotlin-native

Kotlin/Native is a technology for compiling Kotlin code to native binaries that run without a virtual machine.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Our Droidcon US 2026 Picks - Sam Hill

DevFeed: [Our Droidcon US 2026 Picks - Sam Hill](<https://devfeed.tech/articles/our-droidcon-us-2026-picks-sam-hill-38198.md>)

Original publisher: [Read original article](<https://touchlab.co/droidcon-us-2026>)

Published: 2026-07-14T00:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [scaling](<https://devfeed.tech/topics/scaling.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-development](<https://devfeed.tech/tags/ai-development.md>), [android](<https://devfeed.tech/tags/android.md>), [droidcon](<https://devfeed.tech/tags/droidcon.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ios](<https://devfeed.tech/tags/ios.md>), [js](<https://devfeed.tech/tags/js.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

Touchlab previews selected Droidcon USA 2026 talks covering AI and cross-platform mobile development, Kotlin Native project structures, KMP integration with Rust, migration decisions, and mobile testing.

### Source excerpt

With Droidcon right around the corner, here are the talks we are most excited about

## The KotlinConf 2026 talks that we're excited about - Kevin Schildhorn

DevFeed: [The KotlinConf 2026 talks that we're excited about - Kevin Schildhorn](<https://devfeed.tech/articles/the-kotlinconf-2026-talks-that-we-re-excited-about-kevin-schildhorn-38287.md>)

Original publisher: [Read original article](<https://touchlab.co/kotlinconf-2026>)

Published: 2026-03-03T00:00:00Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [iOS development](<https://devfeed.tech/topics/ios-development.md>), [ui](<https://devfeed.tech/topics/ui.md>), [amazon](<https://devfeed.tech/topics/amazon.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [android](<https://devfeed.tech/tags/android.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [js](<https://devfeed.tech/tags/js.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [kotlinconf](<https://devfeed.tech/tags/kotlinconf.md>), [library](<https://devfeed.tech/tags/library.md>), [talks](<https://devfeed.tech/tags/talks.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A Touchlab commentary selects KotlinConf 2026 talks covering Kotlin/Native integration, Kotlin Multiplatform project organization and compilation times, Compose Multiplatform UI performance and animation, and iOS development with KMP at Amazon.

### Source excerpt

The KotlinConf 2026 schedule was recently announced and there are a lot of talks to be excited about. We decided to compile a list of the talks we're excited to see.

## Kotlin Coroutines and Swift

DevFeed: [Kotlin Coroutines and Swift](<https://devfeed.tech/articles/kotlin-coroutines-and-swift-39324.md>)

Original publisher: [Read original article](<https://kt.academy/article/interop-coroutines-swift>)

Published: 2025-09-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Structured concurrency](<https://devfeed.tech/topics/structured-concurrency.md>), [async/await](<https://devfeed.tech/topics/async-await.md>), [kotlin-flow](<https://devfeed.tech/topics/kotlin-flow.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [cancellation](<https://devfeed.tech/tags/cancellation.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-flow](<https://devfeed.tech/tags/kotlin-flow.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [swift](<https://devfeed.tech/tags/swift.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains how to bridge Kotlin Coroutines and Swift's async/await and structured concurrency in Kotlin Multiplatform iOS projects. It covers suspending functions, exception conversion, Kotlin Flow to AsyncSequence, and calling Swift async functions from Kotlin.

### Source excerpt

How to use Kotlin Coroutines in Swift projects, or Swift libraries from Kotlin Coroutines.

## SKIE Subplugin API for Kotlin Multiplatform Projects

DevFeed: [SKIE Subplugin API for Kotlin Multiplatform Projects](<https://devfeed.tech/articles/the-power-of-skie-subplugins-tadeas-kriz-38316.md>)

Original publisher: [Read original article](<https://touchlab.co/skie-subplugin>)

Published: 2025-01-17T00:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin compiler](<https://devfeed.tech/topics/kotlin-compiler.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [changes](<https://devfeed.tech/tags/changes.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [complex](<https://devfeed.tech/tags/complex.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-compiler](<https://devfeed.tech/tags/kotlin-compiler.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [meta-programming](<https://devfeed.tech/tags/meta-programming.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [skie](<https://devfeed.tech/tags/skie.md>)

### AI overview

This article introduces SKIE's undocumented subplugin API and explains how it can be used within a Kotlin Multiplatform project. It describes compatibility and build-complexity considerations across Kotlin and SKIE versions, and cautions that the API may change.

### Source excerpt

Generate Swift code for your Kotlin Multiplatform project using SKIE subplugins.

## SQLDelight 2.0.1 fixes a Kotlin/Native thread-safety bug

DevFeed: [SQLDelight 2.0.1 fixes a Kotlin/Native thread-safety bug](<https://devfeed.tech/articles/sqldelight-2-0-1-includes-big-fix-for-kotlin-native-jigar-brahmbhatt-38144.md>)

Original publisher: [Read original article](<https://touchlab.co/2023-12-21-upgrade-to-sqldelight-201>)

Published: 2023-12-21T02:05:15Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [bug](<https://devfeed.tech/topics/bug.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [release](<https://devfeed.tech/tags/release.md>), [sqldelight](<https://devfeed.tech/tags/sqldelight.md>)

### AI overview

SQLDelight 2.0.1 includes a fix for a Kotlin/Native thread-safety bug related to concurrent database operations, along with other fixes. The article recommends upgrading to the new version.

### Source excerpt

The 2.0.1 update for SQLDelight is out now and features a crucial bug fix addressing thread safety issues in Kotlin Native.

## KMM: What's Under the hood?

DevFeed: [KMM: What's Under the hood?](<https://devfeed.tech/articles/kmm-what-s-under-the-hood-24754.md>)

Original publisher: [Read original article](<https://medium.com/ymedialabs-innovation/kmm-whats-under-the-hood-1a26cb50ca67?source=rss----8b5620c36355---4>)

Author: Codeangi

Published: 2023-02-22T15:58:32Z

Content type: tutorial

Language: en

Sources: [ymedialabs-innovation - Medium](<https://devfeed.tech/sources/ymedialabs-innovation-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [compilation](<https://devfeed.tech/tags/compilation.md>), [development](<https://devfeed.tech/tags/development.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-beginners](<https://devfeed.tech/tags/kotlin-beginners.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-development](<https://devfeed.tech/tags/mobile-development.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>)

### AI overview

This article explains Kotlin Multiplatform Mobile (KMM), focusing on how developers can share business logic, data, and connectivity implementation between Android and iOS. It also describes Kotlin/Native compilation through LLVM and Kotlin/JS compilation to JavaScript.

### Source excerpt

source There have been many tools for cross-platform development before but offered so little in terms of sharable code, there was always an overhead of writing and maintaining applications in a set-predetermined technology such as Phonegap, ReactNative, and Flutter. Kotlin provides a huge leeway in writing sharable code, especially when you are developing Mobile applications for Android and iOS with similar features. In the real world, it translates into fewer lines of code, fewer bugs, less time, and of course lesser cost of development. Whether you are starting a new project or adding a new feature to an existing one. This article is an effort to interpret KMM in layman's terms, knowing programming helps but is not mandatory.Topics Include: What is KMM, How it works, the Good, and the Bad.source Kotlin is a cutting-edge yet established programming language that offers a range of benefits for developers. One of the key use cases for Kotlin is its ability to share code between mobile platforms through Kotlin Multiplatform Mobile (KMM). By using KMM, developers can create cross-platform mobile apps and share crucial elements like business logic, data, and connectivity implementation between Android and iOS. Kotlin-Native In order to use Kotlin code in iOS, the Kotlin code is first compiled to LLVM bytecode using the Kotlin/Native compiler. LLVM (Low Level Virtual Machine) is a collection of modular and reusable compiler and toolchain technologies. The LLVM bytecode is then compiled using the iOS toolchain and linked with the iOS runtime libraries. The resulting binary is an iOS application bundle (an .app directory) that contains the Kotlin code and the Swift runtime. When the app is run, the Swift runtime loads the Kotlin code and uses it as if it were native Swift code. Kotlin/JS Kotlin/JS provides the ability to trans-compile Kotlin code, the Kotlin standard library, and any compatible dependencies to JavaScript. The current implementation of Kotlin/JS targets ES

## The Evolution of Kotlin Multiplatform Mobile - 2022 Edition - Russell Wolf

DevFeed: [The Evolution of Kotlin Multiplatform Mobile - 2022 Edition - Russell Wolf](<https://devfeed.tech/articles/the-evolution-of-kotlin-multiplatform-mobile-2022-edition-russell-wolf-38328.md>)

Original publisher: [Read original article](<https://touchlab.co/the-evolution-of-kotlin-multiplatform-mobile>)

Published: 2022-10-31T18:13:15Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [kotlin multiplatform mobile](<https://devfeed.tech/topics/kotlin-multiplatform-mobile.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [Library](<https://devfeed.tech/topics/library.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [swift-package](<https://devfeed.tech/topics/swift-package.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-mobile](<https://devfeed.tech/tags/kotlin-multiplatform-mobile.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

This retrospective traces Kotlin Multiplatform Mobile from its early experimental stage, when Kotlin/Native memory management, Gradle configuration, and Xcode integration were difficult, to a more mature state with improved memory management, iOS integration through CocoaPods and Swift Package Manager, and better Kotlin-to-Swift interoperability. It also describes growth in the KMM library ecosystem, from about five published libraries in 2018 to more than 1,000 relevant artifacts on Maven Central.

### Source excerpt

Kotlin Multiplatform has come a long way in the last few years. As someone who was there when the KMP community first formed, I've seen the ecosystem grow from a few developers trying things out experimentally to a growing number of teams using it in their production apps. With the Kotlin Multiplatform Mobile Beta freshly announced, it's a neat moment to look back on how far everything has come. How It Started In the early days, KMP wasn't very easy for new users.

## KMM Memory Model - when to switch? - Kevin Galligan

DevFeed: [KMM Memory Model - when to switch? - Kevin Galligan](<https://devfeed.tech/articles/kmm-memory-model-when-to-switch-kevin-galligan-38238.md>)

Original publisher: [Read original article](<https://touchlab.co/kmm-memory-model-when-to-switch>)

Published: 2021-12-22T18:52:04Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Library](<https://devfeed.tech/topics/library.md>), [Maintainers](<https://devfeed.tech/topics/maintainers.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [concurrency](<https://devfeed.tech/tags/concurrency.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [library](<https://devfeed.tech/tags/library.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Touchlab explains why it plans to adopt Kotlin/Native's new memory model for development work and encourages developers to evaluate it. The article discusses the end of native-mt releases, expected library changes, and testing needs.

### Source excerpt

Touchlab will be defaulting to the "new" memory model for anything that's in dev and/or not hitting production for a few months. That decision will be reviewed if there's some wild performance issue or bug, but otherwise, we're just doing it.

## Kotlin Native -- Using swift, not Objective-C

DevFeed: [Kotlin Native -- Using swift, not Objective-C](<https://devfeed.tech/articles/kotlin-native-using-swift-not-objective-c-24746.md>)

Original publisher: [Read original article](<https://medium.com/yazio-engineering/kotlin-native-using-swift-not-objective-c-d7742c040539?source=rss----65bd178b00af---4>)

Author: Paul Woitaschek

Published: 2021-11-19T08:00:42Z

Content type: tutorial

Language: en

Sources: [YAZIO Engineering - Medium](<https://devfeed.tech/sources/yazio-engineering-medium.md>)

Topics: [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [interop](<https://devfeed.tech/tags/interop.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [ksp](<https://devfeed.tech/tags/ksp.md>), [library](<https://devfeed.tech/tags/library.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

This tutorial explains how YAZIO uses Kotlin Native for shared business logic while providing a Swift-native iOS API. It describes the limitations of Kotlin-to-Objective-C interoperability and shows how KSP and SwiftPoet can generate Swift mappings for Kotlin types such as enums and sealed classes.

### Source excerpt

Kotlin Native -- Using Swift, not Objective-C At YAZIO we use Kotlin Native Extensively. The business logic of all new app features is exclusively written in Kotlin. In its core, every screen has one ViewModel which exposes a single Flow<ViewState> that the Android App and the iOS can consume to render the state. On Android, rendering the view state is no burden because it's the language we use in the Android App anyways. However this is different for iOS. While Swift does interop with Objective-C, the public API as seen from Swift is bad. A simple data class is exported as a regular class. The properties are not native Swift types. What should be a Bool becomes a KotlinBoolean. What should be come a Double becomes a KotlinDouble. But what we want is most of the times a struct with Swift types. These are the lesser evils, the greater ones are enums and sealed classes. In Objective-C, they both become regular classes. And therefore lose all the advantages they have when used from Swift. But what we want is a Swift enum. To overcome these restrictions for quite some time our iOS team has created mappings. There is a whole target, dedicated to mapping the Objective-C classes to Swift. Basically when developing a new feature, the whole public API is manually mapped to Swift. This is good because the result is a clean Swift-native API. But that's bad because it's extreme boilerplate and a real productivity killer. What if we could directly generate these mappings and use code generation to handle that for us? Turns out: There are two tools available that make it possible. The first one is KSP. It is basically a library that lets you implement a Kotlin compiler plugin and it gives you hooks to analyze the Kotlin Syntax Tree and generate code based on it. The second one is SwiftPoet. SwiftPoet is a library you can use to generate Swift code from Kotlin, similar to what KotlinPoet and JavaPoet do. Okay, let's get our handy dirty. For the basic setup, just follow the tutorial

## Kotlin Native -- Using swift, not Objective-C

DevFeed: [Kotlin Native -- Using swift, not Objective-C](<https://devfeed.tech/articles/kotlin-native-using-swift-not-objective-c-26007.md>)

Original publisher: [Read original article](<https://medium.com/yazio-engineering/kotlin-native-using-swift-not-objective-c-d7742c040539?source=rss-fbf9b6d94e65------2>)

Author: Paul Woitaschek

Published: 2021-11-19T07:21:13Z

Content type: tutorial

Language: en

Sources: [Stories by Paul Woitaschek on Medium](<https://devfeed.tech/sources/stories-by-paul-woitaschek-on-medium.md>)

Topics: [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Library](<https://devfeed.tech/topics/library.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [ksp](<https://devfeed.tech/tags/ksp.md>), [library](<https://devfeed.tech/tags/library.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [swift](<https://devfeed.tech/tags/swift.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This developer article explains how YAZIO uses Kotlin Native for shared business logic while addressing the limitations of exposing Kotlin types through Objective-C to Swift. It describes manually mapping the generated API to Swift and introduces KSP and SwiftPoet as tools for generating Swift mappings and reducing boilerplate.

### Source excerpt

Kotlin Native -- Using Swift, not Objective-C At YAZIO we use Kotlin Native Extensively. The business logic of all new app features is exclusively written in Kotlin. In its core, every screen has one ViewModel which exposes a single Flow<ViewState> that the Android App and the iOS can consume to render the state. On Android, rendering the view state is no burden because it's the language we use in the Android App anyways. However this is different for iOS. While Swift does interop with Objective-C, the public API as seen from Swift is bad. A simple data class is exported as a regular class. The properties are not native Swift types. What should be a Bool becomes a KotlinBoolean. What should be come a Double becomes a KotlinDouble. But what we want is most of the times a struct with Swift types. These are the lesser evils, the greater ones are enums and sealed classes. In Objective-C, they both become regular classes. And therefore lose all the advantages they have when used from Swift. But what we want is a Swift enum. To overcome these restrictions for quite some time our iOS team has created mappings. There is a whole target, dedicated to mapping the Objective-C classes to Swift. Basically when developing a new feature, the whole public API is manually mapped to Swift. This is good because the result is a clean Swift-native API. But that's bad because it's extreme boilerplate and a real productivity killer. What if we could directly generate these mappings and use code generation to handle that for us? Turns out: There are two tools available that make it possible. The first one is KSP. It is basically a library that lets you implement a Kotlin compiler plugin and it gives you hooks to analyze the Kotlin Syntax Tree and generate code based on it. The second one is SwiftPoet. SwiftPoet is a library you can use to generate Swift code from Kotlin, similar to what KotlinPoet and JavaPoet do. Okay, let's get our handy dirty. For the basic setup, just follow the tutorial

## KMM Oddity #2: Initialization order of top-level properties

DevFeed: [KMM Oddity #2: Initialization order of top-level properties](<https://devfeed.tech/articles/kmm-oddity-2-initialization-order-of-top-level-properties-24738.md>)

Original publisher: [Read original article](<https://medium.com/xorum-io/kmm-oddity-2-initialization-order-of-top-level-properties-edd11ec350a2?source=rss----92bb7980cc9f---4>)

Author: Yev Kanivets

Published: 2021-11-15T15:44:44Z

Content type: tutorial

Language: en

Sources: [xorum.io - Medium](<https://devfeed.tech/sources/xorum-io-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Redux](<https://devfeed.tech/topics/redux.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [redux](<https://devfeed.tech/tags/redux.md>)

### AI overview

This article examines an initialization-order oddity involving Kotlin top-level properties in Kotlin Multiplatform Mobile. It compares behavior when dependent properties are declared in one file or separate files, including differing initialization sequences in Android and iOS applications.

### Source excerpt

Kotlin Multiplatform goes Beta this Spring (2022), so it removes all major hassles (Memory Model and Kotlin/Native concurrency, for example) which KMP developers face. But even with the Stable version (hopefully by the end of 2022), we are going to have a certain number of minor issues or simply oddities while using this relatively young technology (especially with Kotlin/Native). Most of them are already reported in Kotlin's YouTrack, so go check it before stressing out. I've encountered many such issues myself for the past two years with Kotlin Multiplatform Mobile. In this series of articles, I'll share my favorite oddities of KMM with explanations and workarounds (if possible). Top-level properties In Kotlin, we are able to declare top-level (or global) variables, which are accessible from anywhere in the given module or even the whole application. For example, let's say that we have a data class Order: https://medium.com/media/a25461d8a0d6b9b56cb9dd912331f029/href This class has a name and an optional dependency to another Order. The init block is here to help us understand when it's initialized. While it's generally a bad idea to declare instances of such class as a global variable, we are going to do it twice in the same file for now. As you can see, orderB depends on orderA, so it must be initialized first. https://medium.com/media/b290af047e51b599b293e0aca4e01fee/href It's done for demo purposes here, but a real application can require it as well (think about store, reducers, and middleware from Redux architectural pattern, which are all global variables by default). When run, we see the expected order of initialization in logs of both, Android and iOS applications: Init orderA / Init orderB. Single-file initialization order When we have all connected top-level variables in the same file, things are simple. To check it, swap the orderA with orderB. https://medium.com/media/25fc0522be792d1cfa0da6cbd4ec7f90/href Do you see? Android Studio will complain about

## Testing the Kotlin/Native Memory Model - Kevin Galligan

DevFeed: [Testing the Kotlin/Native Memory Model - Kevin Galligan](<https://devfeed.tech/articles/testing-the-kotlin-native-memory-model-kevin-galligan-38326.md>)

Original publisher: [Read original article](<https://touchlab.co/testing-the-kotlin-native-memory-model>)

Published: 2021-10-05T20:16:52Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [build](<https://devfeed.tech/tags/build.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial explains how to test Kotlin/Native's new memory model in an open-source library. Using Kermit as an example, it describes configuring Kotlin and memory-model versions with Gradle properties, running tests in GitHub Actions, and reporting bugs to help mature the platform.

### Source excerpt

Kotlin/Native's strict memory model has been a common topic of interest and/or concern in the community for some time. The arrival of the new memory model will remove what many consider an adoption blocker. However, creating and testing a new memory model is a significant undertaking.

## Testing the Kotlin Native memory model

DevFeed: [Testing the Kotlin Native memory model](<https://devfeed.tech/articles/testing-the-kotlin-native-memory-model-25954.md>)

Original publisher: [Read original article](<https://medium.com/@kpgalligan/testing-the-kotlin-native-memory-model-d3ccd2c2810f?source=rss-c2f810aa7890------2>)

Author: Kevin Galligan

Published: 2021-10-03T16:35:56Z

Content type: tutorial

Language: en

Sources: [Stories by Kevin Galligan on Medium](<https://devfeed.tech/sources/stories-by-kevin-galligan-on-medium.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [macos](<https://devfeed.tech/tags/macos.md>), [memory](<https://devfeed.tech/tags/memory.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [testing](<https://devfeed.tech/tags/testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A practical guide to testing Kotlin/Native's experimental new memory model. It explains how to enable the model through Gradle properties, run library tests across Kotlin versions and memory-model configurations, and report bugs using a sample project.

### Source excerpt

Memory joke Kotlin/Native's strict memory model has been a common topic of interest and/or concern in the community for some time. The arrival of the new memory model will remove what many consider an adoption blocker. However, creating and testing a new memory model is a significant undertaking. It is tempting to wait until the new memory model is "ready", but the community can help accelerate the maturing of the platform by testing the new model and reporting bugs. We are starting to run our open source library tests against the new memory model. Just turning it on for Kermit found a relatively minor issue. If you publish a library, it would be great if you could turn on the new memory model and see if things work. Although everybody's config is different, here's how we do it. Kermit's Kotlin version is in the gradle.properties file. GROUP=co.touchlab VERSION_NAME=1.0.0-rc4 KOTLIN_VERSION=1.5.31 # etc... Kermit/gradle.properties at main - touchlab/Kermit That makes turning on the memory model simple. We can pass in a different Kotlin version and memory model flag, both as gradle properties. Currently we run tests 3 times. First with Kotlin 1.5.31, which is our published version. Then Kotlin 1.6.0-M1, but with the strict memory model, then Kotlin 1.6.0-M1 and the new memory model. In the Github Actions script, here are the lines: - name: Build run: ./gradlew build --no-daemon --stacktrace - name: Build 1.6 run: ./gradlew build -PKOTLIN_VERSION=1.6.0-M1 --no-daemon --stacktrace - name: Build 1.6 nmm run: ./gradlew build -PKOTLIN_VERSION=1.6.0-M1 \ -Pkotlin.native.binary.memoryModel=experimental --no-daemon \ --stacktrace Param -PKOTLIN_VERSION=1.6.0-M1 sets the Kotlin verison, and -Pkotlin.native.binary.memoryModel=experimental turns on the new memory model. Also FYI, macos-latest is a little old and has Xcode 12.4. macos-11 has Xcode 12.5, which is required for Kotlin 1.6.0-M1. Obviously, if you run those once and they work fine, you don't need to leave them on. We

## KMM Oddity #1: Interface methods with underscores

DevFeed: [KMM Oddity #1: Interface methods with underscores](<https://devfeed.tech/articles/kmm-oddity-1-interface-methods-with-underscores-24737.md>)

Original publisher: [Read original article](<https://medium.com/xorum-io/kmm-oddity-1-interface-methods-with-underscores-21523b8ed797?source=rss----92bb7980cc9f---4>)

Author: Yev Kanivets

Published: 2021-09-20T04:23:21Z

Content type: tutorial

Language: en

Sources: [xorum.io - Medium](<https://devfeed.tech/sources/xorum-io-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>)

### AI overview

This article examines a Kotlin Multiplatform Mobile interoperability oddity in iOS. It explains how the Kotlin/Native compiler can expose an interface method with an underscore suffix, such as eat(food_:), when similarly named methods from different interfaces may clash in Objective-C.

### Source excerpt

Kotlin Multiplatform attracts more and more developers every day. Especially after the technology transitioned to the Alpha stage. On its way to Beta, KMP removes all major hassles (Memory Model, for example). Nonetheless, you can still find "a few" more minor bugs and oddities reported in Kotlin's YouTrack. They aren't blockers for using KMP in your production application but may cost you several hours of wondering what and why is happening in your mobile application (mainly on iOS). I faced many such issues myself since I've started using Kotlin Multiplatform Mobile two years ago. In this series of articles, I'll share my favorite oddities of KMM with explanations and workarounds (if possible). Kotlin/Native Obj-C interop Shared KMM modules are written in Kotlin, hence can be used in Android native applications as it is. On iOS, it's more complicated because of Objective-C and Swift, which can't directly use Kotlin code. Kotlin/Native plugin compiles shared KMM modules to iOS frameworks, which contain binary and Obj-C header. You can find them in the build folder of the shared module, under bin/iOS/. Many concepts of Kotlin don't exist in Obj-C, so specific shortcuts and workarounds need to be applied to make it work. It is where some oddities start appearing. Interface methods naming clash Let's say we have two types of pets -- Dog and Cat, which we need to feed with some specific Food. In Kotlin, we could represent that with two interfaces, each having an internal (embedded) Food class. https://medium.com/media/b868e0383cdc20566aef171daa863a87/href It works perfectly well in Android, but on iOS Dog will have eat(food_:) method instead of eat(food:). Where does that underscore suffix come from? And why do we need it? It looks like Kotlin/Native compiler thinks there will be a clash between eat(food:) methods of Dog and Cat interfaces, so it's safer to make them different by implicitly adding an underscore to the 2nd one. I'm not sure it will become a problem and i

## Kotlin 1.5.30 and KMM/KMP

DevFeed: [Kotlin 1.5.30 and KMM/KMP](<https://devfeed.tech/articles/kotlin-1-5-30-and-kmm-kmp-25951.md>)

Original publisher: [Read original article](<https://medium.com/@kpgalligan/kotlin-1-5-30-and-kmm-kmp-2ba19af65fe7?source=rss-c2f810aa7890------2>)

Author: Kevin Galligan

Published: 2021-08-27T16:15:39Z

Content type: article

Language: en

Sources: [Stories by Kevin Galligan on Medium](<https://devfeed.tech/sources/stories-by-kevin-galligan-on-medium.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [concurrency](<https://devfeed.tech/tags/concurrency.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The article discusses Kotlin 1.5.30 as a significant milestone for Kotlin Multiplatform and Kotlin Multiplatform Mobile. It focuses on the preview of Kotlin/Native's new memory model, which is intended to simplify shared-state access across threads, while noting that it was not yet recommended for production and that important questions remained.

### Source excerpt

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 presents a few big features, at least in preview, which will ultimately pave the way for "production ready" mainstream adoption of Kotlin shared code technology. Kotlin 1.5.30 is a turning point in KMP. Here's why.Memory Model Preview One of the most controversial aspects of Kotlin/Native is the concurrency and memory model. There are a lot of takes on it. Whether it was a good or bad thing, and why, is beyond the scope of today's post. However, I talked about it much more than anything else over the last few years because for KMM and KMP to grow, people would need to understand it. Still, it's been a significant blocker for some. That will be changing soon. I would not run the new memory model in production yet 🤞, but you can start experimenting with it now, and expect production deployments to pop up as we settle into 1.6 (I'm guessing :) 🚀. What is this memory model business you ask? Well, in some languages (Java, Swift, etc), multiple threads can read and write shared state. There are a number of ways in which that can be dangerous and error prone. Many languages don't let you access state from multiple threads (JS), some even have memory restriction rules built into the language and compiler (Rust). Kotlin/Native introduced a relatively unique model. In concept, it's interesting, but in practice, it can be confusing and a barrier to adoption. The new memory model will presumably allow unrestricted shared access to state. There are outstanding questions. Will there be equivalents to the JVM concurren

## Kotlin-Multiplatform Shared Test Resources

DevFeed: [Kotlin-Multiplatform Shared Test Resources](<https://devfeed.tech/articles/kotlin-multiplatform-shared-test-resources-15737.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/kotlin-multiplatform-shared-test-resources>)

Author: Victoria Gonda

Published: 2021-08-24T19:00:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>)

Tags: [engineering](<https://devfeed.tech/tags/engineering.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

A Kotlin Multiplatform tutorial for sharing test fixtures and tests across platforms. It demonstrates reading binary protobuf test resources in JVM and iOS tests using platform-specific implementations behind a common test API.

### Source excerpt

Verifying your code regardless of platform

## Clarifying Kotlin Multiplatform terminology and architecture

DevFeed: [Clarifying Kotlin Multiplatform terminology and architecture](<https://devfeed.tech/articles/lions-and-tigers-and-bears-clarifying-kotlin-multiplatform-naming-justin-mancinelli-38172.md>)

Original publisher: [Read original article](<https://touchlab.co/clarifying-kotlin-multiplatform-naming>)

Published: 2020-10-16T19:54:43Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

This article explains the terminology and relationships within Kotlin Multiplatform, including Kotlin Multiplatform Mobile, Kotlin/Native, Kotlin/JS, Kotlin/JVM, and the Multiplatform Gradle plugin. It describes Kotlin Multiplatform as a Kotlin capability for sharing code across targets such as iOS, Android, desktop, embedded systems, JavaScript, and the JVM.

### Source excerpt

After Kotlin Multiplatform Mobile's Alpha announcement, there was confusion on how various pieces fit together. We clarify with a diagram.

## Multiplatform Encryption with SQLDelight and SQLCipher - Samuel Hill

DevFeed: [Multiplatform Encryption with SQLDelight and SQLCipher - Samuel Hill](<https://devfeed.tech/articles/multiplatform-encryption-with-sqldelight-and-sqlcipher-samuel-hill-38299.md>)

Original publisher: [Read original article](<https://touchlab.co/multiplatform-encryption-with-sqldelight-and-sqlcipher>)

Published: 2020-07-14T14:11:43Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Encryption](<https://devfeed.tech/topics/encryption.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [sqldelight](<https://devfeed.tech/tags/sqldelight.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>)

### AI overview

The article explains integrating SQLCipher encryption into a Kotlin/Native and Kotlin Multiplatform project using SQLDelight. It describes how SQLDelight's linkSqlite setting can cause vanilla SQLite3 to be linked, and warns that undocumented encryption behavior in iOS's SQLite build should not be mistaken for intentional SQLCipher usage.

### Source excerpt

Last year we received a PR to SQLiter (The Kotlin/Native driver that Touchlab maintains for SQLDelight) which laid the groundwork for handling encryption of our SQLite databases. Recently, Kevin Schildhorn and I have been working on taking the next step of introducing an encryption library in our Kotlin/Native build, specifically, SQLCipher. The first wrinkle we ran in to was that vanilla SQLite3 seemed to be getting linked automatically which made ensuring SQLCipher gets used tricky.

## Kotlin/Native Concurrency - Touchlab

DevFeed: [Kotlin/Native Concurrency - Touchlab](<https://devfeed.tech/articles/kotlin-native-concurrency-touchlab-38280.md>)

Original publisher: [Read original article](<https://touchlab.co/kotlin-native-concurrency>)

Published: 2020-06-10T19:03:18Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>)

Tags: [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [state](<https://devfeed.tech/tags/state.md>), [threading](<https://devfeed.tech/tags/threading.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This mini-tutorial explains Kotlin/Native's state and concurrency model. It covers ordinary local mutable state, frozen immutable state, sharing state between threads, and the errors that occur when frozen state is changed.

### Source excerpt

A mini-tutorial together to help you better understand the state rules of Kotlin/Native, including simple, frozen, global and advanced threading.

## Multiple Kotlin Frameworks in an Application - Kevin Schildhorn

DevFeed: [Multiple Kotlin Frameworks in an Application - Kevin Schildhorn](<https://devfeed.tech/articles/multiple-kotlin-frameworks-in-an-application-kevin-schildhorn-38300.md>)

Original publisher: [Read original article](<https://touchlab.co/multiple-kotlin-frameworks-in-application>)

Published: 2020-04-17T17:38:01Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Frameworks](<https://devfeed.tech/topics/frameworks.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [github](<https://devfeed.tech/tags/github.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article examines Kotlin 1.3.70 support for using multiple Kotlin/Native frameworks in one application. It reports that multiple release static frameworks are supported, while multiple debug static frameworks are not supported in Kotlin 1.3.70, and describes testing different configurations.

### Source excerpt

Recently Kotlin 1.3.70 was released & added many improvements to Kotlin. An exciting improvement is support for multiple Kotlin frameworks in a single app.

## Kotlin Multiplatform for Cross-Platform Mobile App Development

DevFeed: [Kotlin Multiplatform for Cross-Platform Mobile App Development](<https://devfeed.tech/articles/the-rise-of-multiplatform-app-development-smaller-budgets-better-apps-24589.md>)

Original publisher: [Read original article](<https://medium.com/icerock/the-rise-of-multiplatform-app-development-smaller-budgets-better-apps-ecb248def722?source=rss-2f461fccc401------2>)

Author: IceRock Development

Published: 2019-07-09T16:31:24Z

Content type: article

Language: en

Sources: [Stories by IceRock Development on Medium](<https://devfeed.tech/sources/stories-by-icerock-development-on-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [mobile-app-development](<https://devfeed.tech/topics/mobile-app-development.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

The article discusses Kotlin Multiplatform as an approach to building iOS and Android apps simultaneously with shared code. It contrasts the technology with tools such as Xamarin, Ionic, React Native, and Flutter, focusing on development effort, platform-specific features, and UI/UX limitations.

### Source excerpt

If your company is considering to build a mobile app in 2019, we have some good news. You no longer need to endlessly brainstorm which platform to target first -- iOS or Android. You should be developing both versions simultaneously while spending less than you used to. And Kotlin Multiplatform is how you do this. [Check out the links at the bottom to supply your tech-speaking colleagues with the juicy details on successfully delivering Kotlin Multiplatform projects, six real-life case studies inclusive.] Read on to learn how your app can become multiplatform without eating into your development budget and at the same time offering your users unique, platform-specific experience. The usual cross-platform suspects When it comes to cross-platform mobile app development, the usual suspects that come to mind are tools like PhoneGap, Xamarin, Ionic, and lately also React Native with Flutter. Their appeal has been hard to resist: a universal tool that can reduce development effort for building iOS and Android apps in parallel has been the holy grail in the app developer community for a while now. Unfortunately, none of these technologies has managed to become the de facto instrument for building mobile apps, let alone oust native development. When working with these cross-platform app development tools, developers most often gripe about: Poor or limited UI/UX capabilities Lack of access to platform-specific advanced features (e.g., camera and NFC) Necessity to support three code bases: iOS, Android, and "cross-platform" But with Kotlin/Native, and more specifically Kotlin Multiplatform, things are about to change as this nascent technology promises uncompromised native-app quality while significantly optimizing the app development process. Multiplatform begs to differ Kotlin is a programming language that got official support from Google a couple of years ago and since then has become the prime tool for building Android apps natively. But its potential is much more far-rea

## Kotlin/Native Threading: Two Rules for Live and Frozen State

DevFeed: [Kotlin/Native Threading: Two Rules for Live and Frozen State](<https://devfeed.tech/articles/kotlin-native-stranger-threads-ep-2-kevin-galligan-38283.md>)

Original publisher: [Read original article](<https://touchlab.co/kotlin-native-stranger-threads-ep-2>)

Published: 2019-01-07T19:22:44Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>)

Tags: [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

Part 2 of a Kotlin/Native threading series explains how Kotlin/Native handles concurrency through two rules: live state belongs to one thread, while frozen state can be shared. It relates this model to thread confinement in UI systems.

### Source excerpt

This is part 2 of my Kotlin Native threading series. In part 2 we're going a bit deeper on those concepts and peeking a bit under the hoot.

## Kotlin Native Stranger Threads Ep 1 - Kevin Galligan

DevFeed: [Kotlin Native Stranger Threads Ep 1 - Kevin Galligan](<https://devfeed.tech/articles/kotlin-native-stranger-threads-ep-1-kevin-galligan-38282.md>)

Original publisher: [Read original article](<https://touchlab.co/kotlin-native-stranger-threads-ep-1>)

Published: 2019-01-07T15:15:52Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Development](<https://devfeed.tech/topics/development.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>)

Tags: [apply](<https://devfeed.tech/tags/apply.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [macos](<https://devfeed.tech/tags/macos.md>)

### AI overview

This first episode revisits Kotlin/Native concurrency for production Kotlin Multiplatform application development. It introduces Worker as a core concurrency mechanism: a job queue that schedules jobs on a different thread, while explaining Kotlin/Native's constraints for safer concurrent state access.

### Source excerpt

Now that KMP is ready for production development, it's time to revisit how Native concurrency works and how to use it in your application development.

## Stately, a Kotlin Multiplatform Library - Kevin Galligan

DevFeed: [Stately, a Kotlin Multiplatform Library - Kevin Galligan](<https://devfeed.tech/articles/stately-a-kotlin-multiplatform-library-kevin-galligan-38322.md>)

Original publisher: [Read original article](<https://touchlab.co/stately-kotlin-multiplatform-library>)

Published: 2018-10-29T19:05:11Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [kotlin-native](<https://devfeed.tech/topics/kotlin-native.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [built-by-touchlab](<https://devfeed.tech/tags/built-by-touchlab.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-native](<https://devfeed.tech/tags/kotlin-native.md>), [library](<https://devfeed.tech/tags/library.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [press](<https://devfeed.tech/tags/press.md>)

### AI overview

The article introduces Stately, a Kotlin Multiplatform library for Kotlin/Native and multiplatform concurrency. It describes expect/actual utilities and frozen, shareable collection classes for maintaining mutable collections across threads, while explaining Kotlin/Native's concurrency rules and recommending that Stately be used sparingly.

### Source excerpt

Kevin Galligan releases Stately, a collection of structures and utilities designed to facilitate Kotlin/Native and multiplatform concurrency.

[Next page](<https://devfeed.tech/topics/kotlin-native.md?cursor=WyIyMDE4LTEwLTI5VDE5OjA1OjExKzAwOjAwIiwgIjY0MGI5ZTA1LWY1ZDgtNGVmOC04YWY4LTQxYTQxMTFkN2QwZiJd>)