[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

[coco8] ScanApp and U8 - Italian.scc

0:00:00.000,0:00:05.960
Salve! Come va? Oggi vogliamo presentarvi

0:00:04.020,0:00:09.139
un nuovo strumento

0:00:05.960,0:00:12.450
veramente interessante disponibile in coco8:

0:00:09.139,0:00:14.309
ScanApp. ScanApp è

0:00:12.450,0:00:16.760
un semplicissimo applicativo disponibile in coco8

0:00:14.309,0:00:19.800
che Vi permette di accedere al visore del cellulare

0:00:16.760,0:00:21.840
per scannerizzare codici QR

0:00:19.800,00:00:24.960
ed utilizzarne il contenuto

0:00:21.840,0:00:26.130
per realizzare varie funzioni.

0:00:24.960,0:00:27.840
Per chiarire

0:00:26.130,0:00:31.220
presenterò alcuni esempi. Primo:

0:00:27.840,0:00:33.070
la scannerizzazione di un'immagine pre-definita

0:00:31.220,0:00:35.829
per questo esempio

0:00:33.070,0:00:37.670
attraverso la quale sarà possibile controllare

0:00:35.829,0:00:43.000
l'apertura di un message box

0:00:37.670,0:00:46.050
che si confermerà dicendo #testOK. Apriamo

0:00:43.000,0:00:47.780
ScanApp semplicemente puntando l'immagine;

0:00:46.050,0:00:50.410
il telefono apre immediatamente un message box

0:00:47.780,0:00:53.199
dicendo #testOK. Un secondo caso:

0:00:50.410,0:00:55.670
scannerizziamo un'altra immagine il cui contenuto

0:00:53.199,0:00:58.039
apre il browser del

0:00:55.670,0:01:01.500
sito U8.

0:00:58.039,0:01:03.760
Come si può capire,

0:01:01.500,0:01:06.240
ScanApp può essere utilizzato in

0:01:03.760,0:01:07.520
diverse circostanze, ma oggi voglio parlarVi

0:01:06.240,0:01:10.260
di quella che è, secondo me,

0:01:07.520,00:01:13.070
la possibilità più interessante

0:01:10.260,0:01:15.580
che ci permette di condividere la nostra

00:01:13.070,00:01:19.130
applicazione o frameworks tra

0:01:15.580,0:01:21.439
utenti di coco8 in modo agile e

0:01:19.130,0:01:23.820
moderno. Come esempio,

0:01:21.439,0:01:26.659
vi presento un'applicazione ultra-semplice

0:01:23.820,0:01:28.200
da utilizzare come demo.

0:01:26.659,0:01:30.229
E' un'applicazione che Vi chiederà

0:01:28.200,0:01:33.150
numeri interi, verificando se si tratta di

0:01:30.229,00:01:35.409
numeri primi o composti. Fino a questo momento, l'applicazione

0:01:33.150,0:01:36.670
non è installata sul mio cellulare. L'ho scritta

0:01:35.409,0:01:38.950
e scaricata sul sito di U8

00:01:36.670,0:01:41.340
come contributo. Il sito U8 provvede

0:01:38.950,0:01:44.399
l'eseguibile di QR; quindi, quando

0:01:41.340,0:01:46.470
l'utente scannerizza QR

0:01:44.399,0:01:47.310
con ScanApp, questo verrà

0:01:46.470,0:01:48.630
installato sul cellulare

0:01:47.310,0:01:52.079
ed eseguito.

0:01:48.630,0:01:52.740
Verificate: basta puntare ed è installato

0:01:52.079,0:01:57.030
ed immediatamente eseguito.

0:01:52.740,0:01:58.590
Ora possiamo provare; scriviamo qualsiasi

0:01:57.030,0:02:02.259
numero intero

0:01:58.590,0:02:03.640
ed immediatamente

0:02:02.259,0:02:05.530
l'applicazione risponde

0:02:03.640,0:02:07.350
se ho inserito un numero primo

0:02:05.530,0:02:11.140
o composto.

0:02:07.350,0:02:13.670
Osservate che, durante la fase di scansione, l'applicazione

0:02:11.140,0:02:16.680
è stata selezionata

00:02:13.670,0:02:22.040
nel sito U8; è stata scaricata

0:02:16.680,0:02:26.480
ed eseguita. Ora, l'applicazione

0:02:22.040,0:02:35.680
si trova sul mio cellulare

0:02:26.480,0:02:37.890
e reperibile mediante l'icona "Smalltalk run".

0:02:35.680,0:02:45.910
L'applicazione è stata scaricata ed installata

00:02:37.890,0:02:48.569
nel cellulare come componente di coco8.

0:02:45.910,0:02:50.769
Ciò è particolarmente interessante perchè trasforma

00:02:48.569,0:02:53.489
il sito U8 in una specie di magazzino di

0:02:50.769,0:02:55.680
tutte le contribuzioni dove possono essere caricate

0:02:53.489,0:02:57.500
le applicazioni o i frameworks e ogni

0:02:55.680,0:03:00.790
utente di coco8 può scaricarle

0:02:57.500,0:03:04.989
semplicemente puntando

0:03:00.790,0:03:11.920
il codice QR con ScanApp.

0:03:04.989,0:03:15.780
Come potete vedere, U8 fornisce l'applicativo QR

0:03:11.920,00:03:19.250
per ogni contribuzione. Ora, faremo una brevissima

0:03:15.780,0:03:21.450
presentazione di come scrivere

0:03:19.250,0:03:24.579
l'esempio dell'applicazione demo e come pubblicarla

0:03:21.450,0:03:26.660
come contribuzione.

0:03:24.579,0:03:27.820
In questo caso, l'applicazione

0:03:26.660,0:03:29.640
è molto semplice da scrivere.

0:03:27.820,0:03:34.060
Diamo un'occhiata

0:03:29.640,0:03:36.620
al codice.

0:03:34.060,0:03:39.349
La classe principale della nostra

0:03:36.620,0:03:42.209
applicazione è PrimeViewController.

0:03:39.349,0:03:43.760
una sotto classe di UIViewController.

0:03:42.209,0:03:47.020
Per chi non abbia familiarità

0:03:43.760,0:03:49.569
con la programmazione iOS, diciamo

00:03:47.020,0:03:52.330
che UIViewController è un

0:03:49.569,0:03:56.330
MVC controller che funziona anche

0:03:52.330,0:03:59.370
come ViewManager. Osserviamo due

0:03:56.330,0:04:03.209
o tre metodi interessanti di questa classe.

0:03:59.370,0:04:06.160
Il primo è #viewDidLoad. Questo metodo è chiamato

0:04:03.209,0:04:08.810
quando l'applicazione sta per essere caricata

0:04:06.160,0:04:11.160
quindi questo è un buon punto

0:04:08.810,0:04:14.290
per definire widgets e layout.

0:04:11.160,0:04:16.410
Possiamo vedere

0:04:14.290,0:04:18.620
la definizione della label

0:04:16.410,0:04:21.489
dove viene richiesto

0:04:18.620,0:04:24.540
un numero intero. Un campo di testo

0:04:21.489,0:04:26.979
dove inseriremo il numero intero.

0:04:24.540,0:04:28.970
Un'altra label per

0:04:26.979,0:04:31.410
mostrare il risultato del test di primalità.

0:04:28.970,0:04:33.680
In altre parole, dove sarà mostrato

0:04:31.410,0:04:40.050
il messaggio che specifica

0:04:33.680,0:04:41.550
se si tratta di un numero intero o composto.

0:04:40.050,0:04:44.870
In questo metodo vengono configurati tutti i widget utilizzati.

0:04:41.550,0:04:49.860
Vediamo il dettaglio più importante

0:04:44.870,00:04:51.280
della configurazione del campo di testo.

0:04:49.860,0:04:52.020
Qui, viene usata una importante proprietà

0:04:51.280,0:04:56.789
che è

0:04:52.020,0:04:59.030
il tipo di keyboard.

0:04:56.789,0:05:01.850
In questo caso, utilizzando il tipo 4

0:04:59.030,0:05:04.050
corrisponde a richiedere

0:05:01.850,0:05:06.630
un tipo numerico. Ciò significa

0:05:04.050,0:05:09.800
che ogni volta che l'utente tocca

0:05:06.630,0:05:12.530
questo tipo di campo,

0:05:09.800,0:05:15.510
verrà presentata una tastiera numerica

0:05:12.530,0:05:17.570
evitando così che

0:05:15.510,0:05:20.289
l'utente fornisca valori non numerici

0:05:17.570,0:05:24.039
evitando in tal modo di dover

0:05:20.289,0:05:25.750
gestire le eccezioni relative.

0:05:24.039,0:05:29.490
Un altro dettaglio importante

0:05:25.750,0:05:31.810
nella configurazione è che

0:05:29.490,0:05:36.960
siamo automaticamente collegati

0:05:31.810,0:05:40.250
all'evento #editingChanged per ogni azione #inputTextoChanged:

0:05:36.960,0:05:44.419
Questo caso vuol dire? Significa

0:05:40.250,0:05:45.820
che ogni volta che il valore cambia,

0:05:44.419,0:05:50.930
per l'inserimento di dati o cancellazioni

0:05:45.820,0:05:54.070
di ogni carattere o numero

0:05:50.930,0:05:54.970
verrà attivato il messaggio

0:05:54.070,0:06:02.330
#inputTextChanged:

0:05:54.970,0:06:07.220
Vediamo ora cosa vuol dire #inputTextChanged:

0:06:02.330,0:06:10.110
Come abbiamo detto, il metodo viene attivato ogni volta

00:06:07.220,0:06:13.510
che il contenuto del campo fornito viene modificato.

0:06:10.110,0:06:19.660
Qui, come potete vedere,

0:06:13.510,0:06:22.290
l'input è testato per la sua propietà primale.

0:06:19.660,0:06:25.920
Il dato fornito è convertito

0:06:22.290,0:06:29.530
in numero e quindi

0:06:25.920,0:06:31.800
il metodo #testPrimality: è richiamato

0:06:29.530,0:06:36.450
verificando se il numero è primo

0:06:31.800,0:06:39.330
permettendo di fornire l'indicazione

0:06:36.450,0:06:43.030
che mostra se il numero è primo

0:06:39.330,0:06:44.310
o composto. Qui ci sono un'altro paio

0:06:43.030,0:06:46.570
di righe che vale la pena di guardare.

0:06:44.310,0:06:50.900
Qui, ad esempio, aggiungo

0:06:46.570,0:06:53.480
il metodo #isPrime della classe Number, che ritorna true o false

0:06:50.900,0:06:53.920
in funzione del fatto che

0:06:53.480,0:06:56.450
il numero sia primo o no.

0:06:53.920,0:06:59.300
Qui possiamo vedere due metodi

0:06:56.450,0:07:00.180
che offrono alternative

0:06:59.300,0:07:04.270
nell'esecuzione dell'applicazione

0:07:00.180,0:07:07.680
una volta installata in coco8.

0:07:04.270,0:07:11.660
Le ultime righe

0:07:07.680,0:07:15.920
dicono a coco8 di eseguire l'applicazione

0:07:11.660,0:07:16.920
una volta caricata

0:07:15.920,0:07:22.420
dai contributori U8.

0:07:16.920,0:07:24.360
Ok, questo è tuto per quanto riguarda la codifica

0:07:22.420,00:07:28.170
Ora dobbiamo semplicemente eseguire

0:07:24.360,0:07:33.360
la compilazione del codice S8

0:07:28.170,0:07:35.979
in Javascript.

0:07:33.360,0:07:41.680
L'ultimo passo è

0:07:35.979,0:07:54.240
caricare la contribuzione al sito U8; vediamo come.

0:07:41.680,0:08:00.580
Dobbiamo esserci loggati al sito U8.

0:07:54.240,0:08:03.139
Andiamo a Start Coding e clicchiamo la croce,

0:08:00.580,0:08:07.270
il segno più (+), senza cliccare sul bottone

0:08:03.139,0:08:09.439
Start Coding

0:08:07.270,0:08:11.039
in modo tale che sia presentato un menu

0:08:09.439,0:08:13.279
con diverse opzioni per iniziare la contribuzione;

0:08:11.039,0:08:17.930
in questo caso

0:08:13.279,0:08:20.169
scegliamo iOSApp. Questa opzione

0:08:17.930,0:08:22.389
crea una contribuzione

0:08:20.169,0:08:25.770
generando un

0:08:22.389,0:08:26.710
templete per la nostra

0:08:25.770,0:08:32.329
contribuzione.

0:08:26.710,0:08:34.829
Clicchiamo su edit

0:08:32.329,0:08:37.870
per modificare il titolo

0:08:34.829,00:08:41.240
selezioniamo un'immagine

0:08:37.870,0:08:42.969
per rappresentare l'applicazione e carichiamo

0:08:41.240,0:08:47.529
i files della nostra contribuzione.

0:08:42.969,0:08:53.070
E' importante dire

0:08:47.529,0:08:56.269
che ScanApp non accetta

0:08:53.070,0:09:00.760
files di caricamento generici. Accetta solo

0:08:56.269,0:09:07.390
files con nomi tipo index.app.st

0:09:00.760,0:09:13.820
o index.app.js o

0:09:07.390,0:09:15.649
index.app.st.js; quindi,

0:09:13.820,0:09:21.079
dobbiamo caricare qualcosa con questo

0:09:15.649,0:09:25.260
tipo di nomi. Se carichiamo un file .st

0:09:21.079,0:09:32.329
(un file Smalltalk), questo verrà compilato come javascript

0:09:25.260,0:09:37.470
nell'applicazione. Se caricate un file .js

0:09:32.329,0:09:39.630
questo verrà accettato come codice compilato.

0:09:37.470,00:09:41.500
Per far sì che i nomi siano conformi alle regole

0:09:39.630,0:09:43.550
possiamo creare uno script

0:09:41.500,0:09:46.920
per generare l'output

0:09:43.550,0:09:50.140
con nomi conformi alle regole; oppure una volta

0:09:46.920,0:09:54.090
generati files di tipo js (come nel mio caso)

0:09:50.140,0:10:00.180
sono stati generati prime.st.js,

0:09:54.090,0:10:03.310
prime8.st.js e

0:10:00.180,0:10:08.600
io li ho rinominati in index.app.st.js

0:10:03.310,0:10:10.670
Per caricarli

0:10:08.600,0:10:14.590
come contribuzione per far sì

0:10:10.670,0:10:20.250
che ScanApp li trovi e li possa eseguire.

0:10:14.590,0:10:24.620
Qui vediamo che U8

0:10:20.250,0:10:27.510
ha generato l'immagine di QR

0:10:24.620,0:10:31.350
e quindi ora si tratta solo di

0:10:27.510,0:10:33.000
salvare la contribuzione, pubblicarla

0:10:31.350,0:10:35.780
e diffonderla.

0:10:33.000,0:10:39.110
Bene, per oggi è finita;

0:10:35.780,0:10:41.800
per ogni dubbio non esitate

00:10:39.110,0:10:50.400
a contattarmi attraverso la lista smaltalking

0:10:41.800,0:10:50.400
Grazie: ci vediamo!