JetBrains Compose per desktop e Web è ora in versione alpha

JetBrains ha rilasciato Compose per desktop e Web, un port di Jetpack Compose di Google per Android, in versione alpha. Ecco le novità.

Se non ne hai sentito parlare Jetpack Componi, dove sei stato ultimamente? Google ha creato questo framework dell'interfaccia utente dichiarativa per sostituire il motore di layout XML standard in Android. Compose consente agli sviluppatori di creare i propri layout e la logica di accompagnamento, tutto in Kotlin. Anche JetBrains, la società dietro Kotlin, ha preso parte all'azione Compose e sta lavorando al porting sia sul desktop che sul web.

JetBrains Compose per desktop e Web è in sviluppo ormai da un po'. È disponibile una "Anteprima tecnologica" pre-alpha pubblica che gli sviluppatori possono utilizzare per creare app multipiattaforma in Compose. L'ho usato personalmente per la mia app Samsung Firmware Downloader, e funziona piuttosto bene.

Oggi JetBrains sta promuovendo la sua versione di Compose in alpha. Ciò significa un'API più stabile, insieme ad alcune nuove funzionalità e modifiche.

Comporre per il Web

Innanzitutto il web. Comporre per il Web è uniforme più recente di Compose per desktop, e ne manca un bel po'. Ciò non significa che sia inutile, però. Anche se gli sviluppatori potrebbero non ottenere gli eleganti elementi dell'interfaccia utente di base disponibili per desktop e Android, gli sviluppatori ottengono comunque i vantaggi di scrivere in Kotlin con principi di progettazione dichiarativi.

Ora che Compose è in una fase alfa, l'API Web dovrebbe essere più stabile, con meno modifiche sostanziali, se non nessuna, apportate nel tempo.

Componi la gestione delle finestre

Tornando al desktop, sono state apportate alcune modifiche al modo in cui gli sviluppatori interagiscono con Windows nella loro app.

Il primo è una novità API della finestra componibile. Ciò consente agli sviluppatori di interagire con le finestre della loro app in modo dichiarativo. Ad esempio, ora il titolo della finestra può essere modificato con uno stato e le finestre possono anche essere aperte e chiuse in base allo stato.

Un'altra parte della nuova API delle finestre consente agli sviluppatori di scegliere di aprire nuove finestre con dimensioni adattive (invece che fisse). Ciò significa che Compose calcolerà quanto deve essere grande una finestra in base al suo contenuto, imposterà automaticamente la dimensione iniziale e quindi aprirà la finestra.

Plugin

JetBrains Compose ha sempre avuto un plugin Gradle per eseguire la compilazione e l'esecuzione. Con la versione alpha, questo plugin riceverà un aggiornamento della versione, insieme ad alcune correzioni di bug.

Oltre al plugin Gradle, però, c'è ora un plugin IDE per IntelliJ IDEA e Android Studio per supportare meglio Compose per desktop e Web. Analogamente a Compose per Android, questo plugin consente agli sviluppatori di annotare le funzioni componibili come anteprime e visualizzare le anteprime del layout direttamente nell'IDE.

Il plugin è molto semplice in questo momento. L'unica altra funzionalità di cui dispone al momento rimuove l'avviso di lanugine IDE sull'utilizzo delle maiuscole e minuscole per i nomi delle funzioni componibili. Ma col passare del tempo otterrà più funzionalità, come l'anteprima dal vivo.

Supporto all'architettura

Anche se l'obiettivo di JetBrains Compose è quello di essere multipiattaforma, non ha ancora il supporto completo per tutte le architetture della CPU. L'alfa espande l'attuale supporto a quanto segue:

  • macOS: x86-64 (amd64), arm64
  • Windows: x86-64 (amd64)
  • Linux: x86-64 (amd64), arm64
  • Web: qualcosa di recente

Anche se questo certamente non copre tutto, il supporto non potrà che migliorare in futuro.

Sviluppi futuri

La scelta di JetBrains di spostare Compose in uno stato alfa è importante. Significa che stanno pianificando di continuare a svilupparlo, con eventuali fasi beta e stabili. E, naturalmente, più funzionalità.

Conclusione

È piuttosto emozionante vedere cosa ha da offrire Compose. Su Android, sostituisce un motore di layout obsoleto (anche se perfettamente utilizzabile). Su desktop e Web, offre un design dichiarativo utilizzando un linguaggio fortemente tipizzato che è più facile da usare (almeno per me) rispetto ai linguaggi basati su TypeScript. Soprattutto su desktop, Compose aiuta a colmare una lacuna piuttosto ampia per i motori di layout funzionali.

Se sei interessato a provare JetBrains Compose, controlla il repository GitHub per ulteriori dettagli su come iniziare.