Академический Документы
Профессиональный Документы
Культура Документы
9
1E uM A
TG a
App Inventor
Es un entorno para desarrollar aplicaciones software para dispositivos Android. Fue
concebido por Google en 2011 aunque posteriormente fue abandonado, a partir de ese
momento fue desarrollado por el MIT http://appinventor.mit.edu/explore/
http://mitmobilelearning.org , an est en versin beta, no obstante cuenta con muchas
caractersticas funcionales.
Se basa en el desarrollo visual, a travs del editor por lo que no se requieren grandes
conocimientos de programacin, las aplicaciones se desarrollan mediante la
composicin de elementos y bloques.
Una vez creamos el proyecto se nos dirige a la pantalla del diseador Web de App
Inventor.
En la parte izquierda tenemos la Palette, donde estn todos los elementos que podemos
agregar a las pantallas de nuestra aplicacin, algunos elementos tienen representacin
grfica en la pantalla (por ejemplo los botones, imgenes, etiquetas de texto, etc.), otros
elementos en cambio no sern visibles, pero s que tendrn su efecto en la lgica de
negocio de la aplicacin.
Lego MindStorms
La seccin Components nos muestra una lista con todos los componentes que hay en la
aplicacin, en este momento el nico componente es la propia pantalla Secreen1, pero
en el futuro tendremos ms componentes, esta lista puede resultar muy til para
seleccionar componentes con precisin.
Para usar un dispositivo Android propio tenemos que descargar la app del App
Inventor 2, tenemos que instalar esta aplicacin en todos los dispositivos Android que
queramos utilizar para probar las aplicaciones que desarrollemos, podemos descargar la
aplicacin desde el Google Play:
https://play.google.com/store/apps/details?id=edu.mit.appinventor.aicompanion3&hl=es
Por ejemplo si arrastramos un Button desde la Palette hasta nuestra ventana veremos
como aparece en la pantalla del dispositivo mvil.
Esta opcin no suele ser muy recomendable, ya que el emulador es bastante lento, pero
en algunos casos puede ser la opcin ms cmoda. Para conectar un emulador tenemos
que descargar el instalador de la pgina de APP inventor
http://appinventor.mit.edu/explore/ai2/setup-emulator.html .
El proceso de instalacin del App Inventor Setup Installer es muy sencillo, se hace a
travs del asistente y apenas requiere unos minutos.
Una vez instalado nos aparecer un acceso directo en nuestra mquina para la aplicacin
aiStarter, (Si no aparece el acceso directo buscamos el programa en la ruta de
instalacin o el buscador de aplicaciones de Windows).
Para probar el emulador volvemos a la pgina web y pulsamos el botn Connect ->
Emulator.
Es muy importante asegurarse de que nuestro navegador Web y nuestra versin de Java
estn dentro de la lista de navegadores web compatibles con el App inventor.
http://appinventor.mit.edu/explore/ai2/setup
El proceso de inicializacin del Emulador puede llevar varios minutos (Sobre todo la
primera vez que se ejecuta).
En ocasiones el emulador del App inventor no funciona demasiado bien (es algo lento),
y tarda varios minutos en procesar las ordenes, una solucin si no se dispone de un
dispositivo fsico Android, es utilizar otro emulador, por ejemplo BlueStacks.
http://www.bluestacks.com/ este emulador trata de emular a un dispositivo real, y tiene
acceso al Google Play, por lo que podemos descargar la aplicacin MIT AI2
Companion como si se tratara de un dispositivo real. En este caso como el dispositivo
el emulador no tiene acceso a la cmara habr que introducir los cdigos manualmente.
Existen otros emuladores de gran calidad que pueden ser utilizados de igual forma, se
recomienda probarlos y utilizar el que ofrezca un mejor rendimiento:
GenyMotion https://shop.genymotion.com/index.php?controller=order-opc
YouWave for Windows http://youwave.com/
Jar of Beans
https://drive.google.com/folderview?id=0BxKzTODvot0bYnZ2VFBGejhFRDQ
&usp=sharing
Vamos a comenzar a utilizar el App Inventor para crear una aplicacin muy bsica que
genere un saludo personalizado.
Podemos mover los elementos por la pantalla para variar su posicin, solo tenemos que
arrastrarlos por la pantalla manteniendo el botn derecho del ratn pulsado.
Para modificar los nombres de los elementos tenemos que ir a la vista Components,
seleccionar el elemento en cuestin y pulsar el botn que aparece en la parte inferior
Rename.
TextBox CajaTextoNombre
Label1 TextoSaludo
Button1 BotonSaludar
.
Podemos movernos entre el editor y el diseador de bloques utilizando los botones
Designer y Blocks.
Consultar:
http://appinventor.mit.edu/explore/ai2/support/blocks/control.html
Consultar:
http://appinventor.mit.edu/explore/ai2/support/blocks/logic.html
Math: contiene bloques para trabajar con elementos numricos, estos elementos
consisten principalmente en elementos de comparacin y diferentes tipos de
funciones matemticas.
Consultar:
http://appinventor.mit.edu/explore/ai2/support/blocks/math.html
Text: contiene bloques para definir y manipular textos, permite definir una gran
cantidad de operaciones bsicas sobre cadenas de texto: unin, evaluacin
reemplazos, etc.
Lists: contiene bloques que permiten gestionar listas de elementos, crear listas,
manipularlas y realizar operaciones bsicas con ellas.
Consultar:
http://appinventor.mit.edu/explore/ai2/support/blocks/lists.html
Consultar:
http://appinventor.mit.edu/explore/ai2/support/blocks/colors.html .
Consultar:
http://appinventor.mit.edu/explore/ai2/support/blocks/variables.html
http://appinventor.mit.edu/explore/ai2/support/concepts/variables.html
Consultar:
http://appinventor.mit.edu/explore/ai2/support/blocks/procedures.html
http://appinventor.mit.edu/explore/ai2/support/concepts/procedures.html
if ( resultado == 10){
resultado = 15;
}
function procedimiento(){
var contador = 0;
Vamos a incluir una funcionalidad que se ejecutar cuando el usuario pulse el botn
BotonSaludar, para ello seleccionamos el botn en la lista de elementos de la parte
izquierda.
Hay que asegurarse de que la conexin con el dispositivo Android sigue activa. En
caso de que el telfono no se haya actualizado con la ltima versin de la aplicacin lo
ms recomendable es resetear la conexin y repetir el proceso de emparejamiento (AI
Companion o Emulator).
La segunda aplicacin que vamos a implementar va a solicitar al usuario que realice una
suma (con nmeros aleatorios), si el resultado introducido por el usuario es correcto lo
va a dirigir a una segunda ventana.
Modificamos los nombres de las Label y tambin su: contenido (Text), tamao de texto
(Font Size).
Nuevamente renombramos los dos elementos para que tengan nombres descriptivos:
En la pantalla correcto vamos a incluir un elemento Label que indique al usuario que
respondi correctamente a la pregunta, y un elemento Button que le permita generar
otra pregunta a la que debe responder.
Nuevamente renombramos los dos elementos para que tengan nombres descriptivos:
Una vez finalizada la definicin de las interfaces grficas queda definir la lgica de
negocio, lo haremos desde el editor de Bloques.
Vamos a asignar un valor numrico aleatorio a la etiqueta, para ello vamos a utilizar el
bloque random integer que podemos encontrar dentro de la categora Math.
Este bloque permite elegir cual es el rango a utilizar en la generacin de los nmeros
aleatorios, podemos establecer un rango de 1 a 10.
Cuando el usuario pulsa sobre el botn vamos a realizar una comprobacin, para ello
seleccionamos el bloque if then que est dentro de la categora Control.
En la categora control esta el bloque que nos permite abrir una nueva ventana, ese
bloque es el open another screen screenName (est en la parte final).
Este bloque requiere el nombre de la pantalla que queremos abrir, para ello tenemos que
incluir un literal textual con el nombre de la pantalla, es importante escribirlo
exactamente igual, o de lo contrario la pantalla no se abrir. Podemos introducir un
texto literal utilizando el primer bloque de la categora Text.
Con esto hemos finalizado la lgica de negocio de la pantalla Screen1, pero an falta
por incluir la lgica de negocio del botn que tenemos en la pantalla correcto, al
pulsar este botn queremos que la aplicacin vuelva a la pantalla Screen1.
El dispositivo tiene un sensor que detecta si hay un vehculo encima o no, y por lo tanto
puede saber si la plaza est ocupada o libre, un sistema de este tipo tendra varios
dispositivos embebidos distribuidos por toda la ciudad, cada uno monitorizara una
plaza de parking o varias en funcin del nmero de sensores que maneje el dispositivo.
Los dispositivo embebidos en un sistema de este tipo necesitan utilizar un sensor para
detectar los vehculos, por ejemplo un sensor de luz, de posicin, presencia o de
presin. En este ejemplo vamos a implementar el software de los dispositivos utilizando
el sensor de aceleracin/posicin del telfono, supondremos que hemos instalado un
pequeo sensor que detecta si el vehculo est sobre la plaza o no, en funcin de esa
medicin la aplicacin enviara la informacin al sistema centralizado (a travs de un
servicio Web), indicndole que la plaza est libre / ocupada.
Incluimos dos labels en la pantalla Screen 1 , utilizaremos estos labels como elementos
de ayuda para mostrar: 1) La medicin actual del sensor acelermetro, 2 ) si el valor
asignado a la medicin actual determina que la plaza est ocupada / libre.
Personalizamos las propiedades de los dos Labels, (Nombre del elemento, ancho y
tamao de texto).
A continuacin vamos a incluir el elemento que permite obtener las mediciones de los
sensores de aceleracin del dispositivo, buscamos el elemento AccelerometerSensor
(que se encuentra en la categora Sensors) y lo arrastramos a la pantalla.
Aunque el elemento no tenga representacin grfica puede ser utilizado para definir la
lgica de negocio de la aplicacin.
En todo momento vamos a colocar la medicin del sensor de aceleracin eje (X)
en la Label EtiquetaMedicinAcelerometro
Por ejemplo, para indicar que la plaza 1 est ocupada la llamada seria:
http://www.parking.mderg.com/actualizarplazag.php?i=1&o=0
http://www.parking.mderg.com/actualizarplazag.php?i=1&o=1
Ahora tenemos que definir la lgica de negocio que se va a ejecutar cuando se cumpla la
condicin xAccel < 5, esa lgica de negocio la incluiremos dentro del then
Para realizar la peticin al servicio Web tenemos que utilizar el elemento Web1 (que
habamos introducido previamente en la aplicacin).
Indica que la plaza es la i=34244, indica que la plaza est ocupada o=1.
En lugar de utilizar una nica cadena vamos a crear esta cadena de texto concatenando
varias cadenas, la URL principal y cada uno de los parmetros necesarios.
Finalmente incluimos el parmetro o con valor 0 para indicar que la plaza est ocupada,
utilizaremos un literal textual con valor &o=1
Ya tenemos la URL de la peticin Web pero para realizarla tenemos que incluir el
bloque CallWeb1.Get (ya que en este caso nos interesa realizar una peticin de tipo
Get).
http://www.parking.mderg.com/plazas.php
*Nota1 en caso de que el dispositivo utilizado para realizar las pruebas tenga problemas
para llegar detectar aceleraciones altas se recomienda bajar la condicin a xAccel < 0.
Abrimos el editor en modo Designer e incluimos un elemento de tipo Clock , que est
situado dentro de la categora Sensors.
Modificaremos la lgica de negocio para hacer que cada segundo (1000 milisegundos
Ciclo de Reloj) se genere un nmero aleatorio, que emulara la medicin del sensor.
Este bloque sirve para especificar que lgica de negocio queremos que se ejecute cada
vez que el reloj cumpla un ciclo, en este caso cada segundo.
Vamos a declarar una variable local , para hacerlo utilizamos el elemento initialize
local que hay dentro de la categora Variables.
Las aplicaciones de Android se distribuyen como ficheros .apk que se instalan en los
dispositivos mviles, para generar el fichero apk de una aplicacin hay que pulsar sobre
la opcin Connect y App (save .apk to my computer).
Tutoriales 1
http://beta.appinventor.mit.edu/learn/tutorials/
Tutoriales 2
http://appinventor.mit.edu/explore/ai2/tutorials
Documentacin
http://appinventor.mit.edu/explore/library