{"id":364654,"date":"2023-06-19T11:43:37","date_gmt":"2023-06-19T10:43:37","guid":{"rendered":"https:\/\/blog.jetbrains.com\/kotlin\/2023\/05\/compose-multiplatform-for-ios-is-in-alpha\/"},"modified":"2023-09-04T16:11:16","modified_gmt":"2023-09-04T15:11:16","slug":"compose-multiplatform-for-ios-is-in-alpha","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/de\/kotlin\/2023\/06\/compose-multiplatform-for-ios-is-in-alpha\/","title":{"rendered":"Compose Multiplatform for iOS im Alpha-Stadium"},"content":{"rendered":"\n<p>Compose Multiplatform, das deklarative Framework von JetBrains zur Erstellung plattformunabh\u00e4ngiger Bedienoberfl\u00e4chen mit Kotlin, steht jetzt auch f\u00fcr iOS bereit! Dies bedeutet, dass Sie mit Compose Multiplatform Ihre Bedienoberfl\u00e4chen einmalig zu 100% in Kotlin erstellen und dann f\u00fcr Android, iOS und weitere Plattformen verwenden k\u00f6nnen.<\/p>\n\n\n\n<p>Hier ist ein kurzer \u00dcberblick \u00fcber die wichtigsten Informationen zu diesem Release:<\/p>\n\n\n\n<ul>\n<li>JetBrains hat Compose Multiplatform for iOS als Alpha ver\u00f6ffentlicht \u2013 dies bedeutet, dass das Release f\u00fcr Experimente und Testprojekte verwendet werden kann. Probieren Sie es aus und nehmen Sie Einfluss auf die Zukunft von gemeinsamen, in Kotlin entwickelten Bedienoberfl\u00e4chen f\u00fcr Mobilger\u00e4te!<\/li>\n\n\n\n<li>Compose Multiplatform verwendet APIs, die bereits f\u00fcr die UI-Entwicklung unter Android genutzt werden. Dadurch k\u00f6nnen Entwickler*innen, die etwas Erfahrung in der modernen Android-Entwicklung mitbringen, sehr einfach mit Compose Multiplatform for iOS loslegen. Neueinsteiger*innen wiederum haben den Vorteil, ihren Lernprozess auf etablierten Konzepten und Best Practices aufbauen zu k\u00f6nnen.<\/li>\n\n\n\n<li>Aufgrund des Alpha-Stadiums befinden sich viele Bereiche von Compose Multiplatform for iOS noch in der Entwicklung. Wir sind zuversichtlich, dass uns die Community dabei helfen wird, die Zukunft von gemeinsamen Kotlin-Bedienoberfl\u00e4chen zu gestalten. Testen Sie also diese neue Technologie und <a href=\"#sharefeedback\">geben Sie uns Feedback<\/a>!<\/li>\n<\/ul>\n\n\n\n<!--more-->\n\n\n\n<p><a class=\"ek-link jb-download-button\" title=\"CTA\" href=\"https:\/\/www.jetbrains.com\/de-de\/lp\/compose-multiplatform\/\" target=\"_blank\" rel=\"noopener\">Erste Schritte mit Compose for iOS<\/a><\/p>\n\n\n\n<p>JetBrains hat Compose Multiplatform for iOS auf der KotlinConf 2023 angek\u00fcndigt. F\u00fcr detaillierte Einblicke in die praktische Verwendung von Compose Multiplatform for iOS sehen Sie sich die Aufzeichnung des Vortrags \u201eCompose Multiplatform on iOS\u201c von Sebastian Aigner und Nikita Lipsky an:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\">\n<div class=\"wp-block-embed__wrapper\"><iframe loading=\"lazy\" title=\"Compose Multiplatform on iOS \u2013 von Sebastian Aigner und Nikita Lipsky\" src=\"https:\/\/www.youtube.com\/embed\/FWVi4aV36d8?feature=oembed\" width=\"500\" height=\"281\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin Multiplatform geht jetzt \u00fcber die Anwendungslogik hinaus<\/h2>\n\n\n\n<p>Mit <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform.html\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform<\/a> steht Kotlin-Entwickler*innen bereits ein bew\u00e4hrter Ansatz f\u00fcr die gemeinsame Codeverwendung zur Verf\u00fcgung. Damit kann die Anwendungslogik auf unterschiedlichen Plattformen wiederverwendet werden, ohne auf plattformspezifische APIs und Funktionen zu verzichten \u2013 ein Ansatz, der sich bereits bei vielen Produktionsanwendungen bew\u00e4hrt hat und den immer mehr Unternehmen nutzen, um ein unn\u00f6tiges Duplizieren von Gesch\u00e4ftslogik in ihren Anwendungen zu vermeiden.<\/p>\n\n\n\n<p>Aber die Kotlin-Multiplatform-Story wies bisher noch eine L\u00fccke auf: Es fehlte eine L\u00f6sung f\u00fcr F\u00e4lle, in denen man nicht f\u00fcr jede Plattform eine separate Benutzeroberfl\u00e4che entwickeln und pflegen wollte. Es gibt eine Vielzahl von Gr\u00fcnden f\u00fcr dieses Szenario: M\u00f6glicherweise fehlen Ihnen die Ressourcen oder die Fachkr\u00e4fte, um f\u00fcr jede Zielplattform eine ma\u00dfgeschneiderte Implementierung bereitzustellen. Oder vielleicht m\u00f6chten Sie Ihre Anwendung so schnell wie m\u00f6glich und mit kurzen Iterationszyklen Ihren Benutzer*innen bereitstellen, sodass Sie keine Zeit daf\u00fcr haben, zwei oder mehr UI-Implementierungen manuell synchron zu halten.<\/p>\n\n\n\n<p>Compose Multiplatform nimmt dieses Problem in Angriff. Sie haben nun die M\u00f6glichkeit, Ihre Bedienoberfl\u00e4che nur einmal zu implementieren und dann auf allen Zielplattformen zu nutzen. Dies kann der typische Fall einer Mobilentwicklung f\u00fcr Android und iOS sein oder auch weitere Plattformen wie Desktop oder Web einschlie\u00dfen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"1928\" height=\"1706\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/architecture.png\" alt=\"\" class=\"wp-image-356420\"\/><figcaption class=\"wp-element-caption\"><em>Compose Multiplatform ist eine optionale Schicht f\u00fcr Kotlin-Multiplatform-Anwendungen, mit der Sie deklarative Bedienoberfl\u00e4chen einmal erstellen und f\u00fcr mehrere Zielplattformen verwenden k\u00f6nnen.<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Jetpack Compose als Unterbau<\/h2>\n\n\n\n<p>Compose Multiplatform baut auf <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> von Google auf, dem empfohlenen UI-Framework f\u00fcr moderne Android-Entwicklung, das zu 100% aus Kotlin besteht. Das JetBrains-Team, das Compose Multiplatform entwickelt, arbeitet mit Google zusammen und tr\u00e4gt regelm\u00e4\u00dfig \u00c4nderungen zu den Upstream-Repositories von Jetpack Compose bei.<\/p>\n\n\n\n<p>Compose Multiplatform verwendet APIs, die sich bereits bei Jetpack Compose bew\u00e4hrt haben. Dies bedeutet, dass Entwickler*innen, die bereits Erfahrung mit modernen, auf Jetpack Compose basierenden Android-Oberfl\u00e4chen haben, diese F\u00e4higkeiten direkt auf die Gestaltung einer gemeinsamen UI mit Compose Multiplatform \u00fcbertragen und so f\u00fcr iOS und weitere Plattformen entwickeln k\u00f6nnen.<\/p>\n\n\n\n<p>Um zu verdeutlichen, dass die APIs wirklich identisch sind, sehen Sie sich diesen beispielhaften Compose-Multiplatform-Codeabschnitt an, der beim Dr\u00fccken einer Schaltfl\u00e4che die Sichtbarkeit eines Bildes \u00e4ndert:<\/p>\n\n\n\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\n@Composable\nfun App() {\n    MaterialTheme {\n        var showImage by remember { mutableStateOf(false) }\n        Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {\n            Button(onClick = {\n                showImage = !showImage\n            }) {\n                Text(&quot;Toggle image&quot;)\n            }\n            AnimatedVisibility(showImage) {\n                Image(\n                    painterResource(&quot;compose-multiplatform.xml&quot;),\n                    &quot;Compose Multiplatform Logo&quot;\n                )\n            }\n        }\n    }\n}\n<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><\/pre>\n\n\n\n<p>Wenn Sie bereits mit Jetpack Compose gearbeitet haben, sollte Ihnen der Gro\u00dfteil dieses Codes vertraut sein: Mit Compose Multiplatform k\u00f6nnen Sie die gleichen APIs verwenden, die Sie auch f\u00fcr die moderne Android-Entwicklung nutzen w\u00fcrden, einschlie\u00dflich State-Management, Layout und sogar Animationen. F\u00fcr Aufgaben, die in Jetpack Compose systemspezifisch sind, z.&nbsp;B. das Laden von Ressourcen, stellt Compose Multiplatform unkomplizierte Alternativen bereit, die auf allen Plattformen funktionieren \u2013 wie die Funktion <code>painterResource<\/code> im obigen Codebeispiel.<\/p>\n\n\n\n<p>Wie Sie sehen k\u00f6nnen, f\u00fchrt dieser Code sowohl auf Android als auch auf iOS zu einem identischen Ergebnis:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/gif2.mov\" playsinline><\/video><\/figure>\n\n\n\n<p>Unter iOS werden Compose-Multiplatform-UIs \u00fcber eine Canvas-Implementierung gerendert, die auf der Grafikbibliothek <a href=\"https:\/\/github.com\/JetBrains\/skiko\" target=\"_blank\" rel=\"noopener\">Skiko<\/a> basiert. Unter Android ist Compose Multiplatform mit Jetpack Compose identisch. Sollten Sie sich also jemals dazu entschlie\u00dfen, Ihre Anwendung auf plattformspezifische Bedienoberfl\u00e4chen umzustellen, k\u00f6nnen Sie Ihre Compose-Multiplatform-Anwendung unter Android problemlos weiterverwenden, ohne den bereits geschriebenen Code wegwerfen zu m\u00fcssen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kotlin Multiplatform als Grundlage<\/h2>\n\n\n\n<p>Mit Compose Multiplatform erstellte Apps sind Kotlin-Multiplatform-Anwendungen, sodass sie dieselben etablierten Mechanismen f\u00fcr den Zugriff auf Plattform-APIs wie Sensoren, Einstellungen, Datenspeicherung, Kryptographie usw. nutzen k\u00f6nnen. Ebenso k\u00f6nnen Sie das st\u00e4ndig wachsende \u00d6kosystem der <a href=\"https:\/\/github.com\/terrakok\/kmm-awesome\" target=\"_blank\" rel=\"noopener\">Kotlin-Multiplatform-Bibliotheken<\/a> nutzen, die von Datenbank-Wrappern bis hin zu plattformunabh\u00e4ngigen SDK-Wrappern eine enorme Bandbreite abdecken. Selbstverst\u00e4ndlich k\u00f6nnen Sie Kotlin Multiplatform weiterhin auch ohne Compose Multiplatform verwenden, um Anwendungslogik, Netzwerkverbindungen und andere Abstraktionen in einer gemeinsamen Codeschicht zu implementieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Interoperabilit\u00e4t mit SwiftUI- und UIKit-Views<\/h2>\n\n\n\n<p>In der realen Welt ben\u00f6tigen Anwendungen Zugang zu ger\u00e4tespezifischen Funktionen, und dies gilt in vielen F\u00e4llen auch f\u00fcr Bedienoberfl\u00e4chen: Wenn Sie zum Beispiel einen Browser einbetten oder ein Video abspielen, kann es sinnvoll sein, die von iOS bereitgestellten integrierten Funktionen zu verwenden, um Ihren Benutzer*innen eine angenehmere Erfahrung zu bieten.<\/p>\n\n\n\n<p>F\u00fcr diese Situationen enth\u00e4lt die Alpha-Version von Compose Multiplatform einen Prototyp f\u00fcr eine wechselseitige Interoperabilit\u00e4t auf der UI-Ebene. Mit <code>UIKitView<\/code> k\u00f6nnen Sie komplexe plattformspezifische Widgets wie Karten, Webansichten, Medienplayer und Kamerafeeds in Ihre gemeinsame UI einbetten. In der anderen Richtung bietet <code>ComposeUIViewController<\/code> die M\u00f6glichkeit, Compose-Multiplatform-Bildschirme in SwiftUI-Anwendungen einzubetten, sodass Sie Compose Multiplatform schrittweise in Ihre iOS-Anwendungen \u00fcbernehmen k\u00f6nnen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"2800\" height=\"1454\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/interop-2800x1454.png\" alt=\"\" class=\"wp-image-356434\"\/><figcaption class=\"wp-element-caption\"><em>Compose Multiplatform for iOS erm\u00f6glicht eine wechselseitige Interoperabilit\u00e4t mit nativen Bedienoberfl\u00e4chen: Sie k\u00f6nnen komplexe UI-Views wie MKMapView aus MapKit in Ihre Compose-UI integrieren, und Sie k\u00f6nnen Compose-Bildschirme in eine SwiftUI-Anwendung einbetten.<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Das Ziel: eine hervorragende Nutzungserfahrung<\/h2>\n\n\n\n<p>Compose Multiplatform for iOS befindet sich derzeit in der Alpha-Phase \u2013 dies bedeutet auch, dass viele Bereiche noch in Entwicklung sind. Es erfordert gr\u00f6\u00dfte Sorgfalt, \u00fcber mehrere Plattformen hinweg eine hervorragende Nutzungserfahrung zu bieten, und das gesamte Team m\u00f6chte sicherstellen, dass alle erforderlichen Aspekte ber\u00fccksichtigt werden, damit sich Compose-Multiplatform-Anwendungen angenehm und nat\u00fcrlich anf\u00fchlen, egal auf welcher Plattform sie genutzt werden. Dies beginnt bei den einfachsten Interaktionen wie Gesten und Scroll-Physik, die das grundlegende Verhalten einer Anwendung bestimmen. Weiter geht es mit Navigationsprinzipien und \u00dcberg\u00e4ngen sowie komplexeren Interaktionen wie Textauswahl, Eingabemanagement, Kontextmen\u00fcs usw.<\/p>\n\n\n\n<p>Wir wissen auch, wie wichtig es ist, dass Compose-Multiplatform-Anwendungen eine solide Integration f\u00fcr Bedienungshilfen bieten und die Pr\u00e4ferenzen der Benutzer*innen ber\u00fccksichtigen. Daher wollen wir robuste Integrationen mit den zugrundeliegenden iOS-Mechanismen bereitstellen \u2013 von der systemeigenen Vorlesefunktionalit\u00e4t bis hin zu den ger\u00e4teweiten Zoom- und Kontrasteinstellungen.<\/p>\n\n\n\n<p>Nat\u00fcrlich handelt es sich hierbei um einen vielf\u00e4ltigen und breit gef\u00e4cherten Themenbereich. Wir m\u00f6chten allen Aspekten die n\u00f6tige Sorgfalt zukommen lassen, um sicherzustellen, dass Compose Multiplatform auch unter iOS eine optimale Benutzererfahrung bietet. Dabei wollen wir Ihre Bed\u00fcrfnisse in den Mittelpunkt stellen, und deshalb <a href=\"#sharefeedback\">freuen wir uns auf Ihr Feedback<\/a>!<\/p>\n\n\n\n<p>Uns ist auch bewusst, dass eine absolut fl\u00fcssige Performance \u2013 selbst auf Bildschirmen mit hoher Bildwiederholfrequenz \u2013 ein wichtiger Faktor f\u00fcr eine \u00fcberragende Nutzungserfahrung ist. Daher arbeiten die Teams von Compose Multiplatform und Kotlin\/Native eng zusammen, um die Performance von gemeinsamen UIs unter iOS zu optimieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Themes f\u00fcr Compose Multiplatform for iOS<\/h2>\n\n\n\n<p>Da Compose Multiplatform auf iOS ein Canvas-basiertes Rendering verwendet, sehen iOS- und Android-Anwendungen standardm\u00e4\u00dfig gleich aus. Derzeit stellt Compose Multiplatform standardm\u00e4\u00dfig Material- und Material-3-Widgets f\u00fcr alle Plattformen bereit. Dies sind die gleichen Widgets, die Sie vielleicht schon von Android-Apps kennen. Mithilfe der integrierten Theme-Funktionalit\u00e4t k\u00f6nnen Sie das Design dieser Widgets an Ihr Branding anpassen \u2013 entweder einheitlich \u00fcber alle Plattformen hinweg oder mit plattformspezifischen Designs.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"2396\" height=\"990\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/widgetdesign.png\" alt=\"\" class=\"wp-image-356445\"\/><figcaption class=\"wp-element-caption\"><em>Mit Compose Multiplatform entwickelte Mobil-Apps nutzen standardm\u00e4\u00dfig Material-Widgets. Sie haben jedoch die M\u00f6glichkeit, das Look-and-Feel anzupassen, eigene UI-Komponenten zu erstellen und sogar plattformspezifische Designs zu verwenden.<\/em><\/figcaption><\/figure>\n\n\n\n<p>Bei einem plattformunabh\u00e4ngigen UI-Framework ist es nat\u00fcrlich eine grundlegende Frage, inwieweit die Bedienelemente das Erscheinungsbild der Zielplattformen nachbilden sollten. Zum jetzigen Zeitpunkt hat das Team von JetBrains noch keine Festlegung dar\u00fcber getroffen, ob native oder einheitlich aussehende UI-Elemente bereitgestellt werden sollen. Da dies ein wichtiger Aspekt der Compose-Multiplatform-Nutzungserfahrung ist, m\u00f6chten wir keine Entscheidung treffen, ohne vorher das Feedback der Entwicklungscommunity einzuholen. <a href=\"#sharefeedback\">Wir freuen uns auf Ihre Gedanken und Meinungen zu diesem Thema.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Testen Sie Compose Multiplatform for iOS selbst!<\/h2>\n\n\n\n<p>Wir hoffen, Ihr Interesse soweit geweckt zu haben, dass Sie Compose Multiplatform for iOS eigenh\u00e4ndig ausprobieren m\u00f6chten! Wie bereits erw\u00e4hnt befinden sich viele Aspekte noch in der Entwicklung, aber es gibt auch viele Dinge, die bereits gut funktionieren und mit denen Sie experimentieren k\u00f6nnen!<\/p>\n\n\n\n<p>Wir bieten Ihnen unterschiedliche M\u00f6glichkeiten, das Alpha-Release von Compose Multiplatform for iOS kennenzulernen, darunter Beispielanwendungen und Projektvorlagen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Einfacher Einstieg mit der Vorlage<\/h3>\n\n\n\n<p>Der einfachste Weg, mit Compose Multiplatform eigene Anwendungen f\u00fcr Android und iOS zu erstellen, ist die Verwendung der offiziellen <a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform-ios-android-template\" target=\"_blank\" rel=\"noopener\">GitHub-Vorlage<\/a>, die Ihnen mit einem eigenen Tutorial dabei hilft, Ihre erste Compose-Multiplatform-Anwendung zum Laufen zu bringen.<\/p>\n\n\n\n<p><a class=\"ek-link jb-download-button\" title=\"CTA\" href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform-ios-android-template\/#readme\" target=\"_blank\" rel=\"noopener\">Erste Schritte mit Compose for iOS<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Entdecken Sie Compose for iOS mit Demo-Anwendungen<\/h3>\n\n\n\n<p>Codebeispiele bieten eine gute M\u00f6glichkeit, die Anwendungsbereiche neuer Technologien zu erkunden. Wir haben eine Reihe von Beispielprojekten f\u00fcr Sie vorbereitet, um den Einsatz von Compose Multiplatform auf iOS und anderen Zielplattformen zu demonstrieren. Sie finden sie im <a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/tree\/master\/examples\" target=\"_blank\" rel=\"noopener\">Compose Multiplatform Repository<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" width=\"2800\" height=\"1626\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/sampleapps-2800x1626.png\" alt=\"\" class=\"wp-image-356456\"\/><\/figure>\n\n\n\n<p><a class=\"ek-link jb-download-button\" title=\"CTA\" href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/tree\/master\/examples\" target=\"_blank\" rel=\"noopener\">Beispielprojekte entdecken<\/a><\/p>\n\n\n\n<p>Andere Beispielprojekte wie das <a href=\"https:\/\/github.com\/Kotlin\/kmm-production-sample\/tree\/compose-app\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform Mobile Production Sample<\/a> enthalten jetzt einen Branch mit einer auf Compose Multiplatform basierenden UI-Implementierung. So k\u00f6nnen Sie die Unterschiede und Gemeinsamkeiten zwischen zwei Ans\u00e4tzen vergleichen: In einem Fall wird nur die Anwendungslogik geteilt, und im anderen Fall besteht auch die Bedienoberfl\u00e4che aus gemeinsam genutztem Code.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"sharefeedback\">Geben Sie uns Feedback!<\/h3>\n\n\n\n<p>Compose Multiplatform for iOS befindet sich im Alpha-Status, und wir m\u00f6chten die Technologie auf der Grundlage Ihrer Bed\u00fcrfnisse weiterentwickeln.<\/p>\n\n\n\n<p>Helfen Sie uns, Ihnen zu helfen, indem Sie uns Probleme melden, uns auf fehlende APIs hinweisen und uns Funktionsw\u00fcnsche senden, \u00fcber deren Umsetzung Sie sich freuen w\u00fcrden. F\u00fcr all dies steht Ihnen der <a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/issues\" target=\"_blank\" rel=\"noopener\">Issue-Tracker des Projekts<\/a> zur Verf\u00fcgung.<\/p>\n\n\n\n<p>Wenn Sie sich mit Mitgliedern des Compose-Multiplatform-Teams oder mit anderen Entwickler*innen austauschen m\u00f6chten, laden wir Sie herzlich ein, sich an der Diskussion im <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/compose-ios\" target=\"_blank\" rel=\"noopener\">Kotlin-Slack<\/a> zu beteiligen. Im Channel <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/compose-ios\" target=\"_blank\" rel=\"noopener\">#compose-ios<\/a> finden Sie Diskussionen \u00fcber Compose Multiplatform for iOS. In <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/compose\" target=\"_blank\" rel=\"noopener\">#compose<\/a> geht es um allgemeine Themen im Zusammenhang mit Compose Multiplatform und Jetpack Compose.<\/p>\n\n\n\n<p>Wir freuen uns schon darauf, zu sehen, was Sie als N\u00e4chstes mit Compose Multiplatform entwickeln werden!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Siehe auch<\/h2>\n\n\n\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/04\/kotlinconf-2023-opening-keynote\/\">KotlinConf 2023: A Look at the Opening Keynote<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/10\/compose-multiplatform-1-2-is-out\/\">Compose Multiplatform 1.2 Is Out<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Autor des Original-Blogposts:<\/strong><\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n<p><\/p>\n","protected":false},"author":811,"featured_media":364667,"comment_status":"closed","ping_status":"closed","template":"","categories":[956,89],"tags":[8144,6706],"cross-post-tag":[6256],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin\/364654"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/users\/811"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/comments?post=364654"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin\/364654\/revisions"}],"predecessor-version":[{"id":364709,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/kotlin\/364654\/revisions\/364709"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media\/364667"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media?parent=364654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/categories?post=364654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/tags?post=364654"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/cross-post-tag?post=364654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}