JetBrains пусна нова версия на Jetpack Compose for Desktop, платформа за разработка на потребителски интерфейс с отворен код.
Ако се занимавате с някаква развойна дейност, вероятно сте чували за JetBrains. Те са компанията зад огромния набор от IDE, който включва IntelliJ (основата за Android Studio), CLion, PhpStorm и много други. Те също са тези, които са направили Котлин, изключително популярният междуплатформен език за програмиране.
И JetBrains отново се завръща към това. Преди малко повече от година Google представи нов механизъм за оформление за Android, наречен Jetpack Compose. Преминало е доста големи промени оттогава, но се превърна в компетентна (макар и все още донякъде нестабилна) алтернатива на класическите XML оформления на Android.
Какво общо има Jetpack Compose с JetBrains? Е, от една страна, написано е на Kotlin. Но също така, JetBrains мълчаливо работи върху пренасянето на Compose към пространството на работния плот. Той беше публичен като ранна предварителна версия за разработчици и сега JetBrains е готов да обяви официално, че съществува.
Какво е Jetpack Compose?
Говорих малко за това във въведението, но мисля, че заслужава малко повече обяснение. Ако преди сте разработвали под Android, вероятно сте свикнали как работят оформленията. Първо проектирате вашето оформление в XML файл и след това взаимодействате с това оформление от Java или Kotlin. Въпреки че е функционален, той е малко остарял и може да е трудно да управлявате вашите оформления, разделени на различни езици.
Като алтернатива на това Google започна да разработва Jetpack Compose. Compose е машина за оформление за Android, изградена върху Kotlin. Целият ви оформление и логически код са на едно място, което прави интерактивността много по-лесна. Освен това е декларативен, вместо императивния стил на XML оформленията.
Преминаването към машина за декларативно оформление от императивна може да отнеме известно време, но Compose определено е подобрение спрямо XML, въпреки че все още е в начален етап.
Jetpack Compose за настолен компютър
И така, Compose е хубава алтернатива на оформлението за собствени приложения за Android. Но това не е (обикновено) междуплатформено. Точно тук се намесва JetBrains. Компанията пренесе Jetpack Compose в настолното пространство с поддръжка за Windows, Linux и macOS (както Intel, така и ARM).
Въпреки че има други машини за оформление, които съществуват за десктоп, като Electron, JavaFX и UWP, в момента е малко бъркотия. Някои не са междуплатформени, така че работят само на една конкретна операционна система. Други са технически междуплатформени, но изискват много работа за разпространение. И все пак, други са просто болка за работа, като JavaFX.
Jetpack Compose for Desktop, от друга страна, е сравнително лесен за използване, поддържа мащабиране на дисплея, има вграден стил и е (почти) напълно междуплатформен. Въпреки че все още не можете да компилирате за всички дистрибуции от една операционна система, самият код е напълно преносим. Точно както при Android, пакетираното приложение е базирано на Java, въпреки че потребителите не се нуждаят от инсталиран JDK, за да го използват.
Кръстосана съвместимост
Тъй като Compose for Desktop е все още нов, липсват му някои функции. За да помогне на разработчиците да заобиколят тези ограничения, Compose for Desktop е съвместим с две от по-популярните машини за оформление на Java, JavaFX и Swing. Ако имате настолно приложение, разработено в една (или и двете) от тези машини, можете да започнете да преминавате към Compose, като същевременно поддържате текущата си кодова база.
Android + настолен компютър
Какво ще стане, ако искате да пренесете приложението Compose за Android на работния плот? Е, вие също можете (донякъде) да направите това. Елементите на потребителския интерфейс на вашето приложение могат лесно да се споделят между Android и настолен компютър. Няма да можете да споделяте всичко, но със сигурност улеснява развитието.
Поддръжка на Apple Silicon
Споменах това по-горе, но ще го спомена отново. The нови Apple Silicon Mac са доста невероятни, но процесорите са базирани на ARM CPU архитектура, което означава, че много приложения на macOS в момента работят през преводача Rosetta 2 x86. Въпреки че Apple свърши доста добра работа с този превод, родните ARM програми ще работят по-добре.
Е, Jetpack Compose за настолен компютър поддържа Apple Silicon първоначално. Това означава, че няма да се притеснявате за спадове на производителността от превод или за бъдеща поддръжка, когато Apple го прекрати.
Функционалност
И така, всичко е добре, че JetBrains направи нов двигател за оформление за десктоп, но кой може да каже, че е по-добър от това, което имаме сега?
аз
Използвах най-новата налична компилация към момента на писане на това (0.2.0-build132), за да направя просто приложение за предоставяне на разрешения за SystemUI Tuner. Тъй като не съм толкова запознат с Compose и декларативния дизайн, беше малко по-трудно за мен от приложение за XML оформление, но се справих. И е много по-лесен за използване от JavaFX.
Докато поддръжката на теми (т.е. тъмен режим) все още е малко съмнителна, е доста лесно да се изгради интерактивно оформление и освен няколко трептения при преоразмеряване на прозореца, всичко работи добре.
Ако искате да проверите приложението, изходният код е достъпен на GitHub. Просто го импортирайте с IntelliJ или Android Studio и трябва да е готов за работа.
Лично аз съм доста развълнуван от Jetpack Compose за настолен компютър. Дори не знаех, че съществува преди, но това вече е моята избрана машина за оформление на работния плот. Можете да научите повече на Jetpack Compose for Desktop уебсайт или на GitHub.
Какво мислиш за това? Струва ли си да се провери и може би дори да се използва вместо други налични рамки? Кажи ми!
Кредити за представени изображения: JetBrains в GitHub