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

[coco8] ScanApp and U8 - Spanish.scc

0:00:00.000,0:00:05.960
hola cómo están hoy les quiero mostrar

0:00:04.020,0:00:09.139
una nueva característica o capacidad que

0:00:05.960,0:00:12.450
agregamos en coco8 y que esta buenísima

0:00:09.139,0:00:14.309
se trata de ScanApp. ScannApp es una

0:00:12.450,0:00:16.760
aplicación sencilla incluida coco8

0:00:14.309,0:00:19.800
que nos permite accediendo a la cámara de

0:00:16.760,0:00:21.840
nuestro teléfono escanear códigos QR y

0:00:19.800,00:00:24.960
según el contenido que estos códigos QR

0:00:21.840,0:00:26.130
tengan, actuar en consecuencia.

0:00:24.960,0:00:27.840
Para que se entienda de qué estoy hablando

0:00:26.130,0:00:31.220
voy a mostrar un par de ejemplos. Primero

0:00:27.840,0:00:33.070
vamos a escanear una imagen preparada

0:00:31.220,0:00:35.829
especialmente para este test, cuyo

0:00:33.070,0:00:37.670
contenido va a determinar que se abra un

0:00:35.829,0:00:43.000
cartelito en nuestro teléfono que diga que

0:00:37.670,0:00:46.050
el test estuvo ok. Vamos a probar, abrimos

0:00:43.000,0:00:47.780
ScanApp apuntamos a la imagen y nuestro

0:00:46.050,0:00:50.410
teléfono inmediatamente abre el cartelito

0:00:47.780,0:00:53.199
que les comentaba. Como segundo ejemplo

0:00:50.410,0:00:55.670
vamos a escanear otra imagen cuyo contenido va

0:00:53.199,0:00:58.039
a determinar que nuestro teléfono vaya

0:00:55.670,0:01:01.500
al sitio web de U8,

0:00:58.039,0:01:03.760
aquí está. Bueno como se deben estar

0:01:01.500,0:01:06.240
imaginando ScanApp tiene múltiples

0:01:03.760,0:01:07.520
posibilidades de uso, pero hoy voy a hablar

0:01:06.240,0:01:10.260
de la que a mí me parece la más

0:01:07.520,00:01:13.070
interesante de todas que es la capacidad

0:01:10.260,0:01:15.580
que nos brinda de distribuir nuestras

00:01:13.070,00:01:19.130
aplicaciones o frameworks entre los usuarios

0:01:15.580,0:01:21.439
de coco8 de un modo simple ágil y

0:01:19.130,0:01:23.820
moderno. Como ejemplo de esto les voy a

0:01:21.439,0:01:26.659
mostrar una mini aplicación súper

0:01:23.820,0:01:28.200
simple que hice como demo. Se trata de

0:01:26.659,0:01:30.229
una aplicación que nos pide números

0:01:28.200,0:01:33.150
enteros y nos dice si son primos o

0:01:30.229,00:01:35.409
compuestos. Esta app no esta en este momento

0:01:33.150,0:01:36.670
instalada en mi telefono. La escribí, la

0:01:35.409,0:01:38.950
subí al sitio U8 como

00:01:36.670,0:01:41.340
contribución. U8 me provee de la

0:01:38.950,0:01:44.399
imagen con el código qr y bastará que

0:01:41.340,0:01:46.470
un usuario de coco8 escanee esta imagen

0:01:44.399,0:01:47.310
con ScanApp para que mi aplicacion se

0:01:46.470,0:01:48.630
instale en su teléfono y

0:01:47.310,0:01:52.079
automáticamente se ejecute.

0:01:48.630,0:01:52.740
Fíjense, apunto, se instaló y se

0:01:52.079,0:01:57.030
ejecutó.

0:01:52.740,0:01:58.590
Acá podemos probarla, escribimos algún

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

0:01:58.590,0:02:03.640
y a medida que vamos escribiendo la

0:02:02.259,0:02:05.530
aplicación me va diciendo si el

0:02:03.640,0:02:07.350
número que estoy escribiendo es primo o

0:02:05.530,0:02:11.140
compuesto.

0:02:07.350,0:02:13.670
Fíjese que al escanear la aplicación

0:02:11.140,0:02:16.680
se buscó entre las contribuciones

00:02:13.670,0:02:22.040
que estan en U8. Se bajó al teléfono

0:02:16.680,0:02:26.480
y se ejecutó. Ahora la aplicación ya está

0:02:22.040,0:02:35.680
en mi telefono y la puedo encontrar por

0:02:26.480,0:02:37.890
ejemplo entrando en Smalltalk, si, la

0:02:35.680,0:02:45.910
aplicación ya se bajo y quedó en mi

00:02:37.890,0:02:48.569
teléfono como parte de cococ8.

0:02:45.910,0:02:50.769
Esto es sumamente interesante pues transforma

00:02:48.569,0:02:53.489
a U8 en una especie de store

0:02:50.769,0:02:55.680
contribuciones que podemos subir

0:02:53.489,0:02:57.500
nuestras apps o frameworks y cualquiera

0:02:55.680,0:03:00.790
podrá bajarselas, cualquiera que tenga

0:02:57.500,0:03:04.989
coco8, simplemente apuntándole al

0:03:00.790,0:03:11.920
código qr con el ScanApp.

0:03:04.989,0:03:15.780
Como podemos ver U8 provee el código qr para cada

0:03:11.920,00:03:19.250
contribución. Ahora le voy a resumir un

0:03:15.780,0:03:21.450
paso a paso de cómo escribir una app como

0:03:19.250,0:03:24.579
ésta que hice de demo y publicarla

0:03:21.450,0:03:26.660
como contribución. En el caso de esta

0:03:24.579,0:03:27.820
aplicación se trata de algo muy simple

0:03:26.660,0:03:29.640
para programar.

0:03:27.820,0:03:34.060
Vamos a dar una mirada rápida al

0:03:29.640,0:03:36.620
código.

0:03:34.060,0:03:39.349
La clase principal de nuestra

0:03:36.620,0:03:42.209
aplicación es PrimeViewController

0:03:39.349,0:03:43.760
una subclase de UIViewController

0:03:42.209,0:03:47.020
para los que no estén familiarizados

0:03:43.760,0:03:49.569
con la programación iOS les cuento que

00:03:47.020,0:03:52.330
UIViewController es básicamente un

0:03:49.569,0:03:56.330
controller de MVC, que además funciona

0:03:52.330,0:03:59.370
como ViewManager. Tengo en esta clase 2

0:03:56.330,0:04:03.209
ó 3 métodos que vale la pena mostrarles.

0:03:59.370,0:04:06.160
primero es #viewDidLoad este método es invocado

0:04:03.209,0:04:08.810
cuando la vista está recién cargada

0:04:06.160,0:04:11.160
por lo que vamos a aprovechar aquí para

0:04:08.810,0:04:14.290
definir los widgets que tendrá y el layout

0:04:11.160,0:04:16.410
que tendrá. Podemos ver la

0:04:14.290,0:04:18.620
definición de un label que nos pedirá

0:04:16.410,0:04:21.489
que ingresemos un

0:04:18.620,0:04:24.540
numero entero, la definición de un text field

0:04:21.489,0:04:26.979
en donde ingresaremos el número entero y

0:04:24.540,0:04:28.970
la de otro label donde se

0:04:26.979,0:04:31.410
presentará resultado del test de

0:04:28.970,0:04:33.680
primalidad, es decir donde aparecerá el

0:04:31.410,0:04:40.050
cartel que dirá primo o compuesto, o

0:04:33.680,0:04:41.550
prime y composite.

0:04:40.050,0:04:44.870
En este método configuramos cada widget.

0:04:41.550,0:04:49.860
Veamos los detalles más importantes de

0:04:44.870,00:04:51.280
la configuración del text field.

0:04:49.860,0:04:52.020
Una property importante que seteamos

0:04:51.280,0:04:56.789
acá es

0:04:52.020,0:04:59.030
keyboard type, o sea tipo de teclado.

0:04:56.789,0:05:01.850
En este caso estamos seteando tipo 4

0:04:59.030,0:05:04.050
esto significa que esté campo nos va a

0:05:01.850,0:05:06.630
presentar un teclado numérico. Quiere

0:05:04.050,0:05:09.800
decir que cada vez que el usuario toque

0:05:06.630,0:05:12.530
este campo de texto, este text field el

0:05:09.800,0:05:15.510
teclado que aparecerá será solo numérico

0:05:12.530,0:05:17.570
evitandonos la posibilidad

0:05:15.510,0:05:20.289
que el usuario ingrese un texto que no

0:05:17.570,0:05:24.039
sean numérico y tengamos que manejar

0:05:20.289,0:05:25.750
las excepciones correspondientes.

0:05:24.039,0:05:29.490
Otro detalle importante en esta

0:05:25.750,0:05:31.810
configuración es que acá estamos

0:05:29.490,0:05:36.960
asociando al evento

0:05:31.810,0:05:40.250
#editingChanged la acción #inputTextoChanged.

0:05:36.960,0:05:44.419
¿Qué significa esto? significa que cada

0:05:40.250,0:05:45.820
vez que cambie el texto del campo, o sea

0:05:44.419,0:05:50.930
que el usuario ingrese o borre

0:05:45.820,0:05:54.070
algún carácter, algún numero, se

0:05:50.930,0:05:54.970
invocará al método

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

0:05:54.970,0:06:07.220
Veamos entonces el metodo #inputTextChanged,

0:06:02.330,0:06:10.110
este método, como dijimos, se invoca cada vez que se

00:06:07.220,0:06:13.510
modifica el contenido del text field

0:06:10.110,0:06:19.660
acá lo que hacemos entonces es, como ven,

0:06:13.510,0:06:22.290
testear la primalidad de lo que se ingresó.

0:06:19.660,0:06:25.920
Se convierte texto ingresado a

0:06:22.290,0:06:29.530
numeros y luego se invoca el método

0:06:25.920,0:06:31.800
#testPrimality: este método

0:06:29.530,0:06:36.450
le pregunta al number si es primo

0:06:31.800,0:06:39.330
y según la respuesta muestra en el label de

0:06:36.450,0:06:43.030
resultado la palabra prime o la

0:06:39.330,0:06:44.310
palabra composite. Acá hay algunas

0:06:43.030,0:06:46.570
líneas más que vale la pena mostrar

0:06:44.310,0:06:50.900
aquí por ejemplo agregue en la clase

0:06:46.570,0:06:53.480
Number el método #isPrime que responde true o false

0:06:50.900,0:06:53.920
según si el receptor es o no un número

0:06:53.480,0:06:56.450
primo.

0:06:53.920,0:06:59.300
Acá podemos ver estos dos otros dos

0:06:56.450,0:07:00.180
métodos que me proveen distintas formas de

0:06:59.300,0:07:04.270
ejecutar la app

0:07:00.180,0:07:07.680
una vez que está instalada de coco8 y

0:07:04.270,0:07:11.660
estas líneas del final son para

0:07:07.680,0:07:15.920
instruir a coco8 para que ejecute la app

0:07:11.660,0:07:16.920
una vez que es cargada desde la

0:07:15.920,0:07:22.420
contribución.

0:07:16.920,0:07:24.360
Bueno esto ha sido todo en cuanto al

0:07:22.420,00:07:28.170
código. Ahora lo que queda es

0:07:24.360,0:07:33.360
hacer el build para compilar nuestro código

0:07:28.170,0:07:35.979
a javascript

0:07:33.360,0:07:41.680
Nos queda ahora el último paso que es

0:07:35.979,0:07:54.240
el de subir la contribución a U8, veamos como.

0:07:41.680,0:08:00.580
entramos a U8 nos logueamos.

0:07:54.240,0:08:03.139
Vamos a Start Coding elegimos de la cruz, o sea

0:08:00.580,0:08:07.270
el signo +, ojo no elijan el botón

0:08:03.139,0:08:09.439
Start Coding sino el signo + de este

0:08:07.270,0:08:11.039
modo nos aparece un menu con distintas

0:08:09.439,0:08:13.279
opciones para iniciar una contribución

0:08:11.039,0:08:17.930
en nuestro caso

0:08:13.279,0:08:20.169
elegiremos iOSApp. Esta opción lo

0:08:17.930,0:08:22.389
que hace es crear una contribución como

0:08:20.169,0:08:25.770
fork de una que toma como plantilla

0:08:22.389,0:08:26.710
como template base para nuestra

0:08:25.770,0:08:32.329
contribución

0:08:26.710,0:08:34.829
acá hacemos clic en edit y entonces

0:08:32.329,0:08:37.870
podemos editar el título la

0:08:34.829,00:08:41.240
descripción, elegir una imagen que

0:08:37.870,0:08:42.969
represente a nuestra app y subir los

0:08:41.240,0:08:47.529
archivos que conforman nuestra

0:08:42.969,0:08:53.070
contribución. Es importante comentarles

0:08:47.529,0:08:56.269
que es ScanApp no va a tomar cualquier

0:08:53.070,0:09:00.760
archivo subamos aca sino que busca un

0:08:56.269,0:09:07.390
archivo que tenga el nombre 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, por lo que

0:09:13.820,0:09:21.079
debemos subir algo con alguno de esos

0:09:15.649,0:09:25.260
nombres. Si subimos un st o sea un archivo

0:09:21.079,0:09:32.329
Smalltalk se compilará a javascript

0:09:25.260,0:09:37.470
en nuestro dispositivo. Si subimos un js ya lo

0:09:32.329,0:09:39.630
tomará como código compilado.

0:09:37.470,00:09:41.500
Para que los nombres sean los correctos

0:09:39.630,0:09:43.550
podemos preparar los scripts que hacen el

0:09:41.500,0:09:46.920
build de forma que generen la salida con

0:09:43.550,0:09:50.140
esos a nombres, o bien una vez generado

0:09:46.920,0:09:54.090
el punto js, como en mi caso por ejemplo se

0:09:50.140,0:10:00.180
generó prime.st.js,

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

0:10:00.180,0:10:08.600
renombré index.app.st.js

0:10:03.310,0:10:10.670
para poder subirlo

0:10:08.600,0:10:14.590
como contribución de forma tal

0:10:10.670,0:10:20.250
que ScanApp lo encuentre y lo ejecute.

0:10:14.590,0:10:24.620
acá podemos ver que U8 nos

0:10:20.250,0:10:27.510
género la imagen con el código QR

0:10:24.620,0:10:31.350
así que todo listo es cuestión

0:10:27.510,0:10:33.000
de salvar la contribución, publicarla

0:10:31.350,0:10:35.780
difundirla

0:10:33.000,0:10:39.110
bueno esto ha sido todo por hoy

0:10:35.780,0:10:41.800
cualquier duda que tengan no duden

00:10:39.110,0:10:50.400
en consultar a través de la lista de smalltalking

0:10:41.800,0:10:50.400
muchas gracias y hasta la próxima.