Subido por adelangelc.ubc

App Inventor Introduccion

Anuncio
TALLER DE
APLICACIONES MÓVILES
CON MIT APP INVENTOR
Índice de contenidos
Empezando con MIT App Inventor 2 .............................................................................................. 1
Desarrollando aplicaciones y probándolas en vivo ................................................................... 2
Nuestra primera aplicación: DarthVader ...................................................................................... 3
Crear un proyecto ............................................................................................................................... 3
Diseño.................................................................................................................................................... 4
Propiedades de los componentes .................................................................................................... 4
Disposiciones ....................................................................................................................................... 6
Componente Botón............................................................................................................................. 6
Componente Sonido ........................................................................................................................... 8
Programación en MIT App Inventor ............................................................................................... 8
MIT AI2 Companion.............................................................................................................................. 9
Guardar el proyecto .......................................................................................................................... 10
Instalar la aplicación ......................................................................................................................... 11
Ejercicios ............................................................................................................................................... 12
Recursos multimedia de utilidad .................................................................................................. 12
Una app de dibujo: MyPaint .......................................................................................................... 13
Componente Lienzo .......................................................................................................................... 14
Ejercicios ............................................................................................................................................... 16
Lector de códigos de barras y QR: LectorQR ............................................................................. 17
Diseño de LectorQR .......................................................................................................................... 17
Bloques de LectorQR ........................................................................................................................ 17
Reconocimiento de voz y traducción: TraduVoz ..................................................................... 18
Bloques de TraduVoz ........................................................................................................................ 18
Conectividad a Internet y ubicación GPS: DondeEstoy ......................................................... 19
Diseño de DondeEstoy ..................................................................................................................... 19
Bloques de DondeEstoy ................................................................................................................... 19
Conclusiones ........................................................................................................................................ 20
Más información y referencias ...................................................................................................... 20
Empezando con MIT App Inventor 2
MIT App Inventor es una herramienta de desarrollo de aplicaciones móviles basada en
la nube lo que significa que puedes crear tus aplicaciones simplemente utilizando un
navegador web.
Para comenzar accede al sitio web oficial de MIT App Inventor y haz clic en el botón
"Create Apps!".
Imagen 1 - http://appinventor.mit.edu/explore/
Los proyectos que realices se almacenarán automáticamente en los servidores del MIT
y para garantizar el acceso a los mismos y la seguridad, MIT App Inventor utiliza un
sistema de autenticación de cuentas de usuario basado en Google por lo que es
imprescindible que dispongas de una y le concedas permiso para poder utilizarlo.
Imagen 2 - Autenticación de Google para acceder a MIT App Inventor
1
22
Desarrollando aplicaciones y probándolas en vivo
Cuando creamos nuestras apps con MIT App Inventor podemos ver en vivo los cambios
que vamos realizando en un dispositivo real o emulado. Para conseguir esto MIT App
Inventor necesita conectarse a una aplicación que se instala en el dispositivo móvil
denominada MIT AI2 Companion. Esta aplicación es gratuita y puede descargarse de
Google Play.
Imagen 3 - MIT AI2 Companion
El correcto funcionamiento de esta aplicación precisa que el ordenador donde
desarrollamos la app y el dispositivo móvil puedan comunicarse directamente por lo que
es altamente recomendable que ambos equipos compartan la misma red de
comunicaciones, ya sea mediante cable o de forma inalámbrica.
Si no disponemos de un dispositivo Android podemos utilizar el emulador oficial de App
Inventor o bien usar alguno comercial como pueda ser Genymotion o BlueStacks.
Para usar el emulador deberemos descargar e instalar el software específico para
nuestro sistema operativo en:
http://appinventor.mit.edu/explore/ai2/setup-emulator.html.
Imagen 4 - Emulador de dispositivo Android
2
22
Nuestra primera aplicación: DarthVader
Crearemos una primera aplicación que nos permitirá tomar confianza con la
herramienta y ver su funcionamiento.
Si lo deseamos podemos cambiar por completo el idioma de la plataforma, tanto en los
menús como en los nombres de los componentes, sus propiedades y respectivos
bloques. En adelante utilizaremos el idioma Español pero siéntete libre de seleccionar
el que desees.
Imagen 5 Selección de idioma
Crear un proyecto
Para comenzar cualquier proyecto haremos clic en la pantalla de "Mis Proyectos"
en "Comenzar un proyecto nuevo..." y escribiremos un nombre1.
Imagen 6 Creando un proyecto nuevo
En este proyecto vamos a introducir la programación dirigida por eventos, paradigma
del funcionamiento de MIT App Inventor, creando una sencilla aplicación que
responderá a la interacción del usuario frente a dos botones. El diseño de la misma
consistirá en la imagen del popular personaje de la película Star Wars junto con esos dos
botones. La interacción del usuario será clave para determinar si la app reproduce un
sonido o por el contrario termina.
1 Los nombres de los proyectos no deben contener símbolos, tildes ni espacios
3
22
Diseño
Para realizar el diseño tendremos que arrastrar desde la parte izquierda de la vista de
diseño(Paleta) a la parte central de la pantalla los siguientes componentes:
•
•
•
•
•
Imagen (interfaz de usuario)
Disposición horizontal(disposición)
Dos componentes tipo botón(interfaz de usuario)
Disposición vertical(disposición)
Sonido(medios)
Observa como el componente sonido aparece como no visible ya que realmente no
afecta a la apariencia de la aplicación sino que permitirá reproducir sonidos. En este
componente tendremos que "cargar" el fichero de audio a reproducir mediante la
ventana de medios o directamente subiéndolo en su propiedad Origen.
Análogamente, el componente imagen necesita que "subamos" el fichero a mostrar, en
este caso, la imagen del popular personaje de la saga.
Imagen 7 Vista de diseño de nuestra app
Propiedades de los componentes
En App Inventor, como te habrás dado cuenta, cada componente tiene una serie de
propiedades propias del tipo que podrán ser establecidas antes y/o durante la ejecución de
la aplicación. Si vamos seleccionando los distintos componentes en la ventana Componentes
en la parte derecha aparecerán las propiedades que podemos modificar.
4
22
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
PantallaAcercaDe: Son los créditos de
nuestra aplicación.
DispHorizontal, DispVertical: Alineación en
los ejes verticales y horizontales que tendrán
los elementos dentro de la pantalla.
AppName: Nombre de nuestra aplicación.
Por defecto, el nombre de nuestro proyecto.
ColorDeFondo: Color que mostrará la
pantalla en su fondo.
ImagenDeFondo: Imagen que podemos
cargar como fondo en lugar de un color
sólido.
AnimaciónAlAbrirPantalla,
AnimaciónCierreDePantalla: Efectos
visuales al abrir o cerrar la pantalla.
Icono: Imagen que presentará nuestra app en
el cajón de aplicaciones de nuestro
dispositivo Android.
Enrollable: Permite desplazar la pantalla en el
caso de que los componentes ocupen un área
mayor a la que cabe en pantalla.
ShowListsAsJson: Propiedad de la aplicación
para manejar las listas en formato JSON.
ShowStatusBar: Muestra/Oculta la barra de
estado de nuestro dispositivo(cobertura,
hora, batería, etc).
Sizing: Establece si nuestra aplicación
mostrará un aspecto fijo en píxeles(fixed) o
adaptado al tamaño de la pantalla que lo
visualice(responsive).
Título: Texto que aparecerá en la parte
superior de la ventana si está visible la
propiedad TitleVisible.
TitleVisible: Establece la visibilidad de la
barra de título.
TutorialURL: Dirección del tutorial de
realización de la app(requiere aprobación).
CódigoDeVersión,NombreDeVersión:
Cambios de importancia en la app precisarán
de un incremento del código de versión. El
nombre de la versión lo incrementaremos
generalmente para el arreglo de pequeños
fallos.
Imagen 8 Propiedades Screen1
5
22
Disposiciones
Por defecto, MIT App Inventor apila en la vista de diseño los componentes visuales que
agregamos. En general, podemos afirmar que las disposiciones son elementos
contenedores que permiten alinear otros componentes en pantalla; ya sea una
disposición horizontal que los alinea teniendo como referencia el eje del mismo nombre
o vertical, que los permitiría alinear conforme a la vertical de la pantalla del dispositivo.
Puede ocurrir también que entre dos componentes, como es el caso de nuestra
aplicación de ejemplo con los botones, queramos introducir un determinado espaciado
a modo de separación. Para este último caso, el uso de una disposición vertical u
horizontal "separadora"(realmente no contiene otros componentes) también puede
resultar de utilidad.
Imagen 9 Propiedades disposición horizontal
Observa cómo podemos establecer el tamaño de las disposiciones haciéndolas
partícipes del tamaño original de los elementos que contienen(automático),
configurando un ancho o alto fijo en píxeles o en porcentajes u ocupando todo el área
que nos permita el contenedor que la tenga.
Componente Botón
Uno de los componentes más utilizados en las aplicaciones móviles son los botones.
Podremos gestionar lo que ocurre cuando hagamos clic sobre él y otros cuantos eventos
interesantes en la vista de bloques. El aspecto visual lo definiremos en la vista de diseño
a través de sus propiedades.
6
22
•
•
•
•
•
•
•
•
•
•
•
•
•
•
ColorDeFondo: Color sólido del botón.
Habilitado: Por defecto el usuario puede
usarlo si está marcado.
Negrita: El texto del botón aparecerá
resaltado.
Cursiva: El texto del botón se mostrará en
cursiva.
Tamaño de la letra: Número que especifica el
tamaño en puntos de la fuente usada por el
botón.
TipoDeLetra: Fuente utilizada por el texto.
Alto, Ancho: Dimensiones del botón
especificadas mediante puntos fijos(píxeles)
o porcentajes.
Imagen: Nos permite personalizar un botón
con un icono o imagen.
Forma: Define el estilo del botón.
MostrarPulsación: Marcado distinguirá
entre pulsado y sin pulsar.
Texto: Mensaje que aparecerá escrito sobre
el botón.
PosiciónDelTexto: Alineación respecto al eje
horizontal.
ColorDelTexto: Color sólido de la fuente.
Visible: Marcado indica que se mostrará en
pantalla.
Imagen 10 Propiedades de un botón
7
22
Componente Sonido
Este componente multimedia nos permitirá reproducir ficheros de audio de corta
duración e incluso hacer que el dispositivo móvil vibre. Si el audio resulta ser una
melodía o canción tendremos que utilizar el componente Reproductor.
Los formatos de sonido soportados son los estándares que reproduzca el dispositivo
Android siendo WAV o MP3 los más utilizados. Para reproducirlos previamente
tendremos que cargar los ficheros a nuestra aplicación e indicarlo en su propiedad
Origen.
Imagen 11 Propiedades del componente sonido
Programación en MIT App Inventor
Una vez realizado el diseño de nuestra aplicación tendremos que gestionar lo que ocurre
con la misma. Para ello cambiaremos la interfaz de la plataforma a la pantalla de
bloques.
MIT App Inventor, como otros lenguajes de programación visuales, utiliza un sistema de
bloques o "fichas de puzle" que nos permiten programar lo que ocurre cuando
interactuamos con la aplicación.
Existen una serie de bloques clasificados por colores denominados integrados que
podremos utilizar en cualquier momento y un conjunto de bloques que dependerán de
los componentes que hayamos incluido en nuestra aplicación.
Controlar lo que ocurre en nuestra aplicación es una tarea bastante sencilla. Cada
componente introducido tiene una serie de eventos asociados que arrastrándolos al
área de principal de la pantalla nos permitirán conectar con otros bloques que definirán
el comportamiento de la app.
8
22
Para nuestra primera aplicación de ejemplo los bloques necesarios son los siguientes:
Imagen 12 Bloques de la app Darth Vader
La interpretación que podemos hacer de los mismos es la siguiente:
<< Cuando la pantalla principal se inicie estableceremos como origen el fichero de
audio DarthVaderefectoVoz.mp3 en el componente Sonido1.
En cualquier momento de la ejecución de nuestra app si el usuario hace clic sobre el
Botón1 se reproducirá el audio cargado en el componte Sonido1 y si hace clic sobre el
Botón2 se cerrará la aplicación. >>
Observa que:
• Inicializar es un evento de Screen1 y en general de cualquier "pantalla".
• Los eventos Clic son propios de los componentes tipo botón.
• Desde la vista de bloques podemos también establecer propiedades en tiempo
de ejecución que se podrían configurar en la vista diseño.
• Podemos hacer uso de los bloques integrados para tareas de control como
cerrar la aplicación o poner un campo de texto.
MIT AI2 Companion
Suponiendo que estamos desarrollando en la misma red en la cual está el dispositivo
móvil conectado mediante WIFI, podemos enlazar ambos utilizando MIT AI2
Companion. Para ello desde el menú de App Inventor generaremos un código QR que
podremos teclear o escanear. Este código será de un sólo uso y habilitará el "desarrollo
en vivo", esto es, que mientras estamos viendo la aplicación en el dispositivo real
cualquier cambio en MIT App Inventor se verá reflejado en el terminal.
9
22
Imagen 13 Generación de código QR para conexión con MIT AI2 Companion
Debemos tener en cuenta que el hecho de enlazar con Companion requiere la descarga de
todos los activos de nuestro proyecto al terminal con lo que deberemos ser pacientes si
incluimos ficheros de gran tamaño o el ancho de banda de la red es limitado.
Guardar el proyecto
MIT App Inventor almacenará nuestro proyecto de manera automática en la nube sin
que tengamos que preocuparnos de nada; sin embargo, puede ser conveniente por
diversos motivos disponer de una copia del mismo. Para conseguir esto, la plataforma
nos permite generar un fichero en formato AIA que más tarde podríamos volver a cargar
en la plataforma bien en nuestro perfil de usuario o en otro. Este fichero, que no es más
que un archivo ZIP con la extensión cambiada, contiene toda la estructura de nuestro
proyecto incluyendo los distintos ficheros que hayamos incorporado.
10
22
Imagen 14 Exportando el proyecto a formato AIA
Instalar la aplicación
Una vez concluido el proceso de creación de la app si deseamos instalarla de manera
permanente en un dispositivo tendremos que generar y descargarnos un fichero en
formato APK. Dicho formato es el estándar utilizado por cualquier aplicación Android
solo que en lugar de descargarlo del mercado oficial lo haremos desde los servidores del
MIT. Previo a este paso deberemos permitir a nuestro dispositivo la instalación de
aplicaciones desde orígenes desconocidos(no oficiales).
Imagen 15 Cambiando los ajustes de Android para la instalación de ficheros APK
11
22
Imagen 16 Generando el paquete de instalación APK
Ejercicios
1. Utilizando la opción de Guardar como... crea una nueva app a partir del proyecto
actual con una imagen diferente, botones con fondos personalizados y otro
fichero de sonido.
2. Usando la pantalla "Mis Proyectos" publica tu creación en Gallery y comparte su
enlace por redes sociales. El vínculo se obtiene pulsando en el botón SHARE una
vez rellenos los campos que describen tu aplicación.
Recursos multimedia de utilidad
Generadores de Botones:
• https://dabuttonfactory.com/
• http://buttonoptimizer.com/
Biblioteca de Sonidos:
• http://www.findsounds.com/
• https://www.freesound.org/
• http://soundbible.com/
• https://www.youtube.com/audiolibrary/
Bancos de Imágenes:
• https://search.creativecommons.org/
• https://pixabay.com/es/
• http://www.gratisography.com/
• http://www.morguefile.com/
• http://es.freeimages.com/
Iconos:
• https://www.iconfinder.com/
• http://www.iconarchive.com/
• http://findicons.com/
• http://www.flaticon.com/
Vídeos:
• http://www.lifeofvids.com/
• http://www.vidsplay.com/
• http://mazwai.com/
12
22
Una app de dibujo: MyPaint
Para crear una aplicación que permita dibujar en pantalla o mover determinadas
imágenes tenemos que utilizar en MIT App Inventor el componente Lienzo o también
denominado en su versión inglesa Canvas.
En esta práctica vamos a crear una aplicación que nos va a permitir:
• Dibujar en pantalla arrastrando el dedo.
• Cambiar el color de la línea utilizando botones.
• Guardar en el dispositivo un fichero con nuestra creación.
La vista de diseño tendrá el siguiente aspecto:
Imagen 17 Interfaz de MyPaint
Imagen 18 Componentes
13
22
Componente Lienzo
El componente Lienzo se utiliza siempre que queramos manejar gráficos en pantalla y
que estos representen una zona de dibujo para nuestra aplicación. Se diferencia en este
sentido del componente Imagen en que en el lienzo añadimos la interactividad con el
usuario posibilitando:
•
•
•
•
•
Dibujar puntos, líneas y círculos con distintos colores.
Mostrar otras imágenes que pueden animarse (sprites).
Presentar textos.
Establecer imágenes de fondo y modificarlas.
Guardar en un fichero el propio lienzo.
En nuestra aplicación el usuario deslizará su dedo por el lienzo trazando líneas. Para
conseguir esto haremos uso del evento Arrastrado teniendo en cuenta las coordenadas
de origen y destino en el desplazamiento del dedo.
Imagen 19 La gestión de Arrastrado nos permitirá dibujar las líneas sobre el lienzo
Considera lo siguiente:
•
•
•
•
Ajustar el lienzo para que ocupe el 75% de la altura de la pantalla del dispositivo.
Dimensionar los botones que muestran los colores a 30x30 píxeles
Configurar el tamaño de la letra de los botones Guardar, Borrar y Salir a 8 puntos.
Para cada uno de los botones de colores las propiedades serás las mismas
exceptuando ColorDeFondo.
14
22
Para poder mostrar mensajes en un cuadro de diálogo al usuario de la app tendremos
que añadir un componente no visible denominado Notificador.
Imagen 20 Vista de los bloques de la app MyPaint
Observa en sus bloques asociados que utilizando el notificador podremos, no solamente
presentar textos en una ventana emergente, sino también solicitar alguna información del
usuario. En nuestro caso el componente notificador nos permitirá pedirle al usuario el
nombre del fichero donde queremos que se almacene el dibujo que haya realizado.
15
22
Ejercicios
1. Estudia las diferencias entre los argumentos XInicial, YInicial, XPrevio, YPrevio y
XActual, YActual del evento arrastrado. Haz los cambios que necesites para
comprobar qué significa cada pareja de coordenadas en el uso del evento
Arrastrado.
2. Realiza los cambios oportunos para almacenar el dibujo en un fichero de nombre
"Dibujo.jpg" en el caso de que el usuario no escriba nada en la ventana del
notificador.
Pista: Usa el bloque integrado de Control Si ... entonces ... para comprobar si la
respuesta en el notificador no contenía ningún texto.
3. Imagina que deseamos conseguir una tonalidad de color rojo determinada.
¿Cómo la podemos poner sabiendo su código de color RGB en App Inventor? Haz
la prueba construyendo un color rojo personalizado.
4. Crea un par de botones que permitan aumentar o disminuir el ancho de la línea
de dibujo.
5. Incorpora un nuevo botón que utilizando el componente Cámara permita
tomar una foto con el dispositivo móvil y establecerla como fondo del lienzo.
16
22
Lector de códigos de barras y QR: LectorQR
Los códigos de barra y QR son especificaciones comunes de casi cualquier tipo de
envasado o producto de consumo donde se indican referencias al mismo. MIT App
Inventor incluye un componente denominado LectorCódigoDeBarras que utilizando la
cámara del dispositivo nos permitirá leer estos códigos. Aquí os presentamos un sencillo
ejemplo.
Diseño de LectorQR
Imagen 21 Vista de diseño de LectorQR
Bloques de LectorQR
Imagen 22 Vista de bloques de LectorQR
17
22
Reconocimiento de voz y traducción: TraduVoz
Otras de las grandes posibilidades de MIT App Inventor son los componentes TextoAVoz,
ReconocimientoDeVoz y TraductorYandex. Utilizando la síntesis de voz de Google podemos
crear una completa y funcional aplicación traductora en pocos minutos.
Diseño de TraduVoz
Imagen 23 Vista de diseño de la aplicación TraduVoz
Bloques de TraduVoz
Imagen 24 Vista de bloques de la app TraduVoz
18
22
Conectividad a Internet y ubicación GPS: DondeEstoy
En esta sencilla aplicación podemos comprobar el potencial de MIT App Inventor con
el uso del sensor de ubicación y la representación gráfica de mapas utilizando
Google.
Diseño de DondeEstoy
Imagen 25 Vista de Diseño de la aplicación DondeEstoy
Bloques de DondeEstoy
Imagen 26 Vista de bloques de la aplicación DondeEstoy
19
22
Conclusiones
MIT App Inventor ofrece un sinfín de posibilidades para el desarrollo del Pensamiento
Computacional en la creación de contenidos digitales para dispositivos móviles.
El usuario/a es capaz de desarrollar sus propias apps de manera rápida y sencilla con
una formación mínima motivando el aprendizaje de cualquier disciplina.
Por otro lado, el hecho de que existan componentes de todo tipo permite que nuestros
estudiantes puedan solventar problemas comunes haciendo uso de la tecnología y sin
las complicaciones típicas del aprendizaje de un lenguaje de programación convencional
y, lo mejor es, que el producto final ¡lo tienen en su bolsillo! pudiendo compartirlo en
Internet a través de la propia galería de aplicaciones de MIT App Inventor o publicándolo
en Google Play.
Más información y referencias
•
•
•
•
•
•
•
•
•
Tu App Inventor Android: https://www.tuappinvetorandroid.com/
Recursos de App Inventor: https://programamos.es/recursos/appinventor/
AppInventor.org: http://www.appinventor.org/
Pura Vida Apps: https://puravidaapps.com/
MIT App Inventor + IOT: http://iot.appinventor.mit.edu/
App Inventor for educators: http://teach.appinventor.mit.edu/
Foro MIT App Inventor:
https://groups.google.com/forum/#!forum/mitappinventortest
Foro español MIT App Inventor:
https://groups.google.com/forum/#!forum/app-inventor-en-espanol
App Inventor Plus: https://appinventorplus.wordpress.com/
20
22
Descargar