[{"data":1,"prerenderedAt":338},["ShallowReactive",2],{"blog-post-blog_en-kotlin-multiplatform-stabil-fuer-alle-plattformen":3},{"id":4,"title":5,"body":6,"cover":323,"date":324,"description":325,"draft":326,"extension":327,"meta":328,"navigation":154,"path":329,"seo":330,"stem":331,"tags":332,"__hash__":337},"blog_en\u002Fen\u002Fblog\u002Fkotlin-multiplatform-stabil-fuer-alle-plattformen.md","Kotlin Multiplatform: Stable for All Platforms",{"type":7,"value":8,"toc":318},"minimark",[9,13,18,25,62,65,69,85,285,292,307,311,314],[10,11,12],"p",{},"JetBrains officially declared Kotlin Multiplatform (KMP) stable for production use in late 2023. Since then, the ecosystem has expanded rapidly: Google announced official KMP support in May 2024, and developer adoption more than doubled from 7% in 2024 to 18% in 2025, according to Developer Ecosystem surveys.",[14,15,17],"h2",{"id":16},"what-is-kotlin-multiplatform","What Is Kotlin Multiplatform?",[10,19,20,24],{},[21,22,23],"strong",{},"Kotlin Multiplatform"," enables sharing business logic across multiple platforms without sacrificing access to platform-specific features. Key characteristics:",[26,27,28,35,50,56],"ul",{},[29,30,31,34],"li",{},[21,32,33],{},"Shared code"," for Android, iOS, web, and server within a single Kotlin project",[29,36,37,40,41,45,46,49],{},[21,38,39],{},"Platform-specific implementations"," via the ",[42,43,44],"code",{},"expect","\u002F",[42,47,48],{},"actual"," mechanism",[29,51,52,55],{},[21,53,54],{},"Full interoperability"," with existing native APIs and frameworks",[29,57,58,61],{},[21,59,60],{},"Compose Multiplatform"," for cross-platform UI, officially stable for iOS since version 1.8.0",[10,63,64],{},"Companies such as Shopify, Forbes, and Zuercher Kantonalbank already use KMP in production. Over 50,000 organizations utilize the framework worldwide.",[14,66,68],{"id":67},"architecture-and-use-cases","Architecture and Use Cases",[10,70,71,72,75,76,79,80,45,82,84],{},"KMP architecture is built around a ",[21,73,74],{},"common module"," containing platform-independent code, and ",[21,77,78],{},"platform-specific modules"," for Android, iOS, or other targets. The ",[42,81,44],{},[42,83,48],{}," pattern resolves platform differences at the language level:",[86,87,92],"pre",{"className":88,"code":89,"language":90,"meta":91,"style":91},"language-kotlin shiki shiki-themes github-light github-dark","\u002F\u002F commonMain\nexpect class PlatformInfo() {\n    val name: String\n    val version: String\n}\n\n\u002F\u002F androidMain\nactual class PlatformInfo actual constructor() {\n    actual val name: String = \"Android\"\n    actual val version: String = Build.VERSION.RELEASE\n}\n\n\u002F\u002F iosMain\nactual class PlatformInfo actual constructor() {\n    actual val name: String = \"iOS\"\n    actual val version: String = UIDevice.currentDevice.systemVersion\n}\n","kotlin","",[42,93,94,103,121,133,143,149,156,162,180,201,217,222,227,233,248,264,280],{"__ignoreMap":91},[95,96,99],"span",{"class":97,"line":98},"line",1,[95,100,102],{"class":101},"sJ8bj","\u002F\u002F commonMain\n",[95,104,106,110,114,118],{"class":97,"line":105},2,[95,107,109],{"class":108},"sVt8B","expect ",[95,111,113],{"class":112},"szBVR","class",[95,115,117],{"class":116},"sScJk"," PlatformInfo",[95,119,120],{"class":108},"() {\n",[95,122,124,127,130],{"class":97,"line":123},3,[95,125,126],{"class":112},"    val",[95,128,129],{"class":108}," name: ",[95,131,132],{"class":116},"String\n",[95,134,136,138,141],{"class":97,"line":135},4,[95,137,126],{"class":112},[95,139,140],{"class":108}," version: ",[95,142,132],{"class":116},[95,144,146],{"class":97,"line":145},5,[95,147,148],{"class":108},"}\n",[95,150,152],{"class":97,"line":151},6,[95,153,155],{"emptyLinePlaceholder":154},true,"\n",[95,157,159],{"class":97,"line":158},7,[95,160,161],{"class":101},"\u002F\u002F androidMain\n",[95,163,165,168,170,172,175,178],{"class":97,"line":164},8,[95,166,167],{"class":108},"actual ",[95,169,113],{"class":112},[95,171,117],{"class":116},[95,173,174],{"class":108}," actual ",[95,176,177],{"class":116},"constructor",[95,179,120],{"class":108},[95,181,183,186,189,191,194,197],{"class":97,"line":182},9,[95,184,185],{"class":108},"    actual ",[95,187,188],{"class":112},"val",[95,190,129],{"class":108},[95,192,193],{"class":116},"String",[95,195,196],{"class":112}," =",[95,198,200],{"class":199},"sZZnC"," \"Android\"\n",[95,202,204,206,208,210,212,214],{"class":97,"line":203},10,[95,205,185],{"class":108},[95,207,188],{"class":112},[95,209,140],{"class":108},[95,211,193],{"class":116},[95,213,196],{"class":112},[95,215,216],{"class":108}," Build.VERSION.RELEASE\n",[95,218,220],{"class":97,"line":219},11,[95,221,148],{"class":108},[95,223,225],{"class":97,"line":224},12,[95,226,155],{"emptyLinePlaceholder":154},[95,228,230],{"class":97,"line":229},13,[95,231,232],{"class":101},"\u002F\u002F iosMain\n",[95,234,236,238,240,242,244,246],{"class":97,"line":235},14,[95,237,167],{"class":108},[95,239,113],{"class":112},[95,241,117],{"class":116},[95,243,174],{"class":108},[95,245,177],{"class":116},[95,247,120],{"class":108},[95,249,251,253,255,257,259,261],{"class":97,"line":250},15,[95,252,185],{"class":108},[95,254,188],{"class":112},[95,256,129],{"class":108},[95,258,193],{"class":116},[95,260,196],{"class":112},[95,262,263],{"class":199}," \"iOS\"\n",[95,265,267,269,271,273,275,277],{"class":97,"line":266},16,[95,268,185],{"class":108},[95,270,188],{"class":112},[95,272,140],{"class":108},[95,274,193],{"class":116},[95,276,196],{"class":112},[95,278,279],{"class":108}," UIDevice.currentDevice.systemVersion\n",[95,281,283],{"class":97,"line":282},17,[95,284,148],{"class":108},[10,286,287],{},[288,289],"img",{"alt":290,"src":291},"KMP Target Architecture","\u002Fimg\u002Fblog\u002Fkotlin-multiplatform-architektur.png",[10,293,294,295,298,299,302,303,306],{},"Typical use cases include sharing ",[21,296,297],{},"networking layers",", ",[21,300,301],{},"data models",", and ",[21,304,305],{},"business logic",". Google has already released Jetpack libraries such as Room, DataStore, and ViewModel with KMP support.",[14,308,310],{"id":309},"why-this-matters","Why This Matters",[10,312,313],{},"With stable backing from both JetBrains and Google, Kotlin Multiplatform has reached a critical level of maturity. Teams can now build cross-platform projects with a single technology stack without compromising native performance or platform-specific capabilities. Eliminating redundant codebases reduces maintenance overhead and significantly accelerates time-to-market for new features.",[315,316,317],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":91,"searchDepth":105,"depth":105,"links":319},[320,321,322],{"id":16,"depth":105,"text":17},{"id":67,"depth":105,"text":68},{"id":309,"depth":105,"text":310},"\u002Fimg\u002Fblog\u002Fkotlin-multiplatform-cover.jpg","2026-02-27","Kotlin Multiplatform has reached stable status, enabling shared business logic across Android, iOS, web, and server.",false,"md",{},"\u002Fen\u002Fblog\u002Fkotlin-multiplatform-stabil-fuer-alle-plattformen",{"title":5,"description":325},"en\u002Fblog\u002Fkotlin-multiplatform-stabil-fuer-alle-plattformen",[333,334,335,336],"Kotlin","KMP","Cross-Platform","Mobile","9LXN8S83AVKbqjCvquZfx-2LvxszagKtbi4wfPbqtyY",1775680579250]