Con la release 2017r2, Xojo ha modificato il framework Linux Desktop in modo da utilizzare GTK+3 invece di GTK+2.
Vediamo brevemente cosa vuol dire questo cambiamento.
Per chi non lo sapesse GTK+ è un toolkit responsabile della resa grafica e della gestione dell’interfaccia utente su Linux, così come Win32 o WinForms.NET o WPF su Windows o Cocoa su macOS.
Sin da quando è stata resa disponibile la compilazione per Linux, Xojo si è basato su GTK+2, ma questa versione è stata da tempo deprecata in favore di GTK+3 da diverso tempo e non è installata di default in molte distribuzioni. Questo ha reso, a volte, la distribuzione di applicazioni Xojo su Linux un processo complicato.
Le due versioni non sono pienamente compatibili a livello base (ABI), quindi nella nuova release di Xojo si è completamente abbandonato GTK+2 per utilizzare GTK+3.
Conseguenze a livello di distribuzione
Applicazioni web e console
Per queste applicazioni non è cambiato nulla. Il sistema minimo richiesto continua ad essere Ubuntu 10.04, CentOS 6.0, etc.
Applicazioni RaspberryPi Desktop
Anche in questo caso non è cambiato nulla, il sistema minimo resta Raspian Wheezy, ma è necessario che sia installata GTK+ 3.4.1 (mentre prima bastava la 2.20)
Applicazioni Linux Desktop
Ora i requisiti minimi diventano Ubuntu 12.04, CentOS 7.0, etc., la presenza di GTK+ 3.4.1. Se si vuole utilizzare l’HTMLViewer anche la disponibilità di libwebkitgtk-3.0.0
Cosa si ottiene
Con il passaggio a GTK+3, oltre il non dover chiedere all’utente di installare la GTK+2, si ottengono diverse nuove funzionalità che prima non erano disponibili:
HiDPI
Gestione automatica, con tutte le funzionalità offerte da Xojo, della scalatura automatica della risoluzione (per valori interi quindi x1, x2, x3 etc)
Controlli
Il clip (ritaglio della visualizzazione) nei controlli trasparenti viene rispettato, per cui è possibile creare controlli compositi senza effetti di “sbordature” che erano dovute alla libreria utilizzata.
I controlli sono generalmente più grandi (a seconda del tema) e quindi rispettano maggiormente l’interfaccia utente del sistema. Con una semplice routine all’avvio della finestra o del container control è possibile rendere compatibile anche il vecchio codice. In ogni caso i controlli possono essere personalizzati tramite CSS a livello di utente.
Conclusioni
Le differenze possono sembrare poche, ma questo passaggio permette di avere la gestione dell’HiDPI in tutte le piattaforme. Finalmente è stato eliminato il codice aggiuntivo necessario per avere funzionalità moderne nella UI su Linux (cosa che non è necessaria con GTK+3) quindi, ancora una volta, si conferma quella notevole capacità di evolversi di Xojo che continua ad essere uno dei migliori ambienti di sviluppo crossplatform del mercato.