Produktneuigkeiten

5 Jahre Jetpack Compose

Lesezeit: 4 Minuten

Heute feiern wir offiziell den fünften Jahrestag der Veröffentlichung von Jetpack Compose 1.0. Seit der Version 1.0, die am 28. Juli 2021 angekündigt wurde, bis zum aktuellen Release 1.11 haben sich die APIs im Laufe der Jahre erheblich weiterentwickelt. Das möchten wir zum Anlass nehmen, um auf diese Entwicklung zurückzublicken.

Als wir die Version 1.0 offiziell angekündigt haben, haben wir eine einfachere, schnellere und intuitivere Möglichkeit versprochen, native Benutzeroberflächen auf Android zu erstellen. Rückblickend lässt sich sagen, dass Compose dieses Versprechen nicht nur erfüllt, sondern auch das Android-Ökosystem komplett verändert hat. Heute verwenden mehr als 68% der 1.000 wichtigsten Apps Compose in der Produktion. 

Verlauf

In den letzten fünf Jahren ist Compose stetig gewachsen. In den Anfangszeiten haben wir uns damit beschäftigt, wie Sie Layouts mit den grundlegenden Box-, Row- und Column-Komponenten erstellen können. Heute haben wir Compose nicht nur für Mobilgeräte, sondern auch für andere Formfaktoren wie Compose for TV, WearOS, Glance for Widgets und sogar für Brillen mit Jetpack Compose Glimmer erweitert. 

jetpack_compose_everywhere.png

Wir haben eine Folge von Android Developers Backstage mit Clara Bayarri, Engineering Lead für Jetpack, und zwei ehemaligen Teamleitern, Romain Guy und Chet Haase, sowie Tor Norbye, Senior Engineering Director, aufgenommen. In dieser Folge sprechen sie über die Geschichte von Compose und die Anfänge der Entwicklung.

timeline.png
Highlights aus den letzten Jahren zusammenstellen

Rückblick

Die Anfänge von Compose waren ganz anders als das, was Sie heute kennen. Im Android-Team liefen zwei Projekte parallel. 

Das Team des Views-Toolkits dachte damals darüber nach, das UI-Toolkit in eine Bibliothek auszulagern, um die Entwicklungsgeschwindigkeit zu erhöhen und Entwicklern die Einführung und Steuerung von Updates zu erleichtern. In der Zwischenzeit arbeitete ein Team an einer neuartigen Idee, deklarative Layouts zu erstellen, indem XML in Kotlin eingebettet wurde. Das sah in etwa so aus:

jetpack_compose_early_code.png

Aus diesen beiden Bemühungen entstand das, was Sie heute kennen – ein vollständig deklaratives UI-Toolkit, das die Leistungsfähigkeit eines Compiler-Plug-ins, einer Laufzeit und von Kotlin nutzt:

@Composable
fun Newsfeed(stories: List<Story>) {
    LazyColumn {
        items(stories) { story ->
            Card {
                val author = story.author
                Image(painterResource(author.profilePhoto),
                    contentDescription = author.name)
                Text(author.name)
                Text(story.content)
                if (story.hasCommentsEnabled()) {
                    for(comment in story.comments) {
                        Text(comment.mainContent)
                    }
                }
            }
        }
    }
}

Und ihr, die Community, habt uns schon sehr früh geholfen. Vor 2021 gab es für Compose eine Pre-Alpha-Phase, in der wir sicherstellen konnten, dass Compose die Probleme unserer Entwickler lösen kann.

Eine unserer schönsten Erinnerungen ist die Android Dev Challenge. Wir haben die Community aufgefordert, vier verschiedene Aufgaben mit Compose zu erstellen. So haben wir viele Puppy-Apps, Uhren und Wetter-Apps erhalten und eine Menge direktes Feedback, das uns bei der Entwicklung der Version 1.0 geholfen hat.

Compose hat sich ständig weiterentwickelt. Zu Beginn gab es nur eine Reihe von Material 2-Komponenten, inzwischen wird Material 3 Expressive unterstützt.

material2.png
Material 2 in Compose

Zukunftspläne

Heute ist Compose 1.11 die aktuelle Version. Version 1.12 wird in Kürze veröffentlicht und bietet viel mehr als Version 1.0 vor fünf Jahren. Dieses Jahr haben wir adaptive APIs wie FlexBox, Grid, MediaQuery und Styles eingeführt. Mit diesen APIs können Sie mit Compose die nächste Stufe der Entwicklung von Premium- und adaptiven Benutzeroberflächen erreichen. 

Auf der Google I/O 2026 haben wir angekündigt, dass wir jetzt Compose-first sind. Das bedeutet, dass alle zukünftigen UI-Entwicklungen nur in Compose stattfinden, während das Views-Toolkit in den Wartungsmodus wechselt. Material Design konzentriert sich jetzt vollständig auf Compose, was das Ende von findViewById era bedeutet. 

Die Community steht im Mittelpunkt von Compose 

Im Laufe der Jahre haben Sie uns mit kreativen Beispielen für die Verwendung von Compose inspiriert. Wir möchten Ihnen einige weitere Beispiele für spannende Projekte vorstellen. JetBrains ist ein wichtiger Partner von Google für Compose. Das Unternehmen hat Compose mit Compose Multiplatform plattformübergreifend verfügbar gemacht und ermöglicht Desktop-, iOS- und Webentwicklern, die Vorteile von Compose zu nutzen.  

Wir haben die beliebtesten Newsletter von JetpackCompose.app’s Dispatch,  AndroidWeekly bis hin zu jetc sehr gerne gelesen. Sie helfen Android-Entwicklern, über die neuesten Entwicklungen in der Welt von Compose und Android auf dem Laufenden zu bleiben. 

Ein weiterer herausragender Beitragender ist sinasamaki. Sie haben mit Compose viele ansprechende Funktionen entwickelt, darunter diesen lustigen Ribbon-Modifier und den Glitch-Effekt:

ribbon_modifier_sinasamaki.gif

Saket Narayan war schon immer eine Inspiration, wenn es darum ging, nützliche Tools für Compose zu entwickeln, z. B. Telephoto, eine Bibliothek mit Unterstützung für Schwenk- und Zoomgesten und automatisches Subsampling großer Bilder, oder die neueste Bibliothek Touch Robot, mit der Sie Interaktionsanimationen ganz einfach testen können:

paparazzi.gif(end = 3_000) {
  DebitCard(
    Modifier.testTag("card")
  )

  val touchRobot = rememberTouchRobot()
  LaunchedEffect(Unit) {
    touchRobot.onNode(hasTestTag("card")).performGesture {
      draw(
        path = createAndroidHeadPath(),
        duration = 3.seconds,
      )
    }
  }
}

/** A path drawing the Android head. */
fun createAndroidHeadPath(bounds: Rect): Path = TODO()
saket_touch_robot.gif

Jake Wharton, der Compose auf innovative Weise verwendet hat, z. B. mit molecule und sogar zum Erstellen von Benutzeroberflächen mit Compose für das Terminal mit mosaic. Chris Banes, der im Laufe der Jahre viele Compose-Bibliotheken entwickelt hat, darunter unsere aktuelle Lieblingsbibliothek Haze für das Weichzeichnen von Hintergründen, und viele der Android Google Developer Experts wie Akshay Chordiya, Huyen Tue Dao und Katie Barnett, die zum Erfolg von Compose beigetragen haben. Es geht aber nicht darum, einzelne Personen auszuwählen. Es gab so viele großartige Mitwirkende an der Compose-Codebasis und viele von euch inspirieren uns weiterhin mit ihren interessanten Beispielen, Bibliotheken und ausführlichen Vorträgen. Ohne die Community wäre Jetpack Compose nicht so erfolgreich, wie es heute ist. 

Auf die nächsten 5 Jahre und mehr! 

Jetpack Compose hat sich von einer experimentellen Idee zum Standard für die Android-UI-Entwicklung entwickelt. Vielen Dank an das gesamte Toolkit-Team bei Google und an die unglaubliche globale Entwickler-Community, die Bibliotheken geschrieben, Fehler gemeldet und die Grenzen der deklarativen Benutzeroberfläche erweitert hat. 

Diese Woche feiern wir mit einigen persönlichen Geburtstagsfeiern auf der ganzen Welt und einer Live-Geburtstagsfeier auf dem YouTube-Kanal für Android-Entwickler am 30. Juli um 13:00 Uhr UTC. In dieser Zeit können wir uns austauschen, über Compose sprechen und Ihre Fragen beantworten.

Wir wünschen dir viel Erfolg in den nächsten fünf Jahren und viel Spaß beim Komponieren!

Weiterlesen