Jetpack Compose per desktop aggiunge il livello Swing e il supporto Apple Silicon

JetBrains ha rilasciato una nuova versione di Jetpack Compose for Desktop, un framework di sviluppo dell'interfaccia utente multipiattaforma open source.

Se svolgi qualsiasi tipo di lavoro di sviluppo, probabilmente hai sentito parlare di JetBrains. Sono l'azienda dietro l'enorme suite di IDE che include IntelliJ (la base per Android Studio), CLion, PhpStorm e molti altri. Sono anche loro che l'hanno fatto Kotlin, il popolarissimo linguaggio di programmazione multipiattaforma.

E JetBrains è tornato di nuovo all'opera. Poco più di un anno fa, Google ha introdotto un nuovo motore di layout per Android chiamato Jetpack Compose. E' passato da allora ci sono stati alcuni cambiamenti importanti, ma si è trasformato in un'alternativa competente (anche se ancora un po' instabile) ai classici layout XML di Android.

Cosa ha a che fare Jetpack Compose con JetBrains? Beh, per prima cosa, è scritto in Kotlin. Inoltre, JetBrains ha lavorato silenziosamente al porting di Compose sullo spazio desktop. È stata pubblica come anteprima per gli sviluppatori e ora JetBrains è pronto ad annunciare ufficialmente che esiste.

Cos'è Jetpack Compose?

Ne ho parlato un po’ nell’introduzione, ma credo che meriti qualche spiegazione in più. Se hai già sviluppato su Android, probabilmente sei abituato a come funzionano i layout. Innanzitutto, progetti il ​​tuo layout in un file XML, quindi interagisci con quel layout da Java o Kotlin. Sebbene sia funzionale, è un po' obsoleto e avere i layout suddivisi tra le lingue può essere difficile da gestire.

In alternativa a questo, Google ha iniziato a sviluppare Jetpack Compose. Compose è un motore di layout per Android basato su Kotlin. Tutto il layout e il codice logico sono in un unico posto, il che rende l'interattività molto più semplice. È anche dichiarativo, invece dello stile imperativo dei layout XML.

Passare a un motore di layout dichiarativo da uno imperativo può richiedere un po' di tempo per abituarsi, ma Compose è sicuramente un miglioramento rispetto a XML, anche se è ancora nelle sue fasi iniziali.

Jetpack Componi per desktop

Quindi, Compose è una bella alternativa di layout per le app Android native. Ma non è (normalmente) multipiattaforma. È qui che entra in gioco JetBrains. L'azienda ha portato Jetpack Compose sullo spazio desktop, con supporto per Windows, Linux e macOS (sia Intel che ARM).

Sebbene esistano altri motori di layout per desktop, come Electron, JavaFX e UWP, al momento è un po' confuso. Alcuni non sono multipiattaforma, quindi funzionano solo su un sistema operativo specifico. Altri sono tecnicamente multipiattaforma, ma richiedono molto lavoro per essere distribuiti. Eppure, è davvero complicato lavorare con altri, come JavaFX.

Jetpack Compose for Desktop, d'altra parte, è relativamente facile da usare, supporta il ridimensionamento dello schermo, ha uno stile integrato ed è (quasi) completamente multipiattaforma. Sebbene non sia ancora possibile compilare per tutte le distribuzioni da un sistema operativo, il codice stesso è completamente portabile. Proprio come con Android, un'app in pacchetto è basata su Java, sebbene gli utenti non abbiano bisogno di un JDK installato per utilizzarla.

Compatibilità incrociata

Poiché Compose for Desktop è ancora nuovo, mancano alcune funzionalità. Per aiutare gli sviluppatori a aggirare queste limitazioni, Compose for Desktop è interoperabile con due dei motori di layout Java più popolari, JavaFX e Swing. Se disponi di un'app desktop sviluppata in uno (o entrambi) di questi motori, puoi iniziare la transizione a Compose mantenendo la base di codice corrente.

Android + desktop

E se volessi portare la tua app Compose Android sul desktop? Bene, puoi anche (in un certo senso) farlo. Gli elementi dell'interfaccia utente della tua app possono essere facilmente condivisi tra Android e desktop. Non sarai in grado di condividere tutto, ma sicuramente renderà lo sviluppo più semplice.

Supporto Apple Silicon

Ne ho parlato sopra, ma lo menzionerò ancora. IL nuovi Mac Apple Silicon sono piuttosto sorprendenti, ma i processori sono basati sull'architettura della CPU ARM, il che significa che molte app macOS sono attualmente eseguite tramite il traduttore Rosetta 2 x86. Sebbene Apple abbia fatto un ottimo lavoro con quella traduzione, i programmi ARM nativi funzioneranno comunque meglio.

Bene, Jetpack Compose for Desktop supporta Apple Silicon in modo nativo. Ciò significa che non dovrai preoccuparti di cali di prestazioni dovuti alla traduzione o del supporto futuro quando Apple lo interromperà.

Funzionalità

Quindi va tutto bene che JetBrains abbia creato un nuovo motore di layout per desktop, ma chi può dire che sia migliore di quello che abbiamo adesso?

Me.

Ho utilizzato l'ultima build disponibile al momento della stesura di questo (0.2.0-build132) per creare una semplice app di concessione delle autorizzazioni per SystemUI Tuner. Dato che non ho molta familiarità con Compose e il design dichiarativo, per me è stato un po' più difficile di un'app di layout XML, ma ce l'ho fatta. Ed è molto più facile da usare rispetto a JavaFX.

Anche se il supporto dei temi (ad esempio la modalità oscura) è ancora un po' incerto, è abbastanza semplice creare un layout interattivo e, a parte qualche sfarfallio durante il ridimensionamento della finestra, tutto funziona bene.

Se vuoi controllare l'app, il codice sorgente è disponibile su GitHub. Basta importarlo con IntelliJ o Android Studio e dovrebbe essere pronto per essere eseguito.


Personalmente, sono piuttosto entusiasta di Jetpack Compose per desktop. Non sapevo nemmeno che esistesse prima, ma è già il mio motore di layout desktop preferito. Puoi saperne di più su Sito Web Jetpack Compose per desktop O su GitHub.

Cosa ne pensi? Vale la pena provarlo e magari anche usarlo al posto di altri framework disponibili? Fammi sapere!

Crediti immagine in primo piano: JetBrains su GitHub