Skip to content

XDC 2018

Si sta tenendo a Denver la XDC 2018. Riassumiamo qui quanto detto nel keynote di apertura.

Immagine fornita da Alyssa Foley (Xojo)

Geoff Perlman, CEO della Xojo Inc, ha aperto i lavori della XDC 2018 con il classico keynote. Dopo una breve presentazione sulla XDC, sui partecipanti (mai come per questa edizione i posti si sono esauriti così velocemente) e dopo una introduzione sulle funzionalità di gestione di Xojo Cloud, ha proseguito mostrando i dati sul numero di applicazioni sviluppate per mobile contro quelle per desktop.

Il dato risulta molto interessante perché mostra come in pratica il trend si stia stabilizzando con un ovvio favore per il mobile (maggior numero di dispositivi) ma una persistenza di applicativi desktop (non tutto è comodo da utilizzare in pura mobilità). Geoff sostiene, e condivido in pieno, che il futuro è nello sviluppo cross-piattaforma e in questo Xojo è decisamente un ambiente ideale.

Aggiungo, come opinione personale che sostengo da anni, che sono i dati che devono essere compatibili e nei limiti del possibile e delle necessità: le applicazioni ci devono permettere di utilizzarli a prescindere dal fatto di essere mobile, desktop o web, o dal sistema operativo.

Il keynote è proseguito elencando le varie novità e tecnologie introdotte recentemente, tra cui LLVM e la possibilità di produrre applicazioni a 64bit semplicemente cambiando una impostazione del progetto.

Il futuro

Pur ammettendo dei ritardi in alcune implementazioni che erano state preventivate, Geoff ha esposto come verranno gestite e cosa arriverà nel prossimo futuro. Alcune cose devono essere completate per poter essere utilizzate ma la realizzazione di una innovazione influenza lo sviluppo delle altre.

Android

Come esempio è stato esposto quello dello sviluppo per Android che è a buon punto e il cui sviluppo ha permesso di rendere possibile il promesso sviluppo di Interops (la possibilità di rendere più semplici le chiamate al sistema operativo sottostante e ad altre funzionalità interne) e su cui lo sviluppo per questa piattaforma è basato.

Lo sviluppo su Android sarà basato su String e Variant (che tornano protagonisti come vedremo in seguito).

Buona parte di quanto necessario è stato realizzato, per cui dovremmo vedere qualcosa nel prossimo futuro. Allo stato attuale si sa che sarà possibile lo sviluppo da Windows e da macOS (per Linux attualmente ci sono dei problemi), sarà necessario avere installato Android Studio (per l’emulatore e gli strumenti di debug), l’SDK utilizzato è 8.1 (Oreo) e il target è Android 4.4+ (in pratica più dell’80% dell’installato).

Web

A buon punto è anche lo sviluppo del nuovo framework per il web che permetterà di realizzare in modo ancora più efficiente e con un layout migliore le applicazioni per questa piattaforma.

Originalmente sviluppato quasi 10 anni fa, quando il panorama web era profondamente diverso, e con l’esperienza raccolta in questi anni, il nuovo framework è un passo necessario.

Il tutto è ottimizzato per velocizzare la trasmissione tra server e client, si avrà a disposizione un server HTTP/1.1, nuovi controlli, la modifica del documento avverrà lato client, sarà basato su jQuery, Boostrap e FuelUX.

Saranno introdotte alcune tecnologie come ad esempio: controlli di sessione (per poter comunicare con tutte le sessioni ad esempio per una chat o per le notifiche), la possibilità di utilizzare il testo Back del browser per tornare ad uno stato precedente, il layout sarà possibile in tre modalità: Fissa (come ora), Autolayout (alla iOS) o Fluida (dove i controlli si ridimensionano in base al dispositivo) e sarà possibile impostarlo a livello di elemento così da poter utilizzare anche modalità miste in base alle necessità.

Saranno introdotti nuovi controlli come: Accordion, Audio player, Breadcrumb, Charts, Combobox, Date Picker, PagePanel, Popover, Splitter, TabPanel e TreeView.

I controlli attuali saranno aggiornati in modo da avere nuove funzionalità: ad esempio il fileUploader sarà diviso (finalmente!) in due componenti: uno per l’interfaccia e un altro per la gestione dei file e il caricamento, la Listbox sarà paginabile, con possibilità di ricerca e altro (si veda una listbox su FuelUX per avere qualche esempio), la formattazione/validazione dei campi di testo avverrà sul client (da vedere in pratica come), i menu e le toolbar saranno graficamente più coerenti.

In pratica le applicazioni saranno più web-style e meno desktop-style.

La buona notizia è che, quando sarà disponibile, verrà fatta una trasformazione automatica del progetto in  modo da utilizzare questo nuovo framework.  Ovviamente questo vorrà dire non poter tornare indietro e dover cambiare o molto più probabilmente eliminare, tutte le aggiunte che erano state introdotte per ovviare ai limiti del framework web attuale.

API 2.0

Grandi novità in arrivo anche per il framework di Xojo. Tornerà ad essere unico con buona pace dei namespaces e dei tipi Text, Auto a altre novità introdotte dal nuovo framework. Queste saranno disponibili in quello 2.0 e per il momento viene assicurata la convivenza tra il framework originale, quello new e quello 2.0: verrà reso disponibile un documento che spiegherà nel dettaglio cosa rimarrà del framework Xojo e se torneranno le ambiguità possibili che questo framework aveva tentato di eliminare.

Quello che è certo che si semplificherà la scrittura del codice sia per il non dover utilizzare i namespace per le funzionalità di base, sia perché saranno eliminate le inconsistenze sintattiche ovvero modi differenti per fare le stesse cose.

Ad esempio per aggiungere un elemento abbiamo add per la listbox, ma append per un vettore: ora avremo solo add; per inserire un elemento, considerando che è una aggiunta, avremo addAt e così via; oppure Count (non rowCount e listCount).

Gli errori (quando qualche funzionalità restituisce un codice di errore) saranno tutte eccezioni (da gestire): questo lo abbiamo già con sqlLite che ha attualmente la possibilità di vedere l’errore sul framework classico e una eccezione su iOS.

Come detto Text sarà deprecato e si ritornerà ad utilizzare String come tipo per il testo con l’introduzione di metodi toString e fromString (come ora esistono i toText e fromText), con la localizzazione opzionale (vedremo come).

Nulla è stato detto riguardo memoryBlock (rimarranno i mutable e non mutable), se tornerà la necessità di definire l’encoding delle stringhe (con i problemi annessi in caso di concatenazione di stringhe con encoding diversi o non definiti) e l’identità tra string e memoryblock.

Come detto ci sarà un documento che spiegherà il tutto e nel tempo vedremo come utilizzare al meglio le API 2.0 per cui nel futuro vedremo quale strategia attuare.

IDE

Novità in arrivo anche per l’IDE, che tornerà ad avere la finestra del progetto (un po’ come nell’era pre Xojo) e altri miglioramenti nella gestione del progetto. Grazie all’unificazione del framework si tornerà ad avere una sola guida in linea del linguaggio.

XDC 2019

Il keynote si è concluso con la presentazione del prossimo keynote che si terrà a Miami dal 1 al 3 maggio 2019. Un posto decisamente più raggiungibile dall’europa. Chissà se la prossima descrizione del keynote non sarà in diretta live…