Jetpack Compose, nowy zestaw narzędzi Google do interfejsu użytkownika dla Androida, jest teraz w wersji alfa

Jetpack Compose, zestaw narzędzi Google do tworzenia aplikacji na Androida, jest teraz w fazie alfa. Jest w pełni kompatybilny ze standardowymi widokami Androida.

Jeśli chodzi o tworzenie aplikacji, można to zrobić na wiele sposobów. Możesz wybrać, dla której platformy chcesz programować, jakich języków programowania chcesz używać i wiele więcej.

Jesienią 2019 r. Google wprowadzony nowy framework do tworzenia interfejsów użytkownika w systemie Android przy użyciu Kotlina. Do tej pory znajdował się w fazie rozwojowej, z częstymi istotnymi zmianami i mnóstwem brakujących funkcji. Jednak dzisiaj Google przeniósł Jetpack Compose do wersji alfa, co oznacza, że ​​jest o krok bliżej wykorzystania go w projektach o jakości produkcyjnej.

Co to jest Jetpack Compose?

Tworząc aplikację na Androida, zwykle trzeba się zająć dwoma głównymi komponentami: kodem w przypadku rzeczy opartych na logice; i XML dla układów. Domyślnie system Android używa języka Java do tworzenia kodu i własnego zestawu znaczników XML do tworzenia układów.

Dla wielu Java i XML są w porządku, zwłaszcza w przypadku prostszych aplikacji. Ale oba systemy mają swoje ograniczenia i irytacje. Wraz z wprowadzeniem Kotlina jako urzędnik (i zalecany) język do programowania na Androida, kodowanie strony tworzenia aplikacji na Androida prawdopodobnie stało się znacznie łatwiejsze. Dzięki przydatnym funkcjom Kotlina, takim jak wbudowana ochrona wartości null i funkcje rozszerzeń, kod wygląda czyściej i jest łatwiejszy do odczytania.

Ale Kotlin niczego nie zmienił w układach Androida. Aby utworzyć złożony układ, nadal konieczne było utworzenie pliku XML i zaprojektowanie go w nim. Ma to kilka znaczących wad, w tym nieodłączną separację pomiędzy kodem i XML. Jeśli na przykład masz w kodzie stały ciąg znaków, nie możesz po prostu odwoływać się do niego z XML, więc jeśli ten ciąg zmieni się w kodzie, musisz pamiętać o zaktualizowaniu go również w formacie XML.

Wejdź do tworzenia Jetpacka. To odpowiedź Google na coraz bardziej nieporadny proces projektowania układu XML w systemie Android. Zamiast projektować interfejs użytkownika aplikacji w formacie XML, możesz to zrobić bezpośrednio z poziomu kodu. Chociaż możliwe jest tworzenie układów opartych na kodzie, są one zwykle trudniejsze w utrzymaniu niż XML i obejmują biblioteki, które łatwo psują się. Z drugiej strony funkcja Compose została zaprojektowana do pracy bezpośrednio w Kotlinie: nigdy więcej XML.

Jetpack Compose to także dość radykalne odejście od standardowego imperatywnego projektowania układów XML. Zamiast tego jest bardziej podobny do React lub Flutter, z deklaratywnymi układami, które aktualizują się same, gdy zmieniają się dane, zamiast polegać na programiście w zakresie implementacji tej logiki.

Co jest obsługiwane

Zatem Jetpack Compose jest teraz w fazie alfa. Co to znaczy? Cóż, wiele rzeczy.

Współdziałanie z widokami

Podobnie jak Kotlin jest w pełni kompatybilny z Javą, Jetpack Compose jest w pełni kompatybilny ze standardowymi widokami Androida. Oznacza to sporo rzeczy.

Po pierwsze, migracja do Jetpack Compose będzie znacznie łatwiejsza, jeśli chcesz. Zamiast konwertować wszystkie niestandardowe widoki i układy na elementy Composable, możesz po prostu tworzyć nowe układy i komponenty w aplikacji Compose. Masz bibliotekę korzystającą z „starszych” widoków, ale Twoja aplikacja została zaprojektowana przy użyciu narzędzia Compose? Bez problemu. Możesz dodać widok bezpośrednio do funkcji Composable. Nie przeszedłeś jeszcze do Compose, ale chcesz użyć biblioteki opartej na Composables? Ponownie, nie ma problemu. Po prostu umieść Composable bezpośrednio w swoim układzie.

Jeśli chodzi o motywy, nie jest to tak proste, jak plug-and-play, jak interoperacyjność układu. Jednakże, Google stworzyło bibliotekę aby dostosować standardowe motywy XML do motywów zgodnych z Compose, pomagając zachować centralizację i uniknąć powielania.

Animacje

Nie ma tu zbyt wiele do powiedzenia, poza tym, że Jetpack Compose obsługuje animacje, podobnie jak framework View w Androidzie. Możesz przesuwać, zmieniać rozmiar i obracać, ile dusza zapragnie.

Leniwe listy

Leniwa lista to zasadniczo wersja RecyclerView dostępna w programie Compose. Wyświetla tylko potrzebne elementy, oszczędzając pamięć RAM i zwiększając wydajność. Oczywiście, ponieważ jest to funkcja tworzenia list, implementacja list jest znacznie prostsza.

Układ ograniczeń

Jednym z potężniejszych widoków w systemie Android jest ConstraintLayout. Umożliwia to położenie, rozmiar i wagę widoków podrzędnych względem siebie, a jednocześnie ułatwia wykonywanie niektórych animacji. Jeśli martwiłeś się utratą tej funkcji w aplikacji Compose, nie powinieneś się martwić, ponieważ ta funkcja też jest tutaj dostępna.

Materialne komponenty interfejsu użytkownika

Kolejnym zestawem potężnych widoków jest biblioteka Material Components firmy Google. Większość tego, co tu jest, to standardowe widoki i układy, które można znaleźć w natywnym frameworku View. Zostały one jednak ulepszone lub zapakowane, aby zapewnić dodatkową funkcjonalność i ułatwić tworzenie motywów. Pojawiły się również w aplikacji Compose.

Testowanie

Ważną częścią tworzenia aplikacji jest jej testowanie. W przypadku prostej aplikacji możesz to zrobić ręcznie, instalując ją i używając. Jednak w przypadku bardziej złożonych projektów duże korzyści mogą przynieść zautomatyzowane platformy testowe, które wykonują większość ciężkiej pracy za Ciebie. Jetpack Compose obsługuje automatyczne testy, dzięki czemu możesz uczynić swoją aplikację tak stabilną, jak to tylko możliwe.

Funkcje dostępności

Dostępność jest ważną częścią naszego społeczeństwa. Bez funkcji ułatwień dostępu w naszej technologii wiele osób byłoby po prostu odciętych od korzyści, jakie zapewniają nasze telefony, telewizory i cokolwiek innego. Jetpack Compose jest wciąż w fazie alfa, więc obsługa ułatwień dostępu nie jest jeszcze ukończona, ale Google bierze to pod uwagę podczas opracowywania i podstawowa obsługa jest już dostępna.

Studio Androida

Jednak nie wszystkie funkcje Jetpack Compose są dostępne w samym Jetpack Compose. Android Studio i Kotlin mają także wtyczki i rozszerzenia ułatwiające komponowanie.

Wtyczka kompilatora Kotlin

Podobnie jak w przypadku Kotlin JVM, w Android Studio dostępna jest wtyczka kompilatora, która umożliwia prawidłową konwersję funkcji Compose na kod, który Android może faktycznie zrozumieć i śledzić.

Interaktywne podglądy

Podobnie jak w przypadku standardowych układów XML, Android Studio zawiera podgląd układu dla Jetpack Compose. Chociaż w niektórych aspektach nie jest to tak wygodne, jak podglądy XML — musisz zbudować swój projekt podgląd do aktualizacji i utworzyć dedykowaną funkcję podglądu — ma ona jedną zauważalną zaletę: interaktywność podglądy.

Podgląd interaktywny to zwykły podgląd, ale interaktywny. Szalone, wiem. Oznacza to jednak, że możesz wpisywać tekst w polach tekstowych, klikać przyciski i, cóż, wchodzić w interakcję z obiektami Composable, nawet bez konieczności ich wdrażania.

Pojedyncze wdrożenie z możliwością komponowania

Jeśli chcesz faktycznie wdrożyć (tj. zainstalować) swój układ, aby zobaczyć, jak działa na prawdziwym urządzeniu, ta funkcja może Ci pomóc. Aby zobaczyć, jak układ działa w świecie rzeczywistym, w przypadku normalnych układów XML, należy zbudować i zainstalować całą aplikację. Jeśli układu, który chcesz przetestować, nie ma na ekranie głównym, być może będziesz musiał często dotykać, aby się do niego dostać.

I tu właśnie pojawia się możliwość wdrożenia tylko jednego obiektu Composable. Zamiast kompilować i instalować aplikację, a następnie przechodzić do testowanego układu, możesz po prostu wdrożyć układ. Android Studio wygeneruje i otworzy działanie opakowania, które po prostu wyświetli wdrożony Composable. Może to znacznie przyspieszyć testowanie i projektowanie, a nawet pomóc w wyodrębnieniu problemów związanych z interakcją elementów.

Uzupełnianie kodu

Jeśli Twoje IDE nie ma uzupełniania kodu, czy jest to w ogóle IDE? Nie. Nie, nie jest. Oczywiście Android Studio obsługuje pełne uzupełnianie kodu dla Jetpack Compose.


Chociaż to nie wszystko, co oferuje Jetpack Compose, powyższe funkcje i zachowania pokazują, jak potężna jest Google chce, aby ta platforma była. I choć nadal znajduje się w fazie alfa, jest to o krok przed jego poprzednim statusem „rozwoju”. Jeśli wstrzymywałeś się z używaniem Jetpack Compose (tak jak ja), teraz może być czas, aby spróbować jeszcze raz.