JetBrains a lansat Compose for Desktop and Web, un port al Google Jetpack Compose pentru Android, în alpha. Iată ce este nou.
Dacă nu ai auzit de Jetpack Compose, unde ai fost in ultima vreme? Google a creat acest cadru declarativ de interfață de utilizare pentru a înlocui motorul standard de aspect XML în Android. Compose le permite dezvoltatorilor să-și creeze machetele și logica însoțitoare, totul în Kotlin. JetBrains, compania din spatele lui Kotlin, a participat și el la acțiunea Compose și lucrează la portarea acesteia atât pe desktop, cât și pe web.
JetBrains Compose pentru desktop și web a fost în dezvoltare de ceva vreme. A avut o „Previzualizare tehnologie” publică pre-alfa pe care dezvoltatorii o pot folosi pentru a crea aplicații multiplatforme în Compose. Eu personal l-am folosit pentru aplicația mea Samsung Firmware Downloader, și funcționează destul de bine.
Astăzi, JetBrains își promovează versiunea Compose la alfa. Asta înseamnă un API mai stabil, împreună cu câteva funcții și modificări noi.
Compune pentru Web
În primul rând, web-ul. Compune pentru Web este uniform mai nou decât Compose for Desktop, și lipsește destul de mult. Asta nu înseamnă însă că este inutil. În timp ce dezvoltatorii pot să nu obțină elementele de bază ale interfeței de utilizare disponibile pentru desktop și Android, dezvoltatorii beneficiază în continuare de beneficiile scrierii în Kotlin cu principii de design declarative.
Acum că Compose se află într-o etapă alfa, API-ul web ar trebui să fie mai stabil, cu mai puține modificări, dacă există, de-a lungul timpului.
Gestionare ferestre de redactare
Înapoi la Desktop, există câteva modificări în modul în care dezvoltatorii interacționează cu Windows în aplicația lor.
Primul este unul nou API-ul ferestrelor compuse. Acest lucru le permite dezvoltatorilor să interacționeze cu ferestrele din aplicația lor în mod declarativ. De exemplu, titlul ferestrei poate fi schimbat acum cu o stare, iar ferestrele pot fi chiar deschise și închise în funcție de stări.
O altă parte a noii ferestre API le permite dezvoltatorilor să aleagă să aibă ferestre noi deschise cu o dimensiune adaptivă (în loc de fixă). Aceasta înseamnă că Compose va calcula cât de mare trebuie să fie o fereastră pe baza conținutului ei, va seta automat dimensiunea inițială și apoi va deschide fereastra.
Pluginuri
JetBrains Compose a avut întotdeauna un plugin Gradle pentru a realiza compilarea și execuția. Odată cu alpha, acest plugin primește o creștere a versiunii, împreună cu unele remedieri de erori.
Pe lângă pluginul Gradle, totuși, există acum un plugin IDE pentru IntelliJ IDEA și Android Studio pentru a sprijini mai bine Compose pentru desktop și web. Similar cu Compose pentru Android, acest plugin permite dezvoltatorilor să adnoteze funcțiile componabile ca previzualizări și să vizualizeze previzualizările aspectului direct în IDE.
Pluginul este foarte simplu acum. Singura altă caracteristică pe care o are în acest moment elimină avertismentul de scame IDE despre utilizarea majusculei de titlu pentru numele funcțiilor componabile. Dar va primi mai multe funcții pe măsură ce trece timpul, cum ar fi previzualizarea live.
Suport arhitectural
Chiar dacă scopul pentru JetBrains Compose este să fie multi-platformă, încă nu are suport complet pentru toate arhitecturile CPU. Alfa extinde suportul actual la următoarele:
- macOS: x86-64 (amd64), arm64
- Windows: x86-64 (amd64)
- Linux: x86-64 (amd64), arm64
- Web: orice recent
Deși acest lucru cu siguranță nu acoperă totul, asistența se va îmbunătăți în viitor.
Evoluții viitoare
Alegerea JetBrains de a muta Compose într-o stare alfa este importantă. Înseamnă că plănuiesc să continue să se dezvolte pentru acesta, cu eventuale etape beta și stabile. Și, desigur, mai multe caracteristici.
Concluzie
Este destul de interesant să vezi ce are de adus Compose. Pe Android, înlocuiește un motor de aspect învechit (deși perfect utilizabil). Pe desktop și web, oferă un design declarativ folosind un limbaj puternic tipizat, care este mai ușor de utilizat (cel puțin pentru mine) decât limbajele bazate pe TypeScript. În special pe desktop, Compose ajută la umplerea unui gol destul de mare pentru motoarele de layout funcționale.
Dacă sunteți interesat să încercați JetBrains Compose, consultați depozitul GitHub pentru mai multe detalii despre cum să începeți.