JetBrains випустив нову версію Jetpack Compose for Desktop, кросплатформену структуру розробки інтерфейсу користувача з відкритим кодом.
Якщо ви займаєтесь розробкою, ви, мабуть, чули про JetBrains. Вони є компанією, що стоїть за величезним набором IDE, який включає IntelliJ (основу для Android Studio), CLion, PhpStorm та багато інших. Вони також створили Котлін, надзвичайно популярна кросплатформна мова програмування.
І JetBrains знову повертається до цього. Трохи більше року тому Google представив новий механізм макета для Android під назвою Jetpack Compose. Це пройшло чимало серйозних змін з тих пір, але він перетворився на компетентну (хоча все ще дещо нестабільну) альтернативу класичним XML-макетам Android.
Яке відношення Jetpack Compose має до JetBrains? Ну, наприклад, це написано Котліном. Крім того, 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 для комп’ютера все ще нова, у ньому відсутні деякі функції. Щоб допомогти розробникам обійти ці обмеження, Compose for Desktop сумісний із двома найпопулярнішими механізмами компонування Java, JavaFX і Swing. Якщо у вас є настільна програма, розроблена на одному (чи на обох) із цих механізмів, ви можете почати перехід на Compose, зберігаючи поточну кодову базу.
Android + робочий стіл
Що робити, якщо ви хочете перенести свою програму Compose для Android на робочий стіл? Ну, ви також можете (начебто) зробити це. Елементи інтерфейсу користувача вашої програми можна легко використовувати між Android і робочим столом. Ви не зможете поділитися всім, але це, безсумнівно, полегшить розвиток.
Підтримка Apple Silicon
Я згадував про це вище, але збираюся згадати ще раз. The нові Apple Silicon Mac досить дивовижні, але процесори базуються на архітектурі CPU ARM, що означає, що багато програм 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