# Kotlin

Kotlin is a programming language for multiplatform, backend, and Android development.

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

## Релиз OpenIDE 2026.2: одна IDE для Java, Kotlin, Go, Python и веб-разработки

DevFeed: [Релиз OpenIDE 2026.2: одна IDE для Java, Kotlin, Go, Python и веб-разработки](<https://devfeed.tech/articles/openide-2026-2-ide-java-kotlin-go-python-40883.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/haulmont/news/1083296/>)

Author: honest\_niceman (Haulmont)

Published: 2026-09-17T09:12:16Z

Content type: release

Language: ru

Sources: [Tagir Valeev](<https://devfeed.tech/sources/tagir-valeev.md>)

Topics: [intellij-platform](<https://devfeed.tech/topics/intellij-platform.md>), [Java](<https://devfeed.tech/topics/java.md>), [Git](<https://devfeed.tech/topics/git.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Go](<https://devfeed.tech/topics/go.md>), [Python](<https://devfeed.tech/topics/python.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [2](<https://devfeed.tech/tags/2.md>), [2026](<https://devfeed.tech/tags/2026.md>), [2026-2](<https://devfeed.tech/tags/2026-2.md>), [compose](<https://devfeed.tech/tags/compose.md>), [db-eaa4bca15522](<https://devfeed.tech/tags/db-eaa4bca15522.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-bdf52bf499c4](<https://devfeed.tech/tags/docker-bdf52bf499c4.md>), [git](<https://devfeed.tech/tags/git.md>), [go](<https://devfeed.tech/tags/go.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ide-1f5689fe989b](<https://devfeed.tech/tags/ide-1f5689fe989b.md>), [ide-af948443b041](<https://devfeed.tech/tags/ide-af948443b041.md>), [ide-java-0ad4946a0e57](<https://devfeed.tech/tags/ide-java-0ad4946a0e57.md>), [intellij-idea-27f15aabb340](<https://devfeed.tech/tags/intellij-idea-27f15aabb340.md>), [intellij-platform](<https://devfeed.tech/tags/intellij-platform.md>), [java](<https://devfeed.tech/tags/java.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [openide](<https://devfeed.tech/tags/openide.md>), [openide-2026-2](<https://devfeed.tech/tags/openide-2026-2.md>), [openide-pro](<https://devfeed.tech/tags/openide-pro.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [sql](<https://devfeed.tech/tags/sql.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

OpenIDE 2026.2 updates its base platform, expands Java and Kotlin support, improves Git and Gradle workflows, and updates its Java profiler. The release also includes improvements to the DB client and Docker plugin, including SQL formatting, Greenplum support, JSON highlighting, and enhanced Compose service management.

### Source excerpt

Обновили базовую платформу до версии 2026.2, расширили поддержку Java и Kotlin, улучшили работу с Git и обновили Java-профилировщик. Доработали редактор и подсказки в терминале, добавили проверки настроек Gradle и упростили переход к исходникам библиотек. Через Git worktrees теперь можно работать с несколькими ветками одновременно. Читать далее

## Shopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffs

DevFeed: [Shopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffs](<https://devfeed.tech/articles/shopify-drops-react-native-for-swift-and-kotlin-as-ai-changes-cross-platform-development-tradeoffs-30912.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/shopify-drops-react-native/>)

Author: Bruno Couriol

Published: 2026-09-16T12:45:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [React Native](<https://devfeed.tech/topics/react-native.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [AI Models](<https://devfeed.tech/topics/ai-models.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [android](<https://devfeed.tech/tags/android.md>), [apple](<https://devfeed.tech/tags/apple.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [development](<https://devfeed.tech/tags/development.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [news](<https://devfeed.tech/tags/news.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [shopify-drops-react-native](<https://devfeed.tech/tags/shopify-drops-react-native.md>), [swift](<https://devfeed.tech/tags/swift.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

Shopify is rewriting its flagship mobile apps in Swift and Kotlin after reassessing React Native. The decision followed the expected work to adopt React Native's New Architecture and improvements in AI coding models, which Shopify said made a clean-slate native rewrite more attractive than migration.

### Source excerpt

Shopify recently announced it is abandoning React Native to rewrite its flagship apps in Swift and Kotlin. With the significant jump in the quality of AI models, Head of Mobile Mustafa Ali reassessed Shopify's commitment to React Native, estimating that the benefit/cost ratio of maintaining native codebases across mobile platforms was now above that of using an abstraction layer. By Bruno Couriol

## Kotlin on the server at Khan Academy

DevFeed: [Kotlin on the server at Khan Academy](<https://devfeed.tech/articles/kotlin-on-the-server-at-khan-academy-27389.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/kotlin-adoption.htm>)

Author: Khan Academy

Published: 2018-06-28T22:00:00Z

Content type: article

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [backend-development](<https://devfeed.tech/topics/backend-development.md>), [Python](<https://devfeed.tech/topics/python.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bigquery](<https://devfeed.tech/tags/bigquery.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [google](<https://devfeed.tech/tags/google.md>), [http](<https://devfeed.tech/tags/http.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [news](<https://devfeed.tech/tags/news.md>), [python](<https://devfeed.tech/tags/python.md>), [server-side-development](<https://devfeed.tech/tags/server-side-development.md>)

### AI overview

Khan Academy describes testing Kotlin for user-facing server requests during a 2018 hackathon and deciding to adopt Kotlin as a second server-side language after reporting positive efficiency results and a positive developer experience.

### Source excerpt

By Colin Fuller At Khan Academy, we run our web application using Python 2.7 on Google's App Engine ... Read more

## Go + Services = One Goliath Project

DevFeed: [Go + Services = One Goliath Project](<https://devfeed.tech/articles/go-services-one-goliath-project-27378.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/goliath.htm>)

Author: Khan Academy

Published: 2019-12-20T23:00:00Z

Content type: opinion

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Python](<https://devfeed.tech/topics/python.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [end-of-life](<https://devfeed.tech/tags/end-of-life.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [go](<https://devfeed.tech/tags/go.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [news](<https://devfeed.tech/tags/news.md>), [performance](<https://devfeed.tech/tags/performance.md>), [services](<https://devfeed.tech/tags/services.md>)

### AI overview

Khan Academy describes its effort to rebuild server software on Go's modern stack. The article explains why moving from Python 2 to Python 3 offered limited benefits, considers Kotlin and other options, and presents faster languages as a way to improve responsiveness and reduce server costs.

### Source excerpt

By Kevin Dangoor Go + Services = One Goliath Project Khan Academy is embarking on a huge effort ... Read more

## Kotlin for Python developers

DevFeed: [Kotlin for Python developers](<https://devfeed.tech/articles/kotlin-for-python-developers-27390.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/kotlin-for-python-developers.htm>)

Author: Khan Academy

Published: 2018-11-29T23:00:00Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Python](<https://devfeed.tech/topics/python.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [content-platform](<https://devfeed.tech/tags/content-platform.md>), [developers](<https://devfeed.tech/tags/developers.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [guide](<https://devfeed.tech/tags/guide.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learning](<https://devfeed.tech/tags/learning.md>), [news](<https://devfeed.tech/tags/news.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

Khan Academy Engineering publicly released a Kotlin for Python developers guide after adopting Kotlin as an alternative backend language alongside Python. The textbook-style resource explains Kotlin in terms familiar to Python developers, while noting that it is not comprehensive and is provided as-is.

### Source excerpt

By Aasmund Eldhuset Earlier this year, the Khan Academy Engineering organization decided to introduce Kotlin as an alternative ... Read more

## Kotlin 2.4.20 Collection Checks and Experimental Context-Sensitive Resolution

DevFeed: [Kotlin 2.4.20 Collection Checks and Experimental Context-Sensitive Resolution](<https://devfeed.tech/articles/features-you-waited-for-so-long-in-kotlin-22944.md>)

Original publisher: [Read original article](<https://proandroiddev.com/features-you-waited-for-so-long-in-kotlin-6c822e9e344a?source=rss----c72404660798---4>)

Author: Andrii Dubovyk

Published: 2026-09-14T06:32:51Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [collections](<https://devfeed.tech/tags/collections.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [features](<https://devfeed.tech/tags/features.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [list](<https://devfeed.tech/tags/list.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

The article explains two Kotlin features: allDistinctBy and allEqualBy in Kotlin 2.4.20 for checking collection values, and experimental context-sensitive resolution introduced in Kotlin 2.2 to reduce repetition when the expected type is known.

### Source excerpt

Kotlin 2.4.20 gives your collections opinions, and 2.2's compiler finally learns to read the room Some Kotlin features get a lot of attention when they arrive. Others are much less noticeable, but still make everyday code a little easier to write. Two examples of the latter are allDistinctBy/ allEqualBy in Kotlin 2.4.20 and context-sensitive resolution, which was introduced experimentally in Kotlin 2.2. allDistinctBy/ allEqualBy: A Simpler Way to Check Collections For years, checking whether all values in a collection were unique often looked something like this: val users = listOf( User(name = "A", age = 20), User(name = "B", age = 25), User(name = "C", age = 30) ) users.map { it.age }.distinct().size == users.size // true It works, but it creates another list, removes duplicates, counts the result, and then compares the sizes just to get a Boolean answer. Kotlin 2.4.20 adds a more direct way to express the same check: users.allDistinctBy { it.age } // true users.allEqualBy { it.age } // false allDistinctBy returns false as soon as it finds a duplicate, so it doesn't need to process the entire collection or create a separate Set. allEqualBy does the opposite: it checks whether all elements produce the same value when passed through the selector. Both functions work with Iterable, Sequence, and arrays. They use structural equality. For floating-point values, they follow Double.equals semantics, so NaN is considered equal to NaN, while -0.0 is different from 0.0. They're still @ExperimentalStdlibApi, so you'll need to opt in before using them in production code. The underlying allDistinct() and allEqual() requests have also been around in YouTrack for quite a while, which makes their appearance in the standard library feel long overdue. Context-Sensitive Resolution: Less Repetition in when The second feature is more about syntax. When the compiler already knows the type you're working with, you can sometimes leave out the type qualifier. Before: enum class Problem {

## Kotlin Explicit Backing Fields: Encapsulation Tradeoffs and Downcasting Risks

DevFeed: [Kotlin Explicit Backing Fields: Encapsulation Tradeoffs and Downcasting Risks](<https://devfeed.tech/articles/the-downcast-trap-in-kotlin-s-explicit-backing-fields-22951.md>)

Original publisher: [Read original article](<https://proandroiddev.com/the-downcast-trap-in-kotlins-explicit-backing-fields-626ef0d66e50?source=rss----c72404660798---4>)

Author: Ehab Elwan

Published: 2026-09-13T05:31:32Z

Content type: opinion

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Code](<https://devfeed.tech/topics/code.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [article](<https://devfeed.tech/tags/article.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [memory](<https://devfeed.tech/tags/memory.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [stateflow](<https://devfeed.tech/tags/stateflow.md>)

### AI overview

This article compares Kotlin's traditional private mutable property plus public read-only wrapper with explicit backing fields. It explains that explicit backing fields can avoid an extra wrapper allocation, but because the underlying object remains mutable, an external downcast may bypass the intended read-only restriction and mutate internal state.

### Source excerpt

Why eliminating the double-property boilerplate changes how we protect our architecture Image generated by AIDisclosure: This article was drafted by me and refined with the help of AI tools. If you have written Kotlin in the last few years, you are intimately familiar with the double-property boilerplate. Whether in Android ViewModels or general state holders, maintaining a private mutable property alongside a public read-only property is a chore we have all accepted in the name of strict encapsulation to prevent our internal state from being hijacked by outside classes. It makes the code significantly cleaner (and slightly more memory efficient). However, it fundamentally changes how we protect our state, moving from a physical object boundary to a simple type restriction. Let's look at the tradeoff. The Old Way: Wrapper Protection For years, the standard approach to encapsulating state has looked like this: class OldViewModel { // 1. The private mutable state private val _uiState = MutableStateFlow(UiState()) // 2. The public read-only state val uiState: StateFlow<UiState> = _uiState.asStateFlow() } This is tedious to write, but it provides a strict architectural guarantee. When you call .asStateFlow(), Kotlin does not just change the type; it creates a brand new wrapper object in memory (ReadonlyStateFlow). While this physical barrier is fantastic for safety, it does mean you are incurring a minor memory allocation overhead by creating a secondary wrapper object for every exposed state. The New Way: Upcasting Explicit Backing Fields allow you to merge these two properties into one concise declaration, bypassing that extra memory allocation entirely: class NewViewModel { val uiState: StateFlow<UiState> field = MutableStateFlow(UiState()) } Inside your class, the Kotlin compiler smart-casts the field so you can mutate it internally. Outside the class, the compiler restricts callers to the read-only StateFlow interface. It looks incredibly clean and saves an allocat

## Announcing ADK for Kotlin 1.0: Building Production-Ready AI Agents in Kotlin, Android, and Beyond

DevFeed: [Announcing ADK for Kotlin 1.0: Building Production-Ready AI Agents in Kotlin, Android, and Beyond](<https://devfeed.tech/articles/announcing-adk-for-kotlin-1-0-building-production-ready-ai-agents-in-kotlin-android-and-beyond-4204.md>)

Original publisher: [Read original article](<https://developers.googleblog.com/announcing-adk-for-kotlin-10-building-production-ready-ai-agents-in-kotlin-android-and-beyond/>)

Author: Guillaume Laforge

Published: 2026-09-12T11:04:33.891311Z

Content type: release

Language: en

Sources: [Google Developers Blog](<https://devfeed.tech/sources/google-developers-blog.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Google](<https://devfeed.tech/topics/google.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [Agent Skill](<https://devfeed.tech/topics/agent-skill.md>), [LiteRT](<https://devfeed.tech/topics/litert.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [agent-skill](<https://devfeed.tech/tags/agent-skill.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [android](<https://devfeed.tech/tags/android.md>), [building](<https://devfeed.tech/tags/building.md>), [database](<https://devfeed.tech/tags/database.md>), [development-kit](<https://devfeed.tech/tags/development-kit.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [incident](<https://devfeed.tech/tags/incident.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

Google announces the 1.0 general availability release of the Agent Development Kit (ADK) for Kotlin, a production-ready toolkit for building multi-agent applications with Kotlin, Java, and Android. Built on Kotlin Multiplatform, it provides feature parity with the ADK 1.0 Core and adds Android-first extensions for on-device agents with LiteRT-LM and ML Kit, hybrid cloud workflows through Firebase AI Logic, and state persistence with Room and AppSearch. The release also includes type-safe, compile-time function calling through KSP and declarative agent skills.

### Source excerpt

Google has officially released version 1.0 of the Agent Development Kit (ADK) for Kotlin, achieving full feature parity with the Python and Java ADK cores to enable idiomatic, multi-agent AI development. Built on Kotlin Multiplatform (KMP), the framework leverages Kotlin Symbol Processing (KSP) for zero-reflection, type-safe function calling, alongside advanced orchestration capabilities like human-in-the-loop workflows and context compaction. Additionally, the release introduces a robust suite of Android-first extensions, allowing mobile developers to integrate local models via LiteRT-LM, cloud reasoning through Firebase AI, session persistence using Room, and semantic memory powered by AppSearch.

## Native is now the future of mobile at Shopify

DevFeed: [Native is now the future of mobile at Shopify](<https://devfeed.tech/articles/native-is-now-the-future-of-mobile-at-shopify-31158.md>)

Original publisher: [Read original article](<https://simonwillison.net/2026/Sep/10/shopify-react-native/>)

Author: Simon Willison

Published: 2026-09-10T21:11:15Z

Content type: opinion

Language: en

Sources: [Simon Willison's Weblog](<https://devfeed.tech/sources/simon-willison-s-weblog.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [React Native](<https://devfeed.tech/topics/react-native.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Android](<https://devfeed.tech/topics/android.md>), [Generative AI](<https://devfeed.tech/topics/generative-ai.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-2-236](<https://devfeed.tech/tags/ai-2-236.md>), [ai-assisted-search](<https://devfeed.tech/tags/ai-assisted-search.md>), [ai-assisted-search-36](<https://devfeed.tech/tags/ai-assisted-search-36.md>), [android](<https://devfeed.tech/tags/android.md>), [android-14](<https://devfeed.tech/tags/android-14.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [coding-agents-248](<https://devfeed.tech/tags/coding-agents-248.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [generative-ai-1-982](<https://devfeed.tech/tags/generative-ai-1-982.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-26](<https://devfeed.tech/tags/ios-26.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [llms](<https://devfeed.tech/tags/llms.md>), [llms-1-948](<https://devfeed.tech/tags/llms-1-948.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-41](<https://devfeed.tech/tags/mobile-41.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [open-source-320](<https://devfeed.tech/tags/open-source-320.md>), [react](<https://devfeed.tech/tags/react.md>), [react-43](<https://devfeed.tech/tags/react-43.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [shopify-8](<https://devfeed.tech/tags/shopify-8.md>), [swift](<https://devfeed.tech/tags/swift.md>), [swift-12](<https://devfeed.tech/tags/swift-12.md>)

### AI overview

Shopify is moving its mobile apps from React Native back to separate Swift and Kotlin codebases. The article explains that AI agents can now handle enough implementation, translation, testing, and review work to reduce the cost of maintaining separate platforms. It also notes the planned relocation or archival of Shopify's React Native libraries.

### Source excerpt

Native is now the future of mobile at Shopify Shopify are moving from React Native back to separate Swift and Kotlin codebases for their native apps, for the exact reason you would expect: We decided to switch from native to React Native in 2020 for three reasons: Stop building the same features twice Allow developers to work across the stack Spend less time chasing feature parity and more time shipping value [...] Native still means building and maintaining software on two platforms, that cost has not disappeared. What changed is that agents can now do enough of the implementation, translation, testing, and review work that it's no longer the deciding factor it was in 2020. It's a well-written post, which gives full credit to React Native as a great platform for the six years they were using it. Shopify are the maintainers of three significant React Native libraries: react-native-skia, flash-list, and restyle. The first two are finding new homes; the third "has a smaller user base than our other libraries" and will be archived at the end of 2026. Via Hacker News Tags: android, mobile, open-source, ios, ai, react, generative-ai, llms, ai-assisted-search, coding-agents, swift, shopify

## Kodebits Day 90: Named Arguments \[FREE\]

DevFeed: [Kodebits Day 90: Named Arguments \[FREE\]](<https://devfeed.tech/articles/kodebits-day-90-named-arguments-free-11507.md>)

Original publisher: [Read original article](<https://www.kodeco.com/52032926-kodebits-day-90-named-arguments>)

Published: 2026-09-10T17:00:05Z

Content type: tutorial

Language: en

Sources: [Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more](<https://devfeed.tech/sources/kodeco-high-quality-programming-tutorials-ios-android-swift-kotlin-unity-and-more.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [development](<https://devfeed.tech/tags/development.md>), [free](<https://devfeed.tech/tags/free.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>)

### AI overview

A short Kotlin challenge for practicing named arguments.

### Source excerpt

Practice arguments with a short kotlin challenge.

## Koin Compiler 1.2: Compile-Time Safety for ALL Koin DSL

DevFeed: [Koin Compiler 1.2: Compile-Time Safety for ALL Koin DSL](<https://devfeed.tech/articles/koin-compiler-1-2-compile-time-safety-for-all-koin-dsl-22973.md>)

Original publisher: [Read original article](<https://blog.insert-koin.io/koin-compiler-1-2-compile-time-safety-for-all-koin-dsl-4603787b9921?source=rss----925561f2ecdf---4>)

Author: Arnaud Giuliani

Published: 2026-09-10T12:01:01Z

Content type: release

Language: en

Sources: [Koin developers - Medium](<https://devfeed.tech/sources/koin-developers-medium.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [koin](<https://devfeed.tech/tags/koin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>)

### AI overview

Koin Compiler Plugin 1.2, with 1.2.1 as the latest patch, extends compile-time validation to Koin's reified, constructor, and classic lambda DSLs. It also adds visibility across Gradle modules, supports additional entry points, and provides one artifact for Kotlin 2.3.20 through 2.4.20 without requiring a DSL migration.

### Source excerpt

Hello, dear Koin community 👋 I'm happy to share that Koin Compiler Plugin 1.2 is out, with 1.2.1 already available as the latest patch. Developer mascott unboxing new Koin Features!TL;DR Compile-time validation now works on the Koin application you already have, where before 1.2 it only covered code written specifically for the compiler plugin. Koin DSL -- All now covered! All Koin DSL: the plugin's reified DSL, Koin's constructor DSL (singleOf(::T)), and the classic lambda DSL (single { Foo(get()) }). Across Gradle modules: definitions are now visible two or more implementation hops away. More entry points: Ktor's install(Koin) and KoinApplication.withConfiguration<T>(). One artifact for Kotlin 2.3.20 through 2.4.20. You get there with no migration to a new DSL, and nothing to rewrite. Let's go through what shipped. Covering now all Koin DSL Until now, compile-time safety only covered the plugin's own reified DSL, which means the two DSL styles you have most likely already written were invisible to it. val appModule = module { single<UserService>() // checked singleOf(::UserRepository) // not checked before 1.2 single { AnalyticsHelper(get()) } // not checked before 1.2 } Three ways to declare a definition, and only the first was validated. If your UserRepository needed a Database that no module provided, your build passed and Koin threw at runtime. In 1.2, all three are validated. The two DSL styles get there differently. For the constructor DSL, the referenced constructor's parameters become real requirements, exactly like single<T>(), and any named() qualifier you put on the registration is matched against the consumers that ask for it. The classic lambda DSL works differently. The plugin doesn't try to work out dependencies from free-form lambda code. What it validates instead are the get() calls you wrote inside the lambda, treated as ordinary resolution call sites. Before 1.2 those calls were skipped on purpose, because a hand-written get() is difficult to dis

## A Multi-Module Android Template with Kotlin Convention Plugins, Lint Rules, and Design System Tokens

DevFeed: [A Multi-Module Android Template with Kotlin Convention Plugins, Lint Rules, and Design System Tokens](<https://devfeed.tech/articles/forget-the-setup-tax-a-production-ready-multi-module-android-template-22945.md>)

Original publisher: [Read original article](<https://proandroiddev.com/forget-the-setup-tax-a-production-ready-multi-module-android-template-f4c879c97205?source=rss----c72404660798---4>)

Author: Shamil Gulmetov

Published: 2026-09-09T01:34:18Z

Content type: tutorial

Language: en

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

Topics: [Template](<https://devfeed.tech/topics/template.md>), [Android](<https://devfeed.tech/topics/android.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [now-in-android](<https://devfeed.tech/topics/now-in-android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-architecture](<https://devfeed.tech/tags/android-architecture.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [automation](<https://devfeed.tech/tags/automation.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [build](<https://devfeed.tech/tags/build.md>), [compose](<https://devfeed.tech/tags/compose.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [now-in-android](<https://devfeed.tech/tags/now-in-android.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>)

### AI overview

This tutorial presents an Android Architecture Template based on patterns from Google's Now in Android repository. It describes a multi-module structure with Gradle Version Catalogs, Kotlin Convention Plugins, Jetpack Compose design tokens and dark-theme support, dependency injection, custom Lint rules, and a terminal-based renaming tool.

### Source excerpt

How to streamline your development workflow with pre-configured Kotlin Convention Plugins, custom Lint rules, and unified design system tokens. Creating a new Android application from scratch in modern engineering is rarely as simple as clicking File -> New -> New Project in Android Studio. Before writing a single line of business logic, developers face hours -- or even days -- of repetitive infrastructure setup: Configuring a scalable multi-module architecture. Setting up Gradle Version Catalogs and writing custom Kotlin Convention Plugins to eliminate build script duplication. Standardizing design tokens and dark theme support in Jetpack Compose. Wiring up Hilt Dependency Injection for Coroutine Dispatchers, network, and Application Scopes. Enforcing architectural boundaries and team coding standards using custom static analysis (Lint) rules. Google's official Now in Android (NiA) repository is the recognized gold standard for modern Android engineering. However, because NiA is a full-featured showcase app with domain logic (news feeds, authors, bookmarks, offline sync), using it as a starter kit is cumbersome: developers must strip out existing features while risking breaking build pipelines. This Android Architecture Template bridges that gap: a clean, production-ready starter kit that extracts NiA's best architectural patterns into an isolated foundation. To make it enterprise-ready with zero room for error, it includes a standalone automation tool. Instead of manual refactoring, run a single terminal command to rename and brand the entire architecture in seconds. Acknowledgments & Credits Core architectural decisions, build-logic convention plugins, and static analysis infrastructure in this template are directly inspired by Google's official Now in Android (NiA) repository. Rather than reinventing the wheel, this template focuses on developer ergonomics--making Google's best practices instantly usable out of the box. 1. Modular Project Architecture The repository

## Setting Up Koin in a Real Kotlin Multiplatform Project: A Step-by-Step Guide

DevFeed: [Setting Up Koin in a Real Kotlin Multiplatform Project: A Step-by-Step Guide](<https://devfeed.tech/articles/setting-up-koin-in-real-project-a-step-by-step-guide-22976.md>)

Original publisher: [Read original article](<https://blog.insert-koin.io/setting-up-koin-in-real-project-a-step-by-step-guide-1575e2357239?source=rss----925561f2ecdf---4>)

Author: Gabriel Bronzatti Moro

Published: 2026-09-07T12:01:03Z

Content type: tutorial

Language: en

Sources: [Koin developers - Medium](<https://devfeed.tech/sources/koin-developers-medium.md>)

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [guide](<https://devfeed.tech/tags/guide.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [ios](<https://devfeed.tech/tags/ios.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>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [module](<https://devfeed.tech/tags/module.md>), [viewmodel](<https://devfeed.tech/tags/viewmodel.md>)

### AI overview

A step-by-step tutorial for setting up Koin in a Kotlin Multiplatform project targeting Android and iOS. It covers dependencies, data, domain, and UI modules, a platform bridge, platform entry points, and dependency injection in Composables.

### Source excerpt

Hi everyone! 👋 In this article, we'll take a practical, step-by-step approach to setting up Koin in a real-world Kotlin Multiplatform (KMP) project. Instead of starting with an isolated example or a simple Hello World, we'll work with a project created by the CodandoTV community: the World Cup Best Team Simulator. The app allows users to browse football players by country and build their own dream team. It runs on both Android and iOS, using Kotlin Multiplatform for sharing business and data logic, and Compose Multiplatform to share the UI across platforms. Step 1: Add Koin Dependencies Add the Koin libraries to your version catalog: # gradle/libs.versions.toml [versions] koin = "4.2.2" [libraries] koin_core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" } koin_android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } koin_compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" } koin_compose_viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin" } In the shared module shared/build.gradle.kts, split the dependencies by source set -- commonMain gets the shared Koin libraries, androidMain gets the Android-specific one: // shared/build.gradle.kts sourceSets { commonMain.dependencies { implementation(libs.koin.core) implementation(libs.koin.compose) implementation(libs.koin.compose.viewmodel) } androidMain.dependencies { implementation(libs.koin.android) } } In the Android app module androidApp/build.gradle.kts , add the Android Koin dependency: // androidApp/build.gradle.kts dependencies { implementation(libs.koin.android) implementation(libs.koin.core) }Step 2: Create the Data Module Create shared/src/commonMain/.../data/DataModule.kt . This module provides singleton instances -- repositories, and data sources that live for the entire app lifecycle. val dataModule = module { single<WorldCupRepository> { WorldCupRepositoryImpl(ioDispatcher = Dispatchers.IO) } }Step 3: Create

## Kodebits Day 87: Default Parameters \[FREE\]

DevFeed: [Kodebits Day 87: Default Parameters \[FREE\]](<https://devfeed.tech/articles/kodebits-day-87-default-parameters-free-11504.md>)

Original publisher: [Read original article](<https://www.kodeco.com/52032919-kodebits-day-87-default-parameters>)

Published: 2026-09-06T16:00:57Z

Content type: tutorial

Language: en

Sources: [Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more](<https://devfeed.tech/sources/kodeco-high-quality-programming-tutorials-ios-android-swift-kotlin-unity-and-more.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [development](<https://devfeed.tech/tags/development.md>), [free](<https://devfeed.tech/tags/free.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn](<https://devfeed.tech/tags/learn.md>)

### AI overview

A short Kotlin challenge focused on practicing default parameters.

### Source excerpt

Practice parameters with a short kotlin challenge.

## Using the new Google Gen AI SDK for Kotlin

DevFeed: [Using the new Google Gen AI SDK for Kotlin](<https://devfeed.tech/articles/using-the-new-google-gen-ai-sdk-for-kotlin-25196.md>)

Original publisher: [Read original article](<https://johnoreilly.dev/posts/genai-kotlin-sdk/>)

Published: 2026-09-04T23:00:00Z

Content type: tutorial

Language: en

Sources: [John O'Reilly](<https://devfeed.tech/sources/john-o-reilly.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Google](<https://devfeed.tech/topics/google.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [apis](<https://devfeed.tech/tags/apis.md>), [google](<https://devfeed.tech/tags/google.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

This tutorial shows how to replace hand-written Gemini REST calls with Google's version 1.0 Gen AI SDK for Kotlin. It covers the SDK's coroutine- and Flow-based client, video and text requests, and structured JSON output.

### Source excerpt

Google have just released version 1.0 of the Gen AI SDK for Kotlin, an idiomatic Kotlin client for the Gemini APIs. Up to now, calling Gemini from Kotlin has generally meant use of one of the Firebase SDKs, a community wrapper, an agent framework like Koog, or (as in the code below) just talking to the REST endpoint yourself. This is Google's own Kotlin library for it, built around coroutines and Flow.

## Kodebits August 2026: Kotlin Takes the Lead \[FREE\]

DevFeed: [Kodebits August 2026: Kotlin Takes the Lead \[FREE\]](<https://devfeed.tech/articles/kodebits-august-2026-kotlin-takes-the-lead-free-11510.md>)

Original publisher: [Read original article](<https://www.kodeco.com/54081605-kodebits-august-2026-kotlin-takes-the-lead>)

Author: samdavies

Published: 2026-09-03T19:54:55Z

Content type: article

Language: en

Sources: [Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more](<https://devfeed.tech/sources/kodeco-high-quality-programming-tutorials-ios-android-swift-kotlin-unity-and-more.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Android](<https://devfeed.tech/topics/android.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Dart](<https://devfeed.tech/topics/dart.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [android](<https://devfeed.tech/tags/android.md>), [article](<https://devfeed.tech/tags/article.md>), [beginner](<https://devfeed.tech/tags/beginner.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [dart](<https://devfeed.tech/tags/dart.md>), [free](<https://devfeed.tech/tags/free.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [swift](<https://devfeed.tech/tags/swift.md>)

### AI overview

Kodebits August 2026 presents 18 programming puzzles grouped by platform and ordered from beginner to advanced. Kotlin leads the month with eight entries, followed by Swift with seven and Dart with three. The Kotlin material covers everyday topics including collections, ranges, string templates, null safety, and type checking, while the roundup also highlights comparisons across Kotlin, Swift, and Dart.

### Source excerpt

Kotlin outnumbered Swift for the first time in August, and the month eased off after July's hard streak. Here's all 18 bits grouped by platform and sorted from beginner to advanced.

## WorkOS announces Agent Registration, Airlock, Relay, and native iOS and Android SDKs

DevFeed: [WorkOS announces Agent Registration, Airlock, Relay, and native iOS and Android SDKs](<https://devfeed.tech/articles/august-updates-26793.md>)

Original publisher: [Read original article](<https://workos.com/blog/august-2026-updates>)

Author: WorkOS

Published: 2026-09-02T00:00:00Z

Content type: release

Language: en

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

Topics: [SDKs](<https://devfeed.tech/topics/sdks.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [MCP](<https://devfeed.tech/topics/mcp.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [codex](<https://devfeed.tech/topics/codex.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [await](<https://devfeed.tech/tags/await.md>), [claude](<https://devfeed.tech/tags/claude.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [swift](<https://devfeed.tech/tags/swift.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

WorkOS announces August updates including Agent Registration for scoped, short-lived credentials, Airlock for authorizing AI-agent actions, Relay for proxying third-party application requests, and native Swift and Kotlin SDKs for iOS and Android.

### Source excerpt

Agent Registration, Airlock, Relay, iOS & Android SDKs, & more

## Compose Multiplatform Is a Business Decision, Not a Technical One - Justin Mancinelli

DevFeed: [Compose Multiplatform Is a Business Decision, Not a Technical One - Justin Mancinelli](<https://devfeed.tech/articles/compose-multiplatform-is-a-business-decision-not-a-technical-one-justin-mancinelli-38181.md>)

Original publisher: [Read original article](<https://touchlab.co/compose-multiplatform-business-decision>)

Published: 2026-09-01T18:00:00Z

Content type: opinion

Language: en

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

Topics: [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [React Native](<https://devfeed.tech/topics/react-native.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>)

Tags: [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [react](<https://devfeed.tech/tags/react.md>), [technical](<https://devfeed.tech/tags/technical.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This opinion article argues that Compose Multiplatform is a strategic business choice for sharing UI across Android, iOS, desktop, and web. It compares CMP with Flutter and React Native, emphasizing its Kotlin and Jetpack Compose foundations and its native status on Android.

### Source excerpt

If you are weighing Flutter, maintaining two native UI codebases "for now", or assuming cross-platform means giving something up, read this before your next roadmap conversation.

## Kodebits Day 85: Type Check As Cast \[FREE\]

DevFeed: [Kodebits Day 85: Type Check As Cast \[FREE\]](<https://devfeed.tech/articles/kodebits-day-85-type-check-as-cast-free-11502.md>)

Original publisher: [Read original article](<https://www.kodeco.com/52032913-kodebits-day-85-type-check-as-cast>)

Published: 2026-08-31T18:00:49Z

Content type: tutorial

Language: en

Sources: [Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more](<https://devfeed.tech/sources/kodeco-high-quality-programming-tutorials-ios-android-swift-kotlin-unity-and-more.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [development](<https://devfeed.tech/tags/development.md>), [free](<https://devfeed.tech/tags/free.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn](<https://devfeed.tech/tags/learn.md>)

### AI overview

A short Kodeco challenge for practicing Kotlin type checks.

### Source excerpt

Practice type checks with a short kotlin challenge.

## Consuming SKIE Flows in SwiftUI - Gustavo Fão Valvassori

DevFeed: [Consuming SKIE Flows in SwiftUI - Gustavo Fão Valvassori](<https://devfeed.tech/articles/consuming-skie-flows-in-swiftui-gustavo-fao-valvassori-38317.md>)

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

Published: 2026-08-29T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Extension](<https://devfeed.tech/topics/extension.md>)

Tags: [boilerplate](<https://devfeed.tech/tags/boilerplate.md>), [community](<https://devfeed.tech/tags/community.md>), [extensions](<https://devfeed.tech/tags/extensions.md>), [interop](<https://devfeed.tech/tags/interop.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>), [open-source](<https://devfeed.tech/tags/open-source.md>), [skie](<https://devfeed.tech/tags/skie.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>)

### AI overview

This tutorial explains how to consume Kotlin Flows in SwiftUI using SKIE. It covers enabling SKIE extensions in Gradle and collecting StateFlow values through an async collect approach, a modifier, or a view wrapper to reduce repetitive UI-layer code.

### Source excerpt

SKIE already makes the interop between Kotlin and Swift smooth, but SwiftUI adds a layer of complexity. We've included a series of extensions in SKIE to enable easy KMP usage from SwiftUI

## Kodebits Day 83: Smart Cast \[FREE\]

DevFeed: [Kodebits Day 83: Smart Cast \[FREE\]](<https://devfeed.tech/articles/kodebits-day-83-smart-cast-free-11500.md>)

Original publisher: [Read original article](<https://www.kodeco.com/52032908-kodebits-day-83-smart-cast>)

Published: 2026-08-28T18:00:52Z

Content type: tutorial

Language: en

Sources: [Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more](<https://devfeed.tech/sources/kodeco-high-quality-programming-tutorials-ios-android-swift-kotlin-unity-and-more.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [free](<https://devfeed.tech/tags/free.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn](<https://devfeed.tech/tags/learn.md>)

### AI overview

A short Kotlin challenge about smart casts and type checks. It explains that after an `is` check, Kotlin treats the value as the checked type within the `if` block, allowing direct access to String properties such as `.length`.

### Source excerpt

Practice type checks with a short kotlin challenge.

## Add sign-in to an Android app with the WorkOS Android SDK

DevFeed: [Add sign-in to an Android app with the WorkOS Android SDK](<https://devfeed.tech/articles/add-sign-in-to-an-android-app-with-the-workos-android-sdk-16062.md>)

Original publisher: [Read original article](<https://workos.com/blog/sign-in-to-an-android-app-with-the-workos-android-sdk>)

Author: WorkOS

Published: 2026-08-24T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Android](<https://devfeed.tech/topics/android.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [pkce](<https://devfeed.tech/topics/pkce.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>), [Security](<https://devfeed.tech/topics/security.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [api-keys](<https://devfeed.tech/tags/api-keys.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [flow](<https://devfeed.tech/tags/flow.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [pkce](<https://devfeed.tech/tags/pkce.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [security](<https://devfeed.tech/tags/security.md>), [sign-in](<https://devfeed.tech/tags/sign-in.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial shows how to add WorkOS AuthKit sign-in to a Kotlin Android app using the WorkOS Android SDK. It covers the Gradle dependency, Chrome Custom Tab authentication, custom-scheme redirects, PKCE token exchange, session storage and refresh, and logout without embedding a client secret in the APK.

### Source excerpt

Build a complete AuthKit flow in Kotlin, from Gradle dependency to signed-out state, with no client secret in your APK.

## Kodebits Day 80: Safe Call Operator \[FREE\]

DevFeed: [Kodebits Day 80: Safe Call Operator \[FREE\]](<https://devfeed.tech/articles/kodebits-day-80-safe-call-operator-free-11497.md>)

Original publisher: [Read original article](<https://www.kodeco.com/52032901-kodebits-day-80-safe-call-operator>)

Published: 2026-08-23T16:00:47Z

Content type: article

Language: en

Sources: [Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more](<https://devfeed.tech/sources/kodeco-high-quality-programming-tutorials-ios-android-swift-kotlin-unity-and-more.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [development](<https://devfeed.tech/tags/development.md>), [free](<https://devfeed.tech/tags/free.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn](<https://devfeed.tech/tags/learn.md>)

### AI overview

A short Kotlin challenge for practicing null-safety and the safe call operator.

### Source excerpt

Practice null-safety with a short kotlin challenge.

## Coroutine Essentials

DevFeed: [Coroutine Essentials](<https://devfeed.tech/articles/coroutine-essentials-25051.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-coroutines/>)

Author: author@typealias.com (Dave Leeds)

Published: 2026-08-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [cancellation](<https://devfeed.tech/tags/cancellation.md>), [coding](<https://devfeed.tech/tags/coding.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [deferred](<https://devfeed.tech/tags/deferred.md>), [dispatcher](<https://devfeed.tech/tags/dispatcher.md>), [exception-handling](<https://devfeed.tech/tags/exception-handling.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [job](<https://devfeed.tech/tags/job.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [launch](<https://devfeed.tech/tags/launch.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [programming](<https://devfeed.tech/tags/programming.md>), [runblocking](<https://devfeed.tech/tags/runblocking.md>), [software](<https://devfeed.tech/tags/software.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [suspend-function](<https://devfeed.tech/tags/suspend-function.md>), [withcontext](<https://devfeed.tech/tags/withcontext.md>), [yield](<https://devfeed.tech/tags/yield.md>)

### AI overview

This tutorial introduces essential Kotlin coroutine concepts for performing multiple tasks concurrently, such as making network calls while updating a screen. It aims to provide a foundation for day-to-day coding and more advanced coroutine concepts.

### Source excerpt

When you're on hold during a phone call, you might also check your email. While brewing coffee, you might also cook breakfast. And while driving a car, you might listen to a podcast. In the same way, sometimes it's helpful for the software that we write to do more than one thing at a time. For example, it could make two or three network calls at one time--all while updating the screen to show the progress of each call.

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