Elementos de programación en App Inventor

App Inventor, trabaja con bloque que son similares a piezas «Lego» y su función son las siguientes:

Sentencias

Al programar necesitamos a menudo decirle al ordenador que haga algo. En App Inventor existen diferentes bloques que son sentencias de programación. Se distinguen rápidamente porque expresan una acción a realizar con un verbo en imperativo. Los más habituales son callset y def (abreviatura de define). Además, los bloques que son sentencias sólo están disponibles en dos colores: azul para modificar variables o propiedades de un objeto y naranja para llamar a funciones. En la imagen se ven algunos ejemplos de las sentencias para dividir un texto en partes, convertirlo a mayúsculas, cambiar la altura, texto o visibilidad de un recuadro de texto o definir una variable.

Sentencias en App Inventor

Condiciones

En ocasiones es necesarios realizar distintas acciones en función de que ocurra o no algo. En App Inventor para condicionar el programa tenemos las estructuras if-then, if-then-else , while y choose:

Condiciones en App Inventor

En todos estos bloques se puede ver como tenemos en la parte superior un espacio para encajar el test o pregunta que se hace el programa para decidir por donde continuar el flujo. Las primeras estructuras son habituales en la mayoría de los lenguajes, la última, choose, es prácticamente igual a if-then-else con la diferencia de que permite devolver una variable en función de que se cumpla o no la prueba.

Bucles

Un bucle provoca la ejecución repetida de varias sentencias. En App inventor disponemos de los bucles while, for range yforeach.

Bucles en En App inventor

El primero ejecutará el bloque de sentencias que se encajen en el apartado do mientras se cumpla la condición que refleje el test. for range es el típico bucle “for” de otros lenguajes y, como tal, tiene las opciones de elegir el nombre de la variable que itera, su comienzo, fin y el tamaño de los saltos de iteración. Además, foreach es un iterador sobre los elementos de una lista.

Variables

Se dispone de las herramientas para definir y cambiar variables. El tipo puede ser numérico o un texto y “se declara” al asignarle un valor por primera vez.

Variables en App inventor

En el gráfico se ve como se declara una variable llamada “total_alumnos” y se le da un valor numérico de 30. Además se ven un par de bloques muy importantes en App Inventor. Su lenguaje cuenta con una estructura de datos llamada list (lista) que es similar a los Arrays de otros lenguaje.

Se ve el bloque con el que se define la lista “alumnos” (se define vacía al no añadirle ningún item) y también se ve el bloque en el que se le añaden dos elementos a la lista alumnos.

Eventos

Es indispensable que los programas que sean capaces de responder a la interacción del usuario con el interfaz. Es ahí donde toman su importancia los bloques para ejecutar acciones en respuesta a los eventos que se produzcan en el teléfono o la tableta.

El nombre de los distintos eventos dependen del objeto que los provoca. Un botón avisa de cuando se ha hecho clic sobre él, mientras que el acelerómetro avisa de cuando se ha agitado el móvil, la mensajería de cuando se ha recibido un mensaje, el objeto de Twitter de cuando se ha sido mencionados en esa red social, la cámara de fotos de cuando se ha hecho una foto y así sucesivamente.

Eventos en App Inventor

En la imagen anterior se pueden ver algunos de estos eventos. De esta selección se aprecia que con App Inventor no sólo se dispone de objetos que se pueden colocar en la pantalla como un botón o imagen, sino también de otros muchos objetos que nos dan acceso a las funcionalidades de equipos con Android. Tenemos acceso a Internet, Bluetooth, llamadas, enviar y recibir mensajes, coordenadas de posición GPS, etc.

Todos los eventos tienen la estructura “When evento do”, y son de color verde. Tienen este color porque son parte de la sección “My blocks” en el entorno de desarrollo. “My blocks” es  donde se leen o manipulan las propiedades de los elementos que hayan sido colocados manualmente en el entorno de diseño: botones, brújula, etiquetas, cuadros de texto, etc.