Skip to content

Xojo 2018 r2

Nuova release di Xojo per il 2018 con diverse novità e bugfix.

È possibile scaricare la nuova release dal sito di Xojo e nel file scaricato si possono trovare tutti i dettagli sulle novità.

Come tradizione ecco la release di Xojo per il mese di agosto, così mentre si trascorrono in ferie è possibile provare le nuove funzionalità ed essere pronti ad utilizzarle nel momento in cui si rientra al lavoro.

Scopo principale di questa release è una ottimizzazione generale della visualizzazione su Windows ma non mancano interessanti e importanti novità anche per le altre piattaforme.

Windows

La grafica su windows è stata ulteriormente ottimizzata, e ci sono elementi per cui la prossima release risolverà ulteriormente i restanti problemi.

Con un po’ di attenzione è già ora possibile ottenere prodotti graficamente notevoli e con tempi di visualizzazione non problematici anche su sistemi relativamente con scarse risorse grafiche.

Inoltre sono stati risolti alcuni problemi come: la possibilità di stampare a risoluzioni maggiori di 96DPI, uso di Xojo.Net.HTTPSocket, codifica UTF per Xojo.IO.TextOutput/BinaryStream, utilizzo dell’OpenGLSurface; inoltre è stato aggiornato l’HTMLViewer.

iOS

Novità anche per questa piattaforma:

  • iOSTable
    Ora è disponibile il flag AllowRefresh per permettere tramite l’evento Refreshed di aggiornare i dati della tabella tramite trascinamento. Al termine dell’aggiornamento della sorgente dei dati basta richiamare il nuovo metodo EndRefresh per terminare l’animazione.
    Per quelli che utilizzano l’estensione iOSTableViewExtended, questa proprietà è disponibile anche in questa estensione con altro nome (allowRefresh), le due sono formalmente compatibili, magari da evitare di utilizzare entrambi i meccanismi contemporaneamente, quella implementata nell’estensione permette di evitare di richiamare EndRefresh al termine in quanto lo fa automaticamente e occorre richiamarlo solo nel caso di aggiornamento invocato da codice.
    Inoltre sono presenti animazioni nell’inserimento e nella cancellazione di righe.
  • iOSTableCell con altezza dinamica
    Finalmente è possibile utilizzare celle con altezza diversa all’interno della iOSTable e con altezza che possa variare in base la contenuto. A tal fine è presente un flag (UseDynamicHeight) che indica che l’altezza della cella è in base al contenuto. Chiaramente bisogna utilizzare un sistema di Autolayout che permetta al sistema di calcolare correttamente l’altezza necessaria.
  • Autolayout incompatibili
    Nella scorsa release è cambiato l’SDK per iOS di riferimento e la Apple in quello nuovo ha reso alcune combinazioni di valori per l’Autolayout non accettabili. Ora proponendo i valori Xojo evita di presentare queste combinazioni che portavano a crash delle app pur non presentando problemi visualmente.
  • Titolo nella navigation bar
    Ora è possibile indicare a livello di iOSView in che modo deve essere presentato il titolo, vale a dire se deve essere presentato grande. Questo tramite un menu che presenta le voci: Always, Automatic e Never; con l’ultima opzione di default per compatibilità con le versioni precedenti.
  • HTMLViewer
    Aggiornato questo controllo che ora si basa sulla corretta classe base. Questo permette una gestione migliore nei sistemi iOS attualmente in uso.

Special Folder

Un primo effetto della scelta di non voler utilizzare prossimamente il nuovo framework è la disponibilità per la versione classica di una delle funzionalità più utili della controparte nel nuovo framework: l’accesso diretto alle risorse dell’applicazione senza dover fare complicati calcoli in base alla piattaforma.

Sono quindi disponibili queste nuove funzioni:

  • Resources() as FolderItem
    Che permette di accedere alla cartella delle risorse dell’applicazione.
  • GetResource(fileName  as string) as FolderItem
    Che permette di accedere direttamente ad un file o ad una cartella all’interno delle risorse dell’applicazione.

Chiaramente abbiamo ancora la stessa funzionalità delle FolderItem classiche per cui se la folderItem richiesta non esiste non avremo una eccezione (come succede nel nuovoFramework per la stessa funzionalità) ma dovremo controllare la proprietà exists. Bisogna ricordarsi che le applicazioni dovrebbero essere firmate per cui non è consigliabile modificare il contenuto della cartella delle risorse a runtime.

 

Grafica

  • Oggetto graphics
    L’oggetto graphics ora accetta le coordinate come double. Questa nuova funzionalità permette di evitare gli arrotondamenti impliciti, che rendevano la grafica non stabile in quanto una piccola variazione in una coordinata poteva spostare elementi dell’immagine risultante, o espliciti, che rallentavano il calcolo ma garantivano la stabilità.
    Visto la compatibilità con schermi ad alta risoluzione e con fattori di ingrandimento non interi questo passaggio era in ogni caso necessario.
    Tutte le funzioni native sono compatibili con i parametri interi per cui dal punto di visto del codice preesistente non cambia nulla. Probabilmente, se utilizzati, andranno aggiornati i plugin che gestiscono la grafica: ma tutti i principali produttori hanno già rilasciato le versioni aggiornate.
  • AntiAliasMode
    Questa nuova proprietà permette di definire la qualità dell’interpolazione grafica di quanto disegnato.
    I valori ammessi (è una enumerazione) sono: DefaultQuality, LowQuality, HighQuality.
    Purtroppo l’autocompletamento non riconosce immediatamente questa enumerazione. Se si assegna il valore della proprietà come Graphics.AntiAliasModes.HighQuality l’autocompletamento funziona, ma poi bisogna inserire prima Global per fare in modo che il compilatore lo riconosca: Global.Graphics.AntiAliasModes.HighQuality, ma sicuramente questo problema sarà risolto con la release di bugfix.
  • PixmapShapes e StringShapes
    Ora vengono calcolati correttamente senza più il problema dell’offset.

Altro

Inoltre sono state introdotte funzionalità per il Profiling locale (StartProfiling e StopProfiling), nell’IDE il tab che fa riferimento all’applicazione in esecuzione è distinto dagli altri per la presenza di un’icona. SQLite è stato aggiornato alla versione 3.23.1 e il limite dei db di cui è possibile fare l’attach in contemporanea è stato incrementato a 30.

 

Per tutte le novità e bugfix si raccomanda di leggere le note di rilascio che sono presenti nel download.