JetBrains a lansat o nouă versiune a Jetpack Compose pentru desktop, un cadru de dezvoltare a interfeței de utilizare multiplatformă open-source.
Dacă faci orice fel de muncă de dezvoltare, probabil ai auzit de JetBrains. Ei sunt compania din spatele uriașei suite de IDE-uri care include IntelliJ (baza pentru Android Studio), CLion, PhpStorm și multe altele. Ei sunt și cei care au făcut Kotlin, limbajul de programare multiplatform extrem de popular.
Și JetBrains a revenit la asta. Cu puțin peste un an în urmă, Google a introdus un nou motor de layout pentru Android numit Jetpack Compose. A trecut prin destul de multe schimbări majore de atunci, dar s-a transformat într-o alternativă competentă (deși încă oarecum instabilă) la layout-urile XML clasice ale Android.
Ce legătură are Jetpack Compose cu JetBrains? Ei bine, unul, este scris în Kotlin. Dar, de asemenea, JetBrains a lucrat în tăcere la portarea Compose pe spațiul desktop. A fost public ca o previzualizare timpurie a dezvoltatorului, iar acum JetBrains este gata să anunțe oficial că există.
Ce este Jetpack Compose?
Am vorbit puțin despre asta în introducere, dar cred că merită ceva mai multe explicații. Dacă ați mai dezvoltat pe Android, probabil că v-ați obișnuit cu modul în care funcționează layout-urile. Mai întâi, vă proiectați aspectul într-un fișier XML și apoi interacționați cu acel aspect din Java sau Kotlin. Deși este funcțional, este puțin depășit, iar aspectul împărțit în diferite limbi poate fi greu de gestionat.
Ca o alternativă la aceasta, Google a început să dezvolte Jetpack Compose. Compose este un motor de layout pentru Android construit pe Kotlin. Întregul aspect și codul logic este într-un singur loc, ceea ce face interactivitatea mult mai ușoară. Este, de asemenea, declarativ, în loc de stilul imperativ al layout-urilor XML.
Trecerea la un motor de aspect declarativ dintr-unul imperativ poate dura ceva pentru a vă obișnui, dar Compose este cu siguranță o îmbunătățire față de XML, chiar dacă este încă în stadiile incipiente.
Jetpack Compose pentru desktop
Deci, Compose este o alternativă frumoasă de aspect pentru aplicațiile native Android. Dar nu este (în mod normal) cross-platform. Aici intervine JetBrains. Compania a portat Jetpack Compose pe spațiul desktop, cu suport pentru Windows, Linux și macOS (atât Intel, cât și ARM).
Deși există și alte motoare de layout pentru desktop, cum ar fi Electron, JavaFX și UWP, este puțin dezordonat acum. Unele nu sunt multi-platformă, așa că funcționează doar pe un anumit sistem de operare. Altele sunt din punct de vedere tehnic multiplatforme, dar necesită multă muncă pentru a fi distribuite. Și totuși, altele sunt doar o durere pentru a lucra, cum ar fi JavaFX.
Jetpack Compose pentru desktop, pe de altă parte, este relativ ușor de utilizat, acceptă scalarea afișajului, are stil încorporat și este (aproape) complet multiplatformă. Deși încă nu puteți compila pentru toate distribuțiile dintr-un singur sistem de operare, codul în sine este complet portabil. La fel ca și în cazul Android, o aplicație ambalată se bazează pe Java, deși utilizatorii nu au nevoie de un JDK instalat pentru ao utiliza.
Compatibilitate încrucișată
Deoarece Compose for Desktop este încă nou, îi lipsesc unele funcții. Pentru a ajuta dezvoltatorii să rezolve aceste limitări, Compose for Desktop este interoperabil cu două dintre cele mai populare motoare de layout Java, JavaFX și Swing. Dacă aveți o aplicație desktop dezvoltată în unul (sau ambele) dintre aceste motoare, puteți începe să treceți la Compose, menținând în același timp baza de cod curentă.
Android + Desktop
Ce se întâmplă dacă doriți să aduceți aplicația dvs. Compose Android pe desktop? Ei bine, poți și (cumva) să faci asta. Elementele UI ale aplicației dvs. pot fi partajate cu ușurință între Android și desktop. Nu vei putea partaja totul, dar cu siguranță ușurează dezvoltarea.
Suport Apple Silicon
Am menționat asta mai sus, dar o voi menționa din nou. The noi Mac-uri Apple Silicon sunt destul de uimitoare, dar procesoarele se bazează pe arhitectura CPU ARM, ceea ce înseamnă că o mulțime de aplicații macOS rulează în prezent prin translatorul Rosetta 2 x86. În timp ce Apple a făcut o treabă destul de bună cu această traducere, programele native ARM vor rula în continuare mai bine.
Ei bine, Jetpack Compose pentru desktop acceptă Apple Silicon în mod nativ. Aceasta înseamnă că nu va trebui să vă faceți griji cu privire la scăderea performanței de la traducere sau cu privire la asistența viitoare atunci când Apple îl întrerupe.
Funcționalitate
Deci este bine că JetBrains a creat un nou motor de layout pentru desktop, dar cine poate spune că este mai bun decât ceea ce avem acum?
Pe mine.
Am folosit cea mai recentă versiune disponibilă când am scris aceasta (0.2.0-build132) pentru a crea o aplicație simplă de acordare a permisiunilor pentru SystemUI Tuner. Deoarece nu sunt atât de familiarizat cu Compose și design declarativ, a fost puțin mai dificil pentru mine decât o aplicație de layout XML, dar am făcut-o. Și este mult mai ușor de utilizat decât JavaFX.
În timp ce suportul temei (adică modul întunecat) este încă puțin nesigur, este destul de ușor să construiți un aspect interactiv și, în afară de câteva pâlpâiri la redimensionarea ferestrei, totul funcționează bine.
Dacă doriți să verificați aplicația, codul sursă este disponibil pe GitHub. Doar importați-l cu IntelliJ sau Android Studio și ar trebui să fie gata de rulare.
Personal, sunt destul de încântat de Jetpack Compose pentru desktop. Nici măcar nu știam că există înainte, dar este deja motorul meu de layout desktop ales. Puteți afla mai multe despre Site-ul web Jetpack Compose pentru desktop sau pe GitHub.
Ce crezi despre asta? Merită să verificați și poate chiar să folosiți în loc de alte cadre disponibile? Să-mi dai de veste!
Credite de imagine prezentate: JetBrains pe GitHub