Nowości dotyczące produktów

Świętujemy 5 lat Jetpack Compose

5 min czytania

Dziś oficjalnie obchodzimy 5. rocznicę wydania Jetpack Compose 1.0. Od wersji 1.0, ogłoszonej 28 lipca 2021 r., do najnowszej wersji 1.11 interfejsy API znacznie się rozwinęły, dlatego chcemy to uczcić.

Gdy oficjalnie ogłosiliśmy wydanie wersji 1.0, obiecaliśmy prostszy, szybszy i bardziej intuicyjny sposób tworzenia natywnych interfejsów na Androidzie. Z perspektywy czasu możemy stwierdzić, że Compose nie tylko spełnił tę obietnicę, ale też całkowicie zmienił ekosystem Androida. Obecnie ponad 68% tysiąca najpopularniejszych aplikacji korzysta z niego w środowisku produkcyjnym.

Historia

W ciągu ostatnich 5 lat Compose stale się rozwijał. W początkowych latach pokazywaliśmy, jak tworzyć układy za pomocą podstawowych komponentów Box, Row i Column. Dziś Compose działa nie tylko na urządzeniach mobilnych, ale też na innych formatach, takich jak Compose na TV,  WearOS,  Glance for Widgets czy nawet okulary z wyświetlaczem z Jetpack Compose Glimmer

jetpack_compose_everywhere.png

Nagraliśmy odcinek Android Developers Backstage z Clarą Bayarri, kierowniczką zespołu inżynierów Jetpack, oraz 2 byłymi kierownikami zespołu, Romainem GuyemChetem Haasem, a także z Torem Norbye, starszym dyrektorem ds. inżynierii. W tym odcinku omawiają historię Compose i początki jego rozwoju.

timeline.png
Najważniejsze wydarzenia związane z Compose na przestrzeni lat

Podsumowanie

Początki Compose były zupełnie inne niż to, co znasz dzisiaj. W zespole Androida realizowano równolegle 2 projekty. 

W tamtym czasie zespół Views Toolkit zastanawiał się nad rozdzieleniem UI Toolkit na bibliotekę, aby przyspieszyć tworzenie aplikacji i ułatwić deweloperom wdrażanie aktualizacji oraz kontrolowanie ich. Tymczasem inny zespół pracował nad nowatorskim pomysłem tworzenia deklaratywnych układów przez osadzanie kodu XML w Kotlinie. Wyglądało to mniej więcej tak:

jetpack_compose_early_code.png

Te 2 projekty połączyły się, tworząc to, co znasz dzisiaj – w pełni deklaratywny UI Toolkit, który wykorzystuje moc wtyczki kompilatora, środowiska wykonawczego i języka Kotlin:

@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)
                    }
                }
            }
        }
    }
}

Społeczność pomogła nam już na wczesnym etapie! Przed 2021 r. Compose był w fazie pre-alpha, co pomogło nam upewnić się, że rozwiązuje problemy deweloperów.

Jednym z naszych ulubionych wspomnień jest Android Dev Challenge. Zachęciliśmy społeczność do wykonania 4 różnych zadań za pomocą Compose. Nasze kanały zostały zalane aplikacjami z psami, zegarami i aplikacjami pogodowymi, a my otrzymaliśmy mnóstwo bezpośrednich opinii, które pomogły nam w opracowaniu wersji 1.0.

Compose stale się rozwijał – od wprowadzenia zestawu komponentów Material 2 do obsługi Material 3 Expressive.

material2.png
Material 2 w Compose

Perspektywy

Obecnie najnowszą wersją jest Compose 1.11, a wkrótce pojawi się wersja 1.12, która oferuje znacznie więcej niż wersja 1.0 sprzed 5 lat. W tym roku wprowadziliśmy  bardziej adaptacyjne interfejsy API, takie jak FlexBoxGridMediaQueryStyles. Dzięki tym interfejsom API możesz przejść na wyższy poziom tworzenia adaptacyjnych interfejsów premium za pomocą Compose. 

Podczas Google I/O 2026 ogłosiliśmy, że Compose jest dla nas najważniejszy, co oznacza, że wszystkie przyszłe prace nad interfejsami będą prowadzone tylko w Compose, a Views Toolkit przejdzie w tryb konserwacji. Material Design również skupia się całkowicie na Compose, co oznacza koniec findViewById era

Społeczność jest najważniejsza dla Compose

Przez lata inspirowaliście nas kreatywnymi przykładami wykorzystania Compose. Chcielibyśmy wyróżnić kilka kolejnych przykładów ciekawych prac. JetBrains jest świetnym partnerem Google w zakresie Compose. Rozszerza Compose, aby działał na różnych platformach dzięki Compose Multiplatform, i umożliwia deweloperom aplikacji na komputery, iOS i internet korzystanie z zalet Compose.  

Z przyjemnością śledzimy nasze ulubione newslettery, od JetpackCompose.app’s DispatchAndroidWeekly po jetc , które pomagają deweloperom Androida być na bieżąco z najnowszymi informacjami ze świata Compose i Androida. 

Kolejnym wyróżniającym się współtwórcą jest sinasamaki. Stworzył on wiele ciekawych funkcji za pomocą Compose, takich jak ten zabawny modyfikator wstążki i efekt usterki:

ribbon_modifier_sinasamaki.gif

Saket Narayan zawsze był dla nas inspiracją, jeśli chodzi o tworzenie przydatnych narzędzi dla Compose, takich jak telephoto – biblioteka obsługująca gesty przesuwania i powiększania oraz automatyczne podpróbkowanie dużych obrazów, czy najnowsza biblioteka Touch Robot, która umożliwia łatwe testowanie animacji interakcji:

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, który używał Compose w innowacyjny sposób (np. molecule, a nawet tworzenie interfejsu za pomocą Compose dla terminala z mosaic). Chris Banes, który przez lata stworzył wiele bibliotek Compose, a naszą najnowszą ulubioną jest Haze do rozmywania tła, oraz wielu ekspertów Google ds. Androida, takich jak Akshay Chordiya, Huyen Tue DaoKatie Barnett, którzy przyczynili się do sukcesu Compose. Nie chodzi jednak o wybieranie poszczególnych osób – w bazie kodu Compose było tak wielu wspaniałych współtwórców, a wielu z Was nadal inspiruje nas swoimi zabawnymi przykładami, bibliotekami i szczegółowymi prezentacjami. Bez społeczności Jetpack Compose nie odniósłby takiego sukcesu. 

Wznosimy toast za kolejne 5 lat i nie tylko!

Jetpack Compose stał się standardem tworzenia interfejsów na Androidzie. Dziękujemy całemu zespołowi Toolkit w Google oraz niesamowitej globalnej społeczności deweloperów, którzy napisali biblioteki, zgłosili błędy i przesunęli granice możliwości deklaratywnych interfejsów. 

W tym tygodniu będziemy świętować, organizując stacjonarne przyjęcia urodzinowe na całym świecie, a 30 lipca o 13:00 czasu UTC odbędzie się transmisja na żywo „Birthday party” na kanale Android Developers na YouTube. Będziemy rozmawiać o Compose i odpowiadać na Wasze pytania.

Wznosimy toast za kolejne 5 lat i życzymy udanego tworzenia aplikacji!

Autorzy:
Czytaj dalej