Skip to content

Xojo2019r3

Nuova release dell’IDE che porta diverse novità principalmente per iOS ma anche per tutte le piattaforme.

Dopo un veloce ciclo in beta, arriva per tutti gli sviluppatori di questo ambiente una nuova release dell’IDE, la terza per il 2019.

Diverse novità riguardanti iOS, che avranno in seguito o già ora effetto anche nelle altre piattaforme.

iOS

Dopo l’uscita di iOS13, i cui la caratteristica principale è il DarkMode, era necessario implementare questa anche nelle applicazioni prodotte con Xojo. La soluzione è molto semplice, e presto sarà disponibile per tutte le piattaforme, e si basa sull’introduzione dei ColorGroup. Ora è possibile definire dei gruppi di colori: singoli, per nome (come quelli standard per tipologia su iOS, a coppie in base a essere in modalità Dark o meno) e automaticamente il colore esatto verrà utilizzato a runtime. Una soluzione semplice, realizzata con un editor visuale apposito (ma è anche possibile crearli via codice) che rende quasi triviale il loro utilizzo. Per assegnarli a livello di colore di UI, dove prima era possibile indicare un colore ora è ancora possibile farlo o è possibile scegliere uno dei colorGroup definiti.

Visto che questa caratteristica è presente solo a partire da iOS13 è stata introdotta anche la possibilità di verificare la versione corrente di sistema in modo da semplificare la scelta del codice di effettuare una operazione particolare.

Questa nuova funzione System.Version (per iOS è Xojo.System.Version) permette di confrontare la versione a runtime con una stringa espressa come “13” o “13.1” o “13.1.1”, la funzione stessa si occuperà di fare le verifiche interne in base alla stringa passata.

Altra novità importante riguarda iOSRectangle che permette ora di impostare il Vibrancy su parti dell’interfaccia in modo semplice.

Altre piccole novità per le altre piattaforme

Ora è possibile eseguire i report a partire dai RowSet (in pratica hanno implementato internamente la classe che avevo proposto qui).

Come per il tipo Text è possibile vedere direttamente in forma leggibile se una stringa è vuota utilizzando il metodo isEmpty (in pratica possiamo scrivere if miaStringa.isEmpty then… che è decisamente più leggibile e autodocumentato rispetto a confronto con una stringa vuota e inoltre rende più semplice il passaggio da codice scritto per il framework XOJO alle API2.0.

Infine una piccola ma importante novità per il metodo toString dell’oggetto Datetime.

Precedentemente se lo usavamo senza argomenti potevano ottenere la versione sqlDateTime della data.

Usando gli argomenti localeDesiderata (opzionalmente nil), e i formatStyle per giorno e ora potevamo avere diverse opzioni di formattazione. Ma queste erano decisamente limitate. Ora è possibile utilizzare diverse formattazioni localizzabili e comporre una stringa per ottenere il valore desiderato. Nella tabella che segue i valori utilizzabili (attualmente mancanti da guida al linguaggio).

La data mostrata negli esempi è il 9 febbraio 2019 alle 08:07:06 e 347038874 nanosecondi. Se il valore è differente tra mattino e sera tra parentesi la stessa data alle ore 10 della sera.

ParteCodiceEsempioItalianoTedesco
EraG (era della data)G
GGGG
GGGGG
d.C.
dopo Cristo
dC
n. Chr.
n. Chr.
n. Chr
Yearr (per date in liguaggi composti)r20192019
u (per date con anno esteso)u20192019
U o y o Y
(U per ciclico, y standard, Y con week)
U o y o Y
UU o yy o YY
2019
19
2019
19
Quarterq o Qq o Q
qq o QQ
qqq o QQQ
qqqq o QQQQ
1
01
T1
1° trimestre
1
01
Q1
1. Quartal
MonthM o LL
LL
LLL
LLLL
LLLLL
2
02
feb
febbraio
F
2
02
Feb
Februar
F
Weekw (settimana dell’anno)w
ww
6
06
6
06
W (settimana del mese)W
WW
1
01
1
01
Dayd (giorno del mese)d
dd
9
09
9
09
D (giorno dell’anno)D4040
F (giorno della settimana nel mese)F22
g (giorno giuliano modificato)g24585242458524
Weekdayc
(num/nome nella settimana locale)
c
ccc
cccc
ccccc
6
sab
sabato
S
6
Sa
Samstag
S
e
(num/nome nella settimana locale)
e
ee
eee
eeee
eeeee
6
06
sab
sabato
S
6
06
Sa.
Samstag
S
E (nome nella settimana)E
EEEE
EEEEE
sab
sabato
S
Sa.
Samstag
S
Perioda (standard)a
aaaaa
AM (PM)
m. (p.)
AM (PM)
m (p)
b
(con mezzogiorno e/o mezzanotte)
b
bbbbb
AM (PM, mezzogiorno)
m. (p., mezzogiorno)
AM (PM)
m (p)
B (completo)Bdi mattina (di sera, mezzogiorno, di notte)morgens (abends, mittags, nachts)
Hourh (1-12)h
hh
8 (10)
08 (10)
8 (10)
08 (10)
H (0-23)H
HH
8 (22, 0)
08 (22, 00)
8 (22, 0)
08 (22, 00)
k (1-24)k
kk
8 (22, 24)
08 (22, 24)
8 (22, 24)
08 (22, 24)
K (0-11)K
KK
8 (10, 0)
08 (10, 00)
8 (10, 0)
08 (10, 00)
Minutemm
mm
7
07
7
07
Secondss
ss
6
06
6
06
S (millisecondi)S
SS
SSS
3
34
345
3
34
345
A (millisecondi del giorno)A2922634529226345
ZoneOO
OOOO
GMT+1
GMT+01:00
GMT+1
GMT+01:00
vv
vvvv
CET
Ora dell’Europa centrale
MEZ
Mitteleuropäische Zeit
VV
VV
VVVV
VVVVV
itrom
Europe/Rome
Roma
Ora Italia
itrom
Europe/Rome
Rom
Italien Zeit
x o X (X ha Z con GMT0)x
xx
xxx
+01
+0100
+01:00
+01
+0100
+01:00
zz
zzzz
CET
Ora standard dell’Europa Centrale
MEZ
Mitteleuropäische Normalzeit
ZZ
ZZZZ
ZZZZZ
+0100
GMT+01:00
+01:00
+0100
GMT+01:00
+01:00

Quindi ora abbiamo abbastanza libertà nei formati da utilizzare per le nostre date.