Se segui le vicende di RAD Studio, probabilmente hai visto il nostro annuncio sulla rinnovata attenzione al linguaggio C++, What’s Coming for C++Builder (Le novità in arrivo per C++Builder): Un’incredibile anteprima. Come seguito ai nostri entusiasmanti aggiornamenti di C++Builder, abbiamo voluto condividere alcune specifiche su ciò che abbiamo in programma per le altre parti del prodotto, in particolare le nostre librerie VCL e FireMonkey UI.
Una nuova base per FireMonkey: Skia
La libreria dell’interfaccia utente (UI) multidispositivo e multipiattaforma di RAD Studio si basa sul concetto di astrazione dell’effettivo rendering degli elementi dell’interfaccia utente, utilizzando gli stili. Gli stili sono implementati utilizzando alcuni oggetti ed elementi grafici primitive, mappati da FireMonkey su diversi driver grafici, da DirectX a Metal.
Negli ultimi anni è emersa una libreria in questo ambito, che offre un livello di astrazione più elevato con primitive più complesse, lavorando al contempo sui driver nativi della piattaforma supportata da FireMonkey. Questa libreria si chiama Skia e offre un’incredibile potenza per le applicazioni grafiche 2D di tutti i tipi, oltre a un notevole vantaggio in termini di prestazioni. Skia alimenta alcune delle applicazioni multi dispositivo di maggior successo oggi, a partire dal browser Chrome di Google.
Oggi è possibile utilizzare Skia per alimentare le applicazioni FireMonkey, utilizzando la libreria Skia4Delphi, disponibile anche direttamente in GetIt. Nelle prossime versioni di RAD Studio è prevista un’integrazione profonda e immediata di Skia e Skia4Delphi: Rendendolo parte del prodotto, offriremo un’esperienza più fluida e lo renderemo un cittadino di prima classe nell’ecosistema FireMonkey. I vantaggi includono un rendering più veloce, in particolare su Android, ma anche una serie di funzionalità e componenti aggiuntivi disponibili quando si utilizza un driver basato su Skia.
Da notare che come parte del supporto di Skia, non intendiamo utilizzarlo solo come driver GPU per FireMonkey, ma prevediamo anche di includere controlli UI specifici per FireMonkey e persino per la libreria VCL.
(Il controllo SkLabel supporta sezioni multiple di una singola etichetta con attributi di testo diversi, come si può vedere nell’Inspector Oggetti)
Modernizzazione di VCL: il ritorno di MDI
Su un fronte completamente diverso, sappiamo che molti dei nostri clienti hanno applicazioni VCL esistenti che vogliono mantenere attive e modernizzare. La libreria VCL ha costantemente fornito un solido supporto per la modernizzazione delle applicazioni, come il supporto HighDPI, una sofisticata architettura di styling, l’utilizzo di versioni più recenti dei controlli della piattaforma, l’integrazione dell’API WinRT, il supporto della distribuzione MSIX e l’integrazione del controllo WebView2 (il motore basato su Chromium del browser Edge).
Negli ultimi anni ci siamo allontanati dal supporto del modello MDI ( Multiple Document Interface). Si tratta di un paradigma dell’interfaccia utente relativamente obsoleto, basato sull’avere più finestre (che mostrano lo stesso tipo di contenuto o tipi diversi) ospitate in una finestra principale contenitore. Per quanto sia vecchio stile, il modello MDI può essere efficace e molti dei nostri clienti lo utilizzano da molto tempo, hanno formato i loro utenti su questo modello e per questo motivo preferiscono continuare a usarlo. Uno degli svantaggi dell’utilizzo del modello MDI di VCL sta nel fatto che si tratta di un involucro attorno al supporto della piattaforma Windows, che presenta molti problemi con i monitor HighDPI, ad esempio.
(sopra) Un’applicazione MDI con supporto completo dello stile su High DPI, mostrata utilizzando lo stile Glow VCL (a sinistra) e lo stile Aqua Light Slate VCL (a destra)
Dopo un’approfondita ricerca e revisione tecnica, abbiamo deciso che valeva la pena tentare di aggirare tutti i principali problemi della piattaforma e rielaborare il modello MDI di VCL. Pur essendo ancora basato sull’API della piattaforma principale, abbiamo lavorato e risolto la maggior parte dei problemi della piattaforma. Inoltre, stiamo introducendo una nuova opzione per ospitare i moduli MDI (o qualsiasi modulo in generale) in un’interfaccia utente a schede, come puoi vedere qui sotto. Per tutti i nostri clienti che utilizzano l’interfaccia utente MDI, il prossimo lancio offrirà una boccata d’aria fresca, dando nuova vita alle applicazioni. In particolare ci siamo concentrati sia sul supporto HighDPI che su quello degli stili VCL, in modo che tu possa sfruttare tutte le funzionalità di modernizzazione VCL esistenti anche per le applicazioni MDI.
(sopra) Il nuovo modello MDI basato sulle schede
E molto altro ancora
Il reparto di ricerca e sviluppo di Embarcadero sta lavorando a molto altro, in termini di librerie, IDE, compilatori, aggiornamenti della piattaforma e accesso al database. Il prossimo lancio di RAD Studio sarà un lancio notevole per gli sviluppatori C++, ma sarà un lancio molto significativo anche per gli sviluppatori Delphi, con miglioramenti in tutte le aree del prodotto.
Rimani sintonizzato per ulteriori informazioni nei prossimi mesi e per l’accesso anticipato alla beta, a partire dai nostri clienti con un abbonamento Premium attivo.
Dichiarazione di non responsabilità: tutte le nuove funzionalità e i miglioramenti discussi in questo blog post per le future versioni di RAD Studio non rappresentano un impegno fino al completamento e al lancio di GA.