Skip to content

XDC 2019

Si sta svolgendo in questi giorni la XDC 2019, l’annuale conferenza degli sviluppatori Xojo, che la Xojo Inc. organizza direttamente. Ecco un riassunto delle principali novità esposte.

A Miami, Florida (USA), si sta svolgendo la XDC 2019 e lo staff della Xojo ha appena presentato le seguenti novità che disegnano un chiaro percorso per il prossimo futuro. Tutte le notizie sono raccolte da quanto riportato “ufficialmente” e da i vari partecipanti.

Dopo le consuete valutazioni sullo stato della diffusione dell’ambiente si è passati alle cose “importanti” dal punto di vista degli sviluppatori.

Android

Grossi passi avanti, ora l’IDE può gestire i progetti e generare applicazioni per ARM e x86 (questo per i simulatori) sia a 32bit (molto presente sul parco installato) che a 64bit. Può generare gli APK e firmare le applicazioni. Quindi è possibile distribuirle.

L’app per XDC generata per Android e disponibile sullo Store

Prima di generare facili entusiasmi, restano ancora cose importanti da completare come il Debugger e completare alcuni aspetti del Framework.

Lo sviluppo utilizzerà le API2.0 e per la prima versione sono previsti 25 controlli nativi, che coprono largamente le maggiori necessità, come Pulsanti, campi di testo, Tab, Canvas, Scelta della data, checkbox, label, progressbar, HTML, table e altri.

Tecnicamente comunicherà tramite Java con l’ambiente (JNI) quindi sarà sia codice Java che nativo. L’Autolayout verrà introdotto successivamente e anche per il semplice debug le applicazioni andranno firmate.

Quando sarà disponibile? Non si sa ancora. L’assenza del debugger allo stato attuale è un grosso limite. Ma quanto mostrato e descritto, nonché l’esperienza di quando fu introdotto iOS, fa sperare che sia iniziata la fase finale e quindi direi molto presto (opinione personale).

Web 2.0

Dopo 10 anni è ora di riscrivere il framework web perché nel frattempo è cambiato il mondo!

Il nuovo framework web migliora i controlli, riduce il traffico generato, sarà responsive; i controlli saranno generati tramite Boostrap e FuelUX, la pagina sarà gestita tramite jQuery.

Nel tempo verrà introdotto l’Autolayout, sarà possibile definire un tema (temi Boostrap) e modificare localmente gli stili.

L’uso di Boostrap e FuelUX permette di avere molti controlli, anche complessi, già pronti e con molte funzionalità aggiuntive (ad esempio Listbox con paginazione e campo di ricerca) o un miglior utilizzo del codice (ad esempio dividendo l’interfaccia utente per l’upload del file e la reale gestione dell’upload).

Ci sarà, ovviamente, un nuovo WebSDK e si avrà a disposizione le funzionalità client (jQuery, Bootstrap e FuelUX) e sarà possibile scrivere il codice custom in TypeScript.

Attualmente il nuovo Framework web è in Alpha interna, presto passerà alla fase successiva; i progetti verranno convertiti (su richiesta, quindi in modo esplicito) al nuovo formato e non sarà possibile (ovviamente) il processo inverso.

Non chiaro se sarà possibile ancora generare applicazioni CGI, il che sarebbe un problema per chi ha distribuito ai propri clienti applicazioni su domini semplici.

API 2.0

Nell’ultima release è stato introdotto URLConnection che è il primo esempio delle nuove API.

Queste permetto di mantenere sostanzialmente il vecchio codice, cosa difficile con l’ormai defunto nuovo Framework, e migliorare la coerenza del codice.
Tra le novità in arrivo prossimamente: toString con rispetto del locale (praticamente la versione per String di .toText che più o meno abbiamo implementato tutti); la coerenza degli indici (a base zero, per un certo periodo ho temuto nell’arrivo della base 1); la ripulitura e correzione di diversi nomi e funzionalità.

Ad esempio verrà introdotto Var (da utilizzare la posto di Dim) e al posto di Redim <vettore>(<nuova dimensione>) sarà possibile scrivere in modo più leggibile <vettore>.ResizeTo(<nuova dimensione>)

A titolo d’esempio:

  • Arriveranno le curve Bezier su tutte le piattaforme (finalmente!)
  • FolderItem su macOS utilizzerà le nuove funzionalità di questo sistema operativo
  • Date avrà le funzionalità di calcolo del corrispondente oggetto del Vecchio-Nuovo-Framework
  • Uso delle eccezioni al posto dei codici d’errore
  • Maggior uso delle enumerazioni (finalmente!)
  • I controlli avranno metodi più consistenti tra di loro

Novità anche per i database dove, come su iOS, sono gestiti tramite eccezioni e dove verranno introdotti DatabaseColumn (per DatabaseField), DatabaseRow (per DatabaseRecord), RowSet (per RecordSet)

Novità per la listbox dove avremo RowCount (per ListCount), SelectedIndex (per ListIndex), cellValueAt (per Cell, magari questo si poteva evitare), RemoveAllRows (per DeleteAllRows)

Verranno introdotte anche le funzionalità dei Timer che erano presenti nel Vecchio-Nuovo-Framework e molto altro ancora.

Quando sarà attivato il sistema delle API2.0 il vecchio codice continuerà a funzionare, non verranno più suggeriti i vecchi metodi dall’autocompletamento e la relativa documentazione sarà dismessa. Ma questo non vuol dire che bisognerà modificare il vecchio codice!

Xojo Cloud

Novità per Xojo Cloud, che diventa interamente a 64bit, avrà la possibilità di avere dei nomi per gli host (aprendo la possibilità di avere diversi host sullo stesso XojoCloud), non eseguirà più le applicazioni in CGI e ci sarà la possibilità di attivare un load balancer per ottimizzare l’accesso.

Interops

Con l’introduzione di Xojo per Android, questa modalità di accedere alle funzionalità interne del sistema avanza ulteriormente e vedrà presto la luce. In pratica si tratta di un modo per semplificare l’accesso utilizzando solo codice Xojo. Questo è un piccolo esempio di quello che sarà possibile fare:

//attuale definizione per l'accesso al db EventStore su iOS
Declare Function NSClassFromString Lib "Foundation" (className as CFString) as Ptr
Declare Function alloc Lib "Foundation" Selector "alloc" (classReference as Ptr) as Ptr
Declare Function init Lib "Foundation" Selector "init" (objectID as Ptr) as Ptr
Dim eventStore as Ptr
eventStore=init(alloc(NSClassFromString("EKEventStore")))
 
//Questo diventerà molto più semplicemente
dim eventStore as EKEventStore
If eventStore=nil Then eventStore=new EKEvenStore

Per le applicazioni Android saranno direttamente utilizzabili, per gli altri target verranno introdotte nel tempo.

Aggiornamenti dell’IDE

L’IDE si arricchirà di una vista del progetto, i vecchi sviluppatori pre-Xojo sanno di cosa si sta parlando, che permetterà di avere una vista completa e globale del progetto e non limitata al navigatore.

Conclusioni

Decisamente sono state annunciate novità importanti, ma, ancor di più sono tutte in uno stadio molto avanzato di realizzazione per cui presto si passerà dagli annunci alle release.

Motivo in più per partecipare a fine ottobre alla conferenza europea che si terrà a Colonia. Vi aspetto numerosi.

2 Commenti

  1. Gabriele Gabriele

    Ho provato a scaricare l’app di esempio per XDC ma chiede user e password. Ero curioso…

    • XojoIt XojoIt

      Probabilmente perché questa app è per gli iscritti alla XDC…

I commenti sono chiusi.