Jetpack Compose for Desktop dodaje warstwę Swing i obsługę Apple Silicon

click fraud protection

JetBrains wydał nową wersję Jetpack Compose for Desktop, wieloplatformowego frameworka do programowania interfejsu użytkownika o otwartym kodzie źródłowym.

Jeśli zajmujesz się jakąkolwiek pracą programistyczną, prawdopodobnie słyszałeś o JetBrains. To firma stojąca za ogromnym pakietem IDE, który obejmuje IntelliJ (bazę dla Android Studio), CLion, PhpStorm i wiele innych. To także oni stworzyli Kotlina, niezwykle popularny wieloplatformowy język programowania.

JetBrains znów do tego powraca. Nieco ponad rok temu Google wprowadziło nowy silnik układu dla Androida o nazwie Jetpack Compose. To minęło od tego czasu zaszło kilka poważnych zmian, ale stał się kompetentną (choć wciąż nieco niestabilną) alternatywą dla klasycznych układów XML Androida.

Co Jetpack Compose ma wspólnego z JetBrains? Po pierwsze, jest napisany w Kotlinie. Ale także JetBrains po cichu pracuje nad przeniesieniem Compose na komputer stacjonarny. Zostało ono udostępnione publicznie jako wczesna wersja zapoznawcza dla programistów, a teraz JetBrains jest gotowe oficjalnie ogłosić, że istnieje.

Co to jest Jetpack Compose?

Mówiłem o tym trochę we wstępie, ale myślę, że zasługuje na szersze wyjaśnienie. Jeśli programowałeś już na Androidzie, prawdopodobnie jesteś przyzwyczajony do działania układów. Najpierw projektujesz układ w pliku XML, a następnie wchodzisz w interakcję z tym układem w Javie lub Kotlinie. Chociaż jest funkcjonalny, jest trochę przestarzały, a podział układów na różne języki może być trudny do zarządzania.

Alternatywnie Google zaczął opracowywać Jetpack Compose. Compose to silnik układu dla Androida zbudowany na bazie Kotlina. Cały układ i kod logiczny znajdują się w jednym miejscu, co znacznie ułatwia interakcję. Jest to również deklaratywny styl zamiast imperatywnego stylu układów XML.

Przejście na silnik układu deklaratywnego z silnika imperatywnego może zająć trochę czasu, ale przyzwyczajenie się do narzędzia Compose stanowi zdecydowanie lepsze rozwiązanie niż XML, mimo że jest jeszcze na wczesnym etapie.

Jetpack Compose na komputer stacjonarny

Zatem Compose to fajna alternatywa układu dla natywnych aplikacji na Androida. Ale nie jest to (zwykle) wieloplatformowe. I tu właśnie pojawia się JetBrains. Firma przeniosła Jetpack Compose na komputer stacjonarny, obsługując systemy Windows, Linux i macOS (zarówno Intel, jak i ARM).

Chociaż istnieją inne silniki układu dla komputerów stacjonarnych, takie jak Electron, JavaFX i UWP, obecnie panuje tam mały bałagan. Niektóre z nich nie są wieloplatformowe, więc działają tylko w jednym konkretnym systemie operacyjnym. Inne są technicznie wieloplatformowe, ale ich dystrybucja wymaga dużo pracy. A mimo to praca z innymi jest po prostu uciążliwa, jak JavaFX.

Z drugiej strony Jetpack Compose for Desktop jest stosunkowo łatwy w użyciu, obsługuje skalowanie wyświetlacza, ma wbudowaną stylizację i jest (prawie) w pełni wieloplatformowy. Chociaż nie można jeszcze skompilować wszystkich dystrybucji z jednego systemu operacyjnego, sam kod jest całkowicie przenośny. Podobnie jak w przypadku Androida, aplikacja w pakiecie jest oparta na Javie, chociaż użytkownicy nie muszą instalować JDK, aby z niej korzystać.

Kompatybilność krzyżowa

Ponieważ aplikacja Compose for Desktop jest wciąż nowa, brakuje w niej niektórych funkcji. Aby pomóc programistom obejść te ograniczenia, Compose for Desktop współpracuje z dwoma najpopularniejszymi silnikami układu Java, JavaFX i Swing. Jeśli masz aplikację komputerową opracowaną w jednym (lub obu) z tych silników, możesz rozpocząć przejście do Compose, zachowując obecną bazę kodu.

Android + komputer stacjonarny

A co, jeśli chcesz przenieść aplikację Compose na Androida na komputer? Cóż, możesz też (w pewnym sensie) to zrobić. Elementy interfejsu użytkownika aplikacji można łatwo udostępniać między systemem Android i komputerem stacjonarnym. Nie będziesz w stanie podzielić się wszystkim, ale z pewnością ułatwi to rozwój.

Wsparcie Apple Silikon

Wspomniałem o tym powyżej, ale wspomnę jeszcze raz. The nowe komputery Mac Apple Silicon są całkiem niesamowite, ale procesory są oparte na architekturze ARM CPU, co oznacza, że ​​wiele aplikacji dla systemu macOS działa obecnie za pośrednictwem tłumacza Rosetta 2 x86. Chociaż Apple wykonało całkiem niezłą robotę z tym tłumaczeniem, natywne programy ARM będą nadal działać lepiej.

Cóż, Jetpack Compose for Desktop obsługuje natywnie Apple Silicon. Oznacza to, że nie musisz się martwić spadkiem wydajności w wyniku tłumaczenia ani przyszłym wsparciem, gdy Apple zaprzestanie jego produkcji.

Funkcjonalność

Zatem wszystko dobrze, że JetBrains stworzył nowy silnik układu dla komputerów stacjonarnych, ale kto może powiedzieć, że jest on lepszy od tego, co mamy teraz?

Ja.

W momencie pisania tego tekstu użyłem najnowszej dostępnej wersji (0.2.0-build132), aby stworzyć prostą aplikację udzielającą uprawnień dla tunera SystemUI. Ponieważ nie jestem zaznajomiony z tworzeniem aplikacji i projektowaniem deklaratywnym, było to dla mnie trochę trudniejsze niż aplikacja z układem XML, ale udało mi się. Jest też o wiele łatwiejszy w użyciu niż JavaFX.

Chociaż obsługa motywów (tj. tryb ciemny) jest nadal trochę niepewna, zbudowanie interaktywnego układu jest całkiem łatwe i poza kilkoma migotaniami podczas zmiany rozmiaru okna, wszystko działa dobrze.

Jeśli chcesz sprawdzić aplikację, kod źródłowy jest dostępny na GitHub. Po prostu zaimportuj go za pomocą IntelliJ lub Android Studio i powinien być gotowy do uruchomienia.


Osobiście jestem bardzo podekscytowany Jetpack Compose na komputery stacjonarne. Nawet nie wiedziałem, że istnieje wcześniej, ale już jest to mój ulubiony silnik układu pulpitu. Więcej można dowiedzieć się na Witryna Jetpack Compose na komputery stacjonarne Lub na GitHubie.

Co o tym sądzisz? Czy warto sprawdzić i może nawet skorzystać zamiast innych dostępnych frameworków? Daj mi znać!

Autorzy wyróżnionych obrazów: JetBrains na GitHubie