Wiadomości o usługach

Świętujemy 5 urodziny Jetpack Compose

Czas czytania: 4 min

Dziś oficjalnie obchodzimy 5 rocznicę premiery Jetpack Compose 1.0. Od wersji 1.0, którą ogłosiliśmy 28 lipca 2021 r., do najnowszej wersji 1.11 interfejsy API znacznie się rozwinęły na przestrzeni lat. Chcemy to uczcić.

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

Historia

W ciągu ostatnich 5 lat Compose stale się rozwijał. Na początku pokazaliśmy, jak tworzyć układy za pomocą podstawowych elementów Box, Row i Column. Obecnie rozszerzyliśmy funkcję Compose, aby działała nie tylko na urządzeniach mobilnych, ale także na innych formatach, takich jak Compose na TV, WearOS, Glance for Widgets, a nawet okulary z wyświetlaczem z Jetpack Compose Glimmer. 

jetpack_compose_everywhere.png

Nagraliśmy odcinek podcastu Android Developers Backstage z Clarą Bayarri, kierowniczką zespołu inżynierów Jetpack, oraz z dwoma byłymi kierownikami tego zespołu, Romainem Guyem i Chetem Haase, a także z Torem Norbye, starszym dyrektorem ds. inżynierii. W tym odcinku opowiadają o historii Compose i początkach prac nad tym narzędziem.

timeline.png
Twórz podsumowania z różnych lat

Wspomnienia

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

W tym czasie zespół Views Toolkit zastanawiał się nad wydzieleniem UI Toolkit do biblioteki, aby przyspieszyć proces tworzenia aplikacji i ułatwić programistom wdrażanie aktualizacji oraz kontrolowanie ich. W tym czasie zespół pracował nad nowatorskim pomysłem tworzenia deklaratywnych układów przez osadzanie kodu XML w języku Kotlin. Wyglądało to mniej więcej tak:

jetpack_compose_early_code.png

Te 2 działania połączyły się, tworząc to, co znasz dzisiaj – w pełni deklaratywny zestaw narzędzi interfejsu, 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)
                    }
                }
            }
        }
    }
}

A Wy, społeczność, pomogliście nam już na samym początku. Przed 2021 r. Compose było w fazie przedalfa, co pomogło nam upewnić się, że to narzędzie rozwiązuje problemy naszych deweloperów.

Jednym z naszych ulubionych wspomnień jest Android Dev Challenge. Zachęciliśmy społeczność do tworzenia 4 różnych zadań za pomocą Compose, dzięki czemu nasze kanały zostały wypełnione aplikacjami z szczeniakami, zegarami i aplikacjami pogodowymi. Otrzymaliśmy też mnóstwo bezpośrednich opinii, które pomogły nam w opracowaniu wersji 1.0.

Compose stale się rozwija. Zaczęliśmy od udostępnienia zestawu komponentów Material 2, a teraz obsługujemy 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 elastyczne interfejsy API, takie jak FlexBox, Grid, MediaQuery i Styles. Te interfejsy API pozwalają przejść na kolejny poziom tworzenia zaawansowanych, adaptacyjnych interfejsów za pomocą Compose. 

Na konferencji Google I/O 2026 r. ogłosiliśmy, że przechodzimy na Compose, co oznacza, że wszystkie przyszłe prace nad interfejsem będą prowadzone tylko w Compose, a zestaw narzędzi Views przejdzie w tryb konserwacji. Material Design całkowicie skupia się na Compose, co oznacza koniec findViewById era. 

Społeczność jest podstawą Compose

Przez lata inspirowaliście nas kreatywnymi przykładami wykorzystania Compose. Chcielibyśmy przedstawić kilka kolejnych przykładów, które szczególnie nas zainteresowały. JetBrains jest świetnym partnerem Google w zakresie Compose. Rozszerza możliwości tej platformy, aby działała na różnych platformach dzięki Compose Multiplatform, i umożliwia programistom aplikacji na komputery, iOS i internet korzystanie z zalet Compose.  

Z przyjemnością śledzimy nasze ulubione newslettery, takie jak Dispatch z JetpackCompose.app, AndroidWeekly i 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. Za pomocą Compose stworzyli wiele ciekawych funkcji, 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 do Compose, takich jak telephoto, biblioteka obsługująca gesty przesuwania i powiększania oraz automatyczne próbkowanie podrzędne dużych obrazów, lub 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 tworzył interfejs użytkownika za pomocą Compose dla terminala za pomocą mosaic). Chris Banes, który przez lata stworzył wiele bibliotek Compose, w tym naszą najnowszą ulubioną – Haze do rozmywania tła, oraz wielu Ekspertów Google Developers ds. Androida, takich jak Akshay Chordiya, Huyen Tue Dao i Katie Barnett, którzy przyczynili się do sukcesu Compose. Nie chodzi jednak o wybranie konkretnych osób – w bazie kodu Compose było tak wielu wspaniałych współtwórców, a wielu z Was nadal inspiruje nas zabawnymi przykładami, bibliotekami i szczegółowymi prezentacjami. Bez społeczności Jetpack Compose nie odniósłby takiego sukcesu. 

Trzymamy kciuki za kolejne 5 lat i dłużej!

Jetpack Compose z eksperymentalnego pomysłu stał się standardem tworzenia interfejsów Androida. Dziękujemy całemu zespołowi Toolkit w Google oraz niesamowitej globalnej społeczności programistów, którzy napisali biblioteki, zgłosili błędy i przesunęli granice możliwości deklaratywnego interfejsu. 

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

Życzymy Ci kolejnych 5 lat sukcesów i wspaniałych kompozycji!

Autorzy:
Czytaj dalej