My KotlinConf 2026 recap from the KotlinKenya × Android254 meetup — what's new in the Kotlin language, Compose & Multiplatform, plus takeaways from the day-two keynote on building a future by hand.
× A N D R O I D 2 5 4 · J U N E M E E T U P KotlinConf '26 Recap Session What's new across Kotlin's language, tooling, AI, backend & multiplatform story - plus a note on staying human in uncertain times. Harun Wangereka Senior Mobile Engineer at Smile ID Inside KotlinConf 2026: Kotlin, Compose & Multiplatform Sat 27 Jun 2026 · 11:00 - 15:00 EAT · Daystar University, DAC Building · In-person
O V E R Agenda 01 Language & Compiler Context parameters, explicit backing fields, smarter when, 2.4 previews 02 Tooling, AI & Backend Toolchain, BTA, Doc Model, LSP, ktfmt, ACP, Junie, Air, Koog, Ktor 03 Multiplatform KMP & Metro, Compose Multiplatform and the iOS story 04 Being human under uncertainty Perception, tools, community & the practice of active hope KotlinConf '26 Recap 2
T L I N T U R N S 1 5 Kotlin is everywhere 92% of professional Android devs now use Kotlin ~50% saved on Compose perf benchmarks (R8 coroutine locks) 17% faster KSP execution on complex builds 15 years, in production everywhere Kotlin powers everyday moments - tapping to pay, commuter rail tickets, in-flight entertainment, even filing tax returns online. Kotlin at Google A decade in production. K2 in Android Studio has reached near-universal adoption, with ongoing JetBrains-Google collaboration on the compiler. KotlinConf '26 Recap 3
T A B L E I N 2 . 4 Context Parameters The successor to context receivers. A function can declare what it needs from its surrounding context - a logger, a transaction, a scope - without listing it as a normal parameter on every call. Callers provide those values once with with(...), and every function in that block can use them. APIs stay focused on core logic instead of plumbing. What it is Implicit, type-directed parameters supplied by the call-site context. Why it matters Less boilerplate, cleaner signatures, no threading deps through every layer. Status Stabilizing in 2.4; explicit context arguments added when you need them. KotlinConf '26 Recap 5
O N T E X T P A R A M E T E R S Before & After BEFORE - dependencies threaded by hand AFTER - declared on the context // logger + tx repeated everywhere fun checkout( order: Order, logger: Logger, // noise tx: Transaction, // noise ) { logger.info("checkout") tx.run { order.save() } } checkout(order, logger, tx) // context carries the deps context(logger: Logger, tx: Transaction) fun Order.checkout() { logger.info("checkout") tx.run { save() } } with(logger, tx) { order.checkout() // clean } KotlinConf '26 Recap 6
T A B L E I N 2 . 4 Explicit Backing Fields Expose a read-only type publicly, mutate a different type privately. Kills the classic _mutableState / state backing-property boilerplate. Safer and clearer - one property, two views. IDE support without the compiler flag lands in 2026.1.4. // one property, two faces val items: List<Item> field = mutableListOf() fun add(i: Item) { field.add(i) // Mutable } // callers see List<Item> KotlinConf '26 Recap 7
M A R T E R C O N T R O L F L O W Sharper when Expressions BEFORE - nested when + a redundant else AFTER - guard conditions + data-flow exhaustiveness when (result) { is Ok -> { if (result.code == 200) render(result) else -> retryLater() } is Err -> log(result) else -> {} // forced but // unreachable } when (result) { is Ok if result.code == 200 -> render(result) is Ok -> retryLater() is Err -> log(result) // exhaustive - compiler // proves it, no else } KotlinConf '26 Recap 8
X P E R I M E N T A L P R E V I E W S What's next in Kotlin 2.4 Multi-field value classes value class Money( val amount: Long, val currency: Currency, ) Collection literals val xs: List<Int> = [1, 2, 3] val m = ['a': 1, 'b': 2] // less ceremony to build Locality as first-class val items = buildList { add(1); add(2) // stays local } // compiler reasons re: scope Rich errors fun parse(s: String): Int | Error // expected errors, in the type // system - no thrown surprises Preview syntax is illustrative and subject to change. KotlinConf '26 Recap 9
I F I E D E N T R Y P O I N T Kotlin Toolchain & Build Tools API Kotlin Toolchain One command for the whole lifecycle: create, build, run, test, format, generate docs and integrate with agents. Available now for JVM & multiplatform, with Amper as its core. LSP integration, AI skills and native dependency provisioning are coming next. Build Tools API (BTA) New type-safe abstractions for most JVM & common compiler options - the BTA owns their format, so clients make fewer mistakes. Incremental compilation now tracks non-source changes too, like a different Kotlin version or changed compiler options. KotlinConf '26 Recap 11
E C O M M A N D , E N D T O E N D Kotlin Toolchain in action A single CLI covers the whole lifecycle - Amper at its core, deep IDE integration on top. kotlin - toolchain $ kotlin init my-app # scaffold a project $ kotlin build # compile everything $ kotlin run # run the app $ kotlin test # run the tests $ kotlin format # ktfmt formatting $ kotlin doc # generate docs One entry point create - build - run - test - format - doc - agent integration. Coming next: LSP integration, AI skills and native dependency provisioning. Commands are illustrative of the unified Toolchain CLI. KotlinConf '26 Recap 12
E S H U P D A T E , J U N 2 0 2 6 Kotlin Toolchain 0.11 (Alpha) Amper has graduated into the Kotlin Toolchain - now Alpha and JetBrains-supported. kotlin - toolchain 0.11 $ sdk install kotlintoolchain # global CLI $ kotlin init my-app # new project $ kotlin build # compile $ kotlin test # run tests $ kotlin publish mavenCentral # JVM lib -> Central Now Alpha Amper is now the unified `kotlin` command - JetBrains- committed. Publish to Maven Central JVM libraries in preview: signing, POM & checksums handled. KMP libs coming. Global & extensible Install once via SDKMAN; add custom checks & commands, plus cinterop bindings. Needs IntelliJ IDEA 2026.1.2+ with the Kotlin Toolchain plugin · New defaults: Kotlin 2.3.21, KSP 2.3.7, Ktor 3.4.3, Spring Boot 4.0.6, JUnit 6.0.3 KotlinConf '26 Recap 13
A R E D F O U N D A T I O N S Docs, Language Server & Formatting Four pieces of one shared foundation - each consumed by IDEs, web tools and AI agents alike. 1 Kotlin Documentation Model Machine-readable docs as a kdoc.jar - a specified, backward-compatible format published with libraries. 2 Kotlin Language Server (Alpha) LSP backed by the full IntelliJ engine; official VS Code extension now on the Marketplace. 3 ktfmt becomes core Kotlin JetBrains + Meta standardize ktfmt as a core part of Kotlin - one official, deterministic formatter. 4 First-class Bazel support Official Bazel rules_kotlin gains first-class Kotlin support - for codebases with thousands of modules. KotlinConf '26 Recap 14
N S ' 2 0 2 6 D I R E C T I O N Embracing agentic AI Any agent, in the IDE you already trust - without compromising the core coding experience. Two ways to write code Classic - type, refactor, debug - and AI - autocomplete plus agents - coexist in one IDE. Neither is treated as the better way. A human owns what ships The IDE stays the place to read, review, change and revert. Baseline: changes visible & reversible, project never left broken. Zero vendor lock-in Today's best model won't be best forever. Connect via JetBrains AI, BYOK, OAuth or ACP agents - the choice stays yours. Agentic value, where you work AI shows up in the AI Chat window, the IDE terminal, and opt-in modes where you let an agent work a task for hours. KotlinConf '26 Recap 15
U R O W N A G E N T ACP, Junie & JetBrains Air Agent Client Protocol A standard interface, so the IDE needs no bespoke integration per agent. Install agents from a curated registry or configure your own - they appear in AI chat. Cursor's agent already runs in JetBrains IDEs via ACP. Junie Now out of Beta! JetBrains' coding agent plans, debugs with IDE tools, and runs long tasks while you're AFK. Uses any model - a frontier one to plan, a cheap one to implement - and ranks among the top agents on SWE-Rebench. Dedicated Android support too. JetBrains Air An environment for many agents at once. Codex, Claude Agent, Gemini CLI and Junie run independent task loops in separate Git worktrees or Docker containers - soon as guided cloud agents from the browser. Generated code = real code: agents can edit many files, but every change stays visible, reversible and never leaves the project broken. KotlinConf '26 Recap 16
S P O T L I G H T Anthropic x Kotlin Christian Ryan (Anthropic) joined the keynote on the deepening Anthropic-JetBrains collaboration across SDKs, models and tooling. Built in Kotlin Anthropic's official JVM SDK is written in Kotlin - ergonomic, concise, null-safe - alongside the official Kotlin MCP SDK. Claude in your IDE Claude is native in IntelliJ IDEA & Android Studio, and a first-party model inside Junie and JetBrains Air. Claude Code + Kotlin LSP For CLI users, the Claude Code plugin taps JetBrains' official Kotlin LSP for deeper project understanding. 86.4% Resolution rate Kotlin SWE-bench Claude Code with Opus 4.7 posted the highest resolution rate on a new benchmark of 110 real engineering tasks from Kotlin repositories - run with identical prompts and agent configurations. KotlinConf '26 Recap 17
G E N T F R A M E W O R K Koog 1.0 is stable Build fault-tolerant, enterprise-ready AI agents in fully idiomatic Kotlin Production-ready across backend, mobile and multiplatform. Type-safe workflow DSLs Express agent logic with controlled, structured execution. Persistence & recovery Long-running agents survive restarts and resume safely. Deep ecosystem integration Works with Spring AI, Ktor and observability tooling. Multiplatform & on- device On-device AI on Android via Google's Gemma models. Case study: Mercedes-Benz builds vehicle maintenance support agents on Koog with structured workflows and carefully controlled execution. KotlinConf '26 Recap 18
I L T F O R P R O D U C T I O N Kotlin on the server Six things that landed for backend teams. Ktor + Koog Wire Koog agents straight into Ktor for AI-powered services. kotlinx-rpc gRPC Experimental first-party gRPC support lands in kotlinx-rpc. Exposed 1.0 Stable - vector types for similarity search + a Gradle migration plugin. Security support policy From 2.4 the stdlib gets an 18-month policy; fixes backported across active lines. 15-20% faster cycles JetBrains study over 28M dev cycles: Kotlin shortens cycles vs Java. JVM ecosystem Spring & JUnit docs, kotlin-maven-plugin, Micrometer coroutines, Lombok. KotlinConf '26 Recap 19
O R M - M O M E N T U M & D I KMP & Metro for Dependency Injection 2x growth in top apps using KMP 3,500+ community libraries on klibs.io 100Ms daily users served by KMP apps Metro for DI A compiler-plugin DI framework for KMP. Graphs are wired and validated at compile time - no reflection - with one idiomatic Kotlin setup shared across Android, iOS, desktop and backend. @DependencyGraph interface AppGraph { val repo: UserRepo } @Inject class UserRepo(api: Api) KotlinConf '26 Recap 21
O R M - U I & I O S Compose Multiplatform & the iOS story Compose MP Fully stable on mobile & desktop; web reached Beta in Sept 2025. Latest Jetpack Compose APIs flow across all targets. Navigation 3 A flexible, Compose-first navigation library with full back-stack control - already stable for multiplatform. Liquid Glass interop New iOS interop APIs let native Liquid Glass components interact dynamically with Compose UI underneath. Swift Export (Alpha) In 2.4, Swift Export moves to Alpha - calling Kotlin from Swift feels more natural. SPM import Add Objective-C-compatible dependencies via Swift Package Manager and call them straight from Kotlin. Kotlin/Native 25% faster On the Google Docs codebase, builds are 25% faster using under half the RAM vs a year ago. KotlinConf '26 Recap 22
O R M - S P O T L I G H T T A L K The new KMP project structure One responsibility per module: a shared library, plus an app module per platform. B E F O R E composeApp library + Android / desktop / web entry points + packaging - all in one module iosApp separate Xcode project A F T E R shared the KMP library androidApp iosApp desktopApp webApp Why now: AGP 9.0 splits the Android entry point - native UI adds sharedLogic + sharedUI - a server adds a root core module. Watch: 'Introducing the New KMP Project Structure' - live in the KMP wizard (kmp.new and the IDE). KotlinConf '26 Recap 23
H L I G H T S Language, AI & shipping to iOS A Tale of the Gradle DSLs Build logic in Kotlin • Groovy vs Kotlin DSL - how scripts evolved • Kotlin DSL default: type-safety + IDE help Lord of Collection Functions Fellowship of Kotlin · Ben Kadel • A fantasy tour of Kotlin's collections • map / filter / fold for expressive code Dissecting Kotlin: 2026 How Kotlin really works • How language features compile, under the hood • Bytecode-level insight for everyday Kotlin Redefining ML with Kotlin Device-first approach to AI • On-device ML: privacy & low latency • Kotlin / KMP as one ML language everywhere Expedited Shipping: iOS + KMP Jessalyn Wang · Amazon • Amazon's App Platform library for KMP • iOS integration: state, DI, decoupling Shipping Kotlin to iOS Suhyeon (Leah) Kim • 3 Android devs, zero Swift, 2-month deadline • The real surprises shipping iOS with KMP KotlinConf '26 Recap 25
O T E Why I lived in the iOS track “I spent most of KotlinConf in iOS sessions ” 😅 If you'd told me this a year ago, I would've laughed. But honestly, seeing what people are building with iOS and KMP right now is inspiring. 🍏🤖 The Smile ID effect: a year working across mobile at Smile ID pulled me straight into the iOS + KMP track. KotlinConf '26 Recap 27
- 1 O F 4 Your perception is your power Your attention is power - use it deliberately What you choose to focus on shapes what you build and who you become. Know your history Context and perspective make today's uncertainty easier to navigate. Fill your attention with beautiful things when you can Beauty isn't a distraction - it's fuel for the work. KotlinConf '26 Recap 29
- 2 O F 4 Your tools are your power Take pride in your work Craft matters. The care you put into your tools and code compounds over time. Embrace friction Friction is where learning and quality live - don't optimize all of it away. KotlinConf '26 Recap 30
- 3 O F 4 Your community is your power “Check on your friends and colleagues.” The people around you are the most resilient system you have. Reach out - especially to the ones who've gone quiet. Community isn't a nice-to-have; it's where you find the strength to keep building. KotlinConf '26 Recap 31
- 4 O F 4 Your practice is your power Active hope is a practice - something you do, on repeat. Active hope on repeat 1 See reality clearly Start from what's actually true. 2 Express what you'd like Name the future out loud. 3 Ask how you can help Find your leverage - where do you fit? 4 Make a small thing Ship one tiny step. KotlinConf '26 Recap 32
- and so do we. Safer, more ergonomic language Context parameters, explicit backing fields, smarter when + 2.4 previews. Tooling, AI & backend converge Toolchain, BTA, LSP, ktfmt, ACP, Junie, Air, Koog and a hardened backend. Multiplatform is mainstream KMP + Metro + Compose MP make shared, type-safe code easier than ever. Build with intention Mind your attention, craft and community - and practice active hope. Thank you - Questions?