# kotlin-multiplatform-libraries

Ecosystem of reusable libraries for Kotlin Multiplatform projects.

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

## Why Kotlin Multiplatform Teams Should Share Source, not Binaries - Kevin Galligan

DevFeed: [Why Kotlin Multiplatform Teams Should Share Source, not Binaries - Kevin Galligan](<https://devfeed.tech/articles/why-kotlin-multiplatform-teams-should-share-source-not-binaries-kevin-galligan-38250.md>)

Original publisher: [Read original article](<https://touchlab.co/kmp-teams-use-source>)

Published: 2024-07-24T00: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>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>)

Tags: [adopting](<https://devfeed.tech/tags/adopting.md>), [challenges](<https://devfeed.tech/tags/challenges.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [native](<https://devfeed.tech/tags/native.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

The article explains why the authors changed their recommendation for native mobile teams evaluating Kotlin Multiplatform: share Kotlin source code instead of only publishing binary dependencies. Source lets iOS developers browse and debug the Kotlin code, while GitPortal supports versioned source publishing based on Git tags.

### Source excerpt

Virtually all native mobile teams evaluating KMP start with a library publishing model. KMP module libraries are written, versioned, and "consumed" by the apps. The classic approach is to build and publish binary dependencies. In 2024, with KMP at stable and gaining significant traction, we no longer recommend this approach. It makes an inherently imbalanced iOS developer experience worse. Share Kotlin source instead.

## Google announces expanded Kotlin Multiplatform support and adoption at Google I/O 2024

DevFeed: [Google announces expanded Kotlin Multiplatform support and adoption at Google I/O 2024](<https://devfeed.tech/articles/google-i-o-2024-kotlin-multiplatform-at-google-scale-touchlab-38150.md>)

Original publisher: [Read original article](<https://touchlab.co/KMP-at-google>)

Published: 2024-05-14T00: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>), [Android](<https://devfeed.tech/topics/android.md>), [Google](<https://devfeed.tech/topics/google.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [google](<https://devfeed.tech/tags/google.md>), [google-i-o](<https://devfeed.tech/tags/google-i-o.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [skie](<https://devfeed.tech/tags/skie.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

The article discusses Google I/O 2024 announcements about Kotlin Multiplatform. It highlights Android support, recommendations to share business logic, KMP support in Jetpack libraries, Google Docs' use of KMP, and Google's mention of SKIE.

### Source excerpt

Big News from Google I/O! Android is officially supporting Kotlin Multiplatform. The announcement includes a shout out to SKIE, first-class tooling and library support, and official recommendations for using KMP.

## Building a macOS screen saver in Kotlin

DevFeed: [Building a macOS screen saver in Kotlin](<https://devfeed.tech/articles/building-a-macos-screen-saver-in-kotlin-27054.md>)

Original publisher: [Read original article](<https://zsmb.co/building-a-macos-screen-saver-in-kotlin/>)

Author: Márton Braun

Published: 2024-03-05T12:00:00Z

Content type: tutorial

Language: en

Sources: [zsmb.co](<https://devfeed.tech/sources/zsmb-co.md>)

Topics: [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Code](<https://devfeed.tech/topics/code.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [binaries](<https://devfeed.tech/tags/binaries.md>), [build](<https://devfeed.tech/tags/build.md>), [code](<https://devfeed.tech/tags/code.md>), [contributions](<https://devfeed.tech/tags/contributions.md>), [development](<https://devfeed.tech/tags/development.md>), [github](<https://devfeed.tech/tags/github.md>), [installation](<https://devfeed.tech/tags/installation.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [macos](<https://devfeed.tech/tags/macos.md>), [marton-braun](<https://devfeed.tech/tags/marton-braun.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [zsmb](<https://devfeed.tech/tags/zsmb.md>), [zsmb-co](<https://devfeed.tech/tags/zsmb-co.md>), [zsmb13](<https://devfeed.tech/tags/zsmb13.md>), [zsmbco](<https://devfeed.tech/tags/zsmbco.md>)

### AI overview

This tutorial documents the creation of a custom macOS screen saver built almost entirely in Kotlin with Kotlin Multiplatform. It covers customization options, release binaries, installation, and the challenges of working with macOS screen saver APIs and interoperability.

### Source excerpt

This article documents how I created my own custom screen saver for macOS, built almost entirely in Kotlin, using the powers of Kotlin Multiplatform compiled to macOS. Join me for a tale of Kotlin success and macOS failures.

## Kermit Now Supports WASM - Jigar Brahmbhatt

DevFeed: [Kermit Now Supports WASM - Jigar Brahmbhatt](<https://devfeed.tech/articles/kermit-now-supports-wasm-jigar-brahmbhatt-38345.md>)

Original publisher: [Read original article](<https://touchlab.co/wasm-in-kermit>)

Published: 2023-10-20T14:54:39Z

Content type: tutorial

Language: en

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

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Library](<https://devfeed.tech/topics/library.md>), [browsers](<https://devfeed.tech/topics/browsers.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [kermit](<https://devfeed.tech/tags/kermit.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-wasm](<https://devfeed.tech/tags/kotlin-wasm.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [mozilla](<https://devfeed.tech/tags/mozilla.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [web-assembly](<https://devfeed.tech/tags/web-assembly.md>)

### AI overview

This article describes Touchlab's experience adding WebAssembly support to Kermit, a Kotlin Multiplatform library. It covers adding the Wasm target, sharing code between Kotlin/JS and Kotlin/Wasm, and migrating code while addressing dependency compatibility and the absence of the console API in Wasm.

### Source excerpt

KMP is getting real WASM support, and Touchlab has been diving in. This post will discuss Touchlab's experience with WASM, WASM in Kermit, and show an example of using WASM in an existing codebase.

## Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run

DevFeed: [Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run](<https://devfeed.tech/articles/publishing-kotlin-multiplatform-swift-packages-using-google-cloud-storage-and-cloud-run-23879.md>)

Original publisher: [Read original article](<https://engineering.premise.com/publishing-kotlin-multiplatform-swift-packages-to-google-cloud-storage-be5c6987e5d?source=rss----c5fada0a103d---4>)

Author: Nate Ebel

Published: 2023-10-18T05:28:28Z

Content type: tutorial

Language: en

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

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Cloud Run](<https://devfeed.tech/topics/cloud-run.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-run](<https://devfeed.tech/tags/cloud-run.md>), [github](<https://devfeed.tech/tags/github.md>), [google-cloud-platform](<https://devfeed.tech/tags/google-cloud-platform.md>), [google-cloud-run](<https://devfeed.tech/tags/google-cloud-run.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>), [kotlin-multiplatform-libraries](<https://devfeed.tech/tags/kotlin-multiplatform-libraries.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

This tutorial describes Premise's approach to publishing and consuming Kotlin Multiplatform Swift Packages. It uses a custom Gradle plugin to publish XCFrameworks to Google Cloud Storage and a Cloud Run service to download the Swift Package binaries requested by Xcode, reducing the need to store large binaries in GitHub.

### Source excerpt

By Nate Ebel, Android developer In this post, we'll detail our solution for publishing, and consuming, Kotlin Multiplatform Swift Packages. Our solution leverages a custom Gradle plugin publishing XCFrameworks to Google Cloud Storage and a Google Cloud Run service to download Swift Package binaries requested by XCode. With this solution in place, we've been able to more efficiently serve multiple Kotlin Multiplatform libraries to our iOS application. This is a part of an ongoing series on our usage of Kotlin Multiplatform at Premise: Part 1: Kotlin Multiplatform at Premise Part 2: Kotlin Multiplatform Project Structure for Integrating with Brownfield Applications Part 3: Building a CI Pipeline for Kotlin Multiplatform Mobile Using GitHub Actions Part 4: Publishing Kotlin Multiplatform Swift Packages Using Google Cloud Storage and Cloud Run -- This Post Part 5: Generating BuildConfig Files for a Kotlin Multiplatform Library -- Coming Soon Part 6: Optimizing Local Build Times for Kotlin Multiplatform Mobile Projects -- Coming Soon Premise and Kotlin Multiplatform Swift Packages We've been using Kotlin Multiplatform in production since early 2021 in the form of our mobile-shared project. During that time, we've consumed our shared code as a Swift Package within our iOS application. The integration of that Swift Package has gone through several iterations. v1: Use the multiplatform-swiftpackage plugin to build the Swift Package and store the XCFramework binary in GitHub v2: Use our own custom Gradle plugin to build the Swift Package and store the XCFramework binary in GitHub These two solutions were very similar. Build the XCFramework. Generate the Package.swiftfile. Check both into git with the desired version tag. These approaches worked fine for a while, but eventually we started to pay the price for our simple initial solution. An XCFramework binary can be pretty large. Ours were in the ballpark of 100MB. So checking 2-3 of these into each commit (1 for each iOS archit

## KMP Team Workflows with KMMBridge - Kevin Galligan

DevFeed: [KMP Team Workflows with KMMBridge - Kevin Galligan](<https://devfeed.tech/articles/kmp-team-workflows-with-kmmbridge-kevin-galligan-38244.md>)

Original publisher: [Read original article](<https://touchlab.co/kmmbridge-team-workflows>)

Published: 2023-10-06T10:00:28Z

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>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Template](<https://devfeed.tech/topics/template.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [binaries](<https://devfeed.tech/tags/binaries.md>), [build](<https://devfeed.tech/tags/build.md>), [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [project](<https://devfeed.tech/tags/project.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This article explains how KMMBridge supports Kotlin Multiplatform team workflows by assembling and publishing Xcode Framework binaries for distribution through Swift Package Manager, CocoaPods, or private repositories. It also introduces a Quick Start template for publishing Android and iOS binaries.

### Source excerpt

Team workflows with Kotlin Multiplatform vary in structure. KMMBridge is a tool that allows you to publish Xcode Framework binaries from Kotlin that can be distributed, for your team internally, or to outside developers.

## Multiplatform Settings 1.0.0

DevFeed: [Multiplatform Settings 1.0.0](<https://devfeed.tech/articles/multiplatform-settings-1-0-0-24999.md>)

Original publisher: [Read original article](<https://dev.to/russhwolf/multiplatform-settings-100-5eoa>)

Author: Russell Wolf

Published: 2023-01-15T03:12:17Z

Content type: release

Language: en

Sources: [DEV Community 👩💻👨💻: Russell Wolf](<https://devfeed.tech/sources/dev-community-russell-wolf.md>)

Topics: [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [tvOS](<https://devfeed.tech/topics/tvos.md>), [watchOS](<https://devfeed.tech/topics/watchos.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [inclusive](<https://devfeed.tech/tags/inclusive.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-multiplatform-libraries](<https://devfeed.tech/tags/kotlin-multiplatform-libraries.md>), [kotlinmultiplatform](<https://devfeed.tech/tags/kotlinmultiplatform.md>), [library](<https://devfeed.tech/tags/library.md>), [macos](<https://devfeed.tech/tags/macos.md>), [release](<https://devfeed.tech/tags/release.md>), [software](<https://devfeed.tech/tags/software.md>), [watchos](<https://devfeed.tech/tags/watchos.md>), [web](<https://devfeed.tech/tags/web.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

The author announces version 1.0.0 of Multiplatform Settings, a Kotlin Multiplatform library for persisting simple, unstructured key-value data. The release commits to maintaining non-experimental APIs until a possible 2.0 release and compares the library's platform-API interoperation with Google's preview multiplatform DataStore library.

### Source excerpt

Today, I've released version 1.0.0 of Multiplatform Settings. That means I'm committed to maintaining the current API surface of everything not marked as experimental until there's a 2.0 release (which I don't currently have plans for). If you need to save simple, unstructured key-value data in your multiplatform apps, I hope you'll consider using it. A lot of you already are! russhwolf / multiplatform-settings A Kotlin Multiplatform library for saving simple key-value data Multiplatform Settings This is a Kotlin library for Multiplatform apps, so that common code can persist key-value data. A Korean translation of this readme is available separately, maintained by @wooram-yang Table of contents Usage Implementation Summary Creating a Settings instance Platform constructors Factories No-arg module Settings API Listeners Testing Other platforms Experimental API Experimental Implementations Serialization module Coroutine APIs DataStore Make-Observable module Adding to your project Building License Usage The Settings interface has implementations on the Android, iOS, macOS, watchOS, tvOS, JS, WasmJS, JVM, and Windows platforms. Implementation Summary The following table shows the names of implementing classes and what platforms they're available on. Class Backing API Platforms KeychainSettings2 Apple Keychain iOS, macOS, watchOS, tvOS NSUserDefaultsSettings1 User Defaults iOS, macOS, watchOS, tvOS PreferencesSettings1 java.util.prefs.Preferences JVM PropertiesSettings java.util.Properties JVM SharedPreferencesSettings1 android.content.SharedPreferences Android StorageSettings Web Storage (localStorage) JS, WasmJS RegistrySettings2 Windows Registry MingwX64 DataStoreSettings3 androidx.datastore.core.DataStore Android, ... View on GitHub Some History Multiplatform Settings was one of the first Kotlin Multiplatform libraries ever released, with the first version published on May 28, 2018. I called that first version 0.1-alpha, though I would later drop the alpha from the ve

## Apollo Kotlin: New Multiplatform Memory Manager

DevFeed: [Apollo Kotlin: New Multiplatform Memory Manager](<https://devfeed.tech/articles/apollo-kotlin-new-multiplatform-memory-manager-23202.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/apollo-kotlin-new-multiplatform-memory-manager>)

Author: Benoit Lubek

Published: 2022-08-09T12:05:22Z

Content type: news

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

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

Tags: [apollo](<https://devfeed.tech/tags/apollo.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [immutability](<https://devfeed.tech/tags/immutability.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>), [mobile](<https://devfeed.tech/tags/mobile.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [multithreading](<https://devfeed.tech/tags/multithreading.md>), [performance](<https://devfeed.tech/tags/performance.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

Apollo Kotlin 3.5.0 adopts Kotlin Native's new memory manager. The change removes several threading and immutability restrictions, including the requirement to access the library exclusively from the Main thread on Apple targets. Initial benchmarks indicate performance improvements of up to 45%.

### Source excerpt

Back in May, we shared about how Apollo Kotlin started supporting the Hierarchical project structure. Following the Kotlin Multiplatform ecosystem, here is some more news, this time about the new Memory Manager. Kotlin Native's Memory Manager Since its early days, Kotlin Native has had specific rules regarding multithreading and immutability: - objects could only be accessed from the thread they were created in - unless they had been "frozen", in which case they could be accessed by multiple...

## Kermit KMP Logging 1.0

DevFeed: [Kermit KMP Logging 1.0](<https://devfeed.tech/articles/kermit-kmp-logging-1-0-25949.md>)

Original publisher: [Read original article](<https://medium.com/@kpgalligan/kermit-kmp-logging-1-0-196bf799b738?source=rss-c2f810aa7890------2>)

Author: Kevin Galligan

Published: 2021-12-09T18:11:15Z

Content type: release

Language: en

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

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [log management](<https://devfeed.tech/topics/log-management.md>), [Library](<https://devfeed.tech/topics/library.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [development](<https://devfeed.tech/tags/development.md>), [gradle](<https://devfeed.tech/tags/gradle.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>), [libraries](<https://devfeed.tech/tags/libraries.md>), [logging](<https://devfeed.tech/tags/logging.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The article announces the stable release of Kermit, a Kotlin Multiplatform logging library. It describes the library as having a simple API, extensibility, performance focus, and progressively more sophisticated configuration, and notes release compatibility issues involving Kotlin 1.6.0 and Android publishing.

### Source excerpt

Cross post from https://touchlab.co/kermit-kmp-logging-1-0/Kermit the Log. That's where the name came from. Today we're announcing the stable release of our logging library Kermit GitHub - touchlab/Kermit: Kermit by Touchlab is a Kotlin Multiplatform centralized logging utility. If you've been following me, I've given a few talks on Kotlin KMP library development. In my previous talks I gave some suggestions on what kinds of libraries the community needs. I went out of my way to say avoid building logging libraries. Even way back in 2019, there were already a few options for KMP, so I assumed that topic was handled. Don't build logging libraries After doing some digging, though, nothing really felt like it was done the way we wanted. Also, in early 2020, due in part due to circumstances we're all aware of, we had a few more hands available than planned. We had wanted everybody on the team to get a chance to work on a KMP library, and logging libraries are, if nothing else, conceptually straightforward. After some general architecture chats, the team dove in and made a dev version of Kermit. The plan was to try it out, get some feedback, then make a 1.0 and tell everybody! Then we got super busy. The good news is we got some extra time to think about the library design, and a lot more feedback than you'd think for something we never quite announced. With that feedback, plus more lessons learned shipping KMP code in the meantime, we sat down and made a plan for Kermit 1.0. Kermit 1.0 Kermit has a simple API, is easy to extend, and is focused on performance. Getting started is very easy, but Kermit provides more sophisticated configuration as you move beyond dev into releasing your applications. Rather than a single long post that I'll never finish, we'll wrap this up with basic setup, then go deep on a few other topics in future posts. The list is subject to change, but look for posts on basic setup and usage, production setup, crash reporting integration, and a deep

## Building Kotlin/Multiplatform with Github Actions

DevFeed: [Building Kotlin/Multiplatform with Github Actions](<https://devfeed.tech/articles/building-kotlin-multiplatform-with-github-actions-22859.md>)

Original publisher: [Read original article](<https://medium.com/kodein-koders/building-kotlin-multiplatform-with-github-actions-2478801d6d46?source=rss----f311f45ef54---4>)

Author: Romain Boisselle

Published: 2021-04-15T11:44:49Z

Content type: tutorial

Language: en

Sources: [Kodein Koders - Medium](<https://devfeed.tech/sources/kodein-koders-medium.md>)

Topics: [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [http](<https://devfeed.tech/tags/http.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/tags/kotlin-multiplatform-libraries.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>)

### AI overview

This tutorial explains how to automate Kotlin Multiplatform library publishing with GitHub Actions. It covers publishing snapshots to Maven Central, building across Linux, macOS, and Windows, and managing a shared Sonatype staging repository for stable releases.

### Source excerpt

In a previous tutorial, I showed you how to configure your Kotlin/Multiplatform libraries to be published on Maven Central. To go beyond a publication process we now need to automate things with a good CI/CD workflow. Let's see how to do this with Github Actions. As the Kodein Open Source Initiative libraries are hosted on Github, we felt that it was the best choice to use the Github Actions pipelines to test, build and deploy our libraries, as it is entirely integrated with every other part of Github. Let's start with the snapshot publication process, as it is fairly straightforward. Publishing snapshots on Maven Central has no more constraints than just being authenticated with your Sonatype account, and having your artifacts file names ending with the uppercased word SNAPSHOT. This means that you could literally upload anything in your staging repositories. Here is a Github Actions script to upload a snapshot of a Kotlin/Multiplatform project: https://medium.com/media/41c7ac097f1ff802076f92acc8243077/href In that example, we run the task publishAllPublicationToOss on Linux, Mac & Windows, literally saying to publish every available targets onto the oss repository, which is the name we gave to it in our maven-publish configuration in our Gradle build script. This is not optimal, as every platform could upload shared targets like JVM, JS or even the Kotlin Multiplatform Metadata, but it's simple, and it works! Let's now see how to deploy stable releases. We have to discuss how we will be managing the unique staging repository we need. In fact, this is quite simple, and it is resume by this image: What we need is to create a staging repository, by using the sonatype API over HTTP. This step will generate a repository ID, that we use in later steps. In the build-upload matrix, we upload every artifact onto the same staging repository. Finally, In the drop-or-release job, depending on the success or failure of the build-upload matrix, we drop or release the staging re

## Introducing KMP FatFramework Cocoa, a Gradle plugin for iOS FatFramework

DevFeed: [Introducing KMP FatFramework Cocoa, a Gradle plugin for iOS FatFramework](<https://devfeed.tech/articles/introducing-kmp-fatframework-cocoa-a-gradle-plugin-for-ios-fatframework-25557.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2021/kmp-fatframework-cocoa-release/>)

Author: Marco Gomiero

Published: 2021-03-02T00:00:00Z

Content type: release

Language: en

Sources: [Posts on Marco Gomiero](<https://devfeed.tech/sources/posts-on-marco-gomiero.md>)

Topics: [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [ios](<https://devfeed.tech/tags/ios.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-multiplatform-libraries](<https://devfeed.tech/tags/kotlin-multiplatform-libraries.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The article introduces KMP FatFramework Cocoa, a Gradle plugin for Kotlin Multiplatform projects. It builds iOS FatFrameworks containing the required device and simulator architectures and manages publishing the libraries to a CocoaPod repository.

### Source excerpt

Today I want to share KMP FatFramework Cocoa, a Gradle plugin for Kotlin Multiplatform projects that generate a FatFramework for iOS targets and manages the publishing process in a CocoaPod Repository. The plugin is born from a set of unbundled Gradle tasks that I wrote to manage the building and the publishing process of Kotlin Multiplatform libraries for iOS that we use at Uniwhere and Revelop. The libraries are published in a FatFramework that contains the code for every required architecture (real devices use the Arm64 architecture, while the simulator uses the host computer architecture which in most of the cases is X64).

## Kotlin Multiplatform Library - Touchlab

DevFeed: [Kotlin Multiplatform Library - Touchlab](<https://devfeed.tech/articles/kotlin-multiplatform-library-touchlab-38269.md>)

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

Published: 2019-11-19T22:31:00Z

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>), [kotlin-multiplatform-libraries](<https://devfeed.tech/topics/kotlin-multiplatform-libraries.md>), [Library](<https://devfeed.tech/topics/library.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [koin](<https://devfeed.tech/tags/koin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [kotlin-multiplatform-libraries](<https://devfeed.tech/tags/kotlin-multiplatform-libraries.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [library](<https://devfeed.tech/tags/library.md>), [sqldelight](<https://devfeed.tech/tags/sqldelight.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>)

### AI overview

Touchlab provides an overview of Kotlin Multiplatform libraries, listing libraries used by Touchlab, JetBrains, and the community, along with sample apps and a presentation on Kotlin Multiplatform library development.

### Source excerpt

Introduction to Kotlin Multiplatform explains how KMP is pragmatic programming to develop apps on multiple platforms & avoid writing code twice.