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 urządzeniach, takich jak Compose for TVWearOSGlance for Widgets, a 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 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 równolegle realizowano 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 przedalfa, co pomogło nam upewnić się, że rozwiązuje problemy deweloperów.

Jednym z naszych ulubionych wspomnień jest Android Dev Challenge. Poprosiliśmy społeczność o wykonanie 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 interfejsem 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, w których widzieliśmy ciekawe prace. 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 czy tworzenie interfejsu za pomocą Compose w terminalu za pomocą 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 – do bazy kodu Compose przyczyniło się 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 rozwinął się od eksperymentalnego pomysłu do standardu 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ć na stacjonarnych przyjęciach urodzinowych na całym świecie oraz podczas transmisji na żywo „Birthday party” na kanale Android Developers na YouTube 30 lipca o 13:00 czasu UTC. W tym czasie będziemy rozmawiać o Compose i odpowiadać na Wasze pytania.

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

Autorzy:
Czytaj dalej