viernes, 28 de agosto de 2015




Hasta ahora hemos hablado de los beneficios, facilidad, simplicidad de app inventor, pero tambien es justo hablar de los pro de ella.
App inventor no reemplaza la experienza de programar para los desarrolladores profesionales.
El riesgo es que este servicio puesto a disposición de todos, disminuye la calidad global de la oferta de las aplicaciones existentes para Android. En efecto, si se analiza la herramienta con un ojo de experto, es evidente que muchos no toman en consideración las especificidades de los terminales, lo que engendra problemas de resolución gráfica, colores, formatos poco adaptados, falta de ergonomía y de legibilidad.
Lo que es más, un programa de este tipo no aporta consejos de profesionales que son necesarios para lanzar una aplicación comercial óptima. Nada debe ser dejado al azar, la aplicación debe formar parte integrante de la estrategia de comunicación de la empresa. Democratizar herramientas, es bueno pero concebir y poner en ejecución una aplicación, es un "verdadero" oficio que requiere destreza técnica y una gran experiencia. 
A esto le podemos sumar el hecho que trabaje en la nube tambien es malo ya si no tenemos acceso a internet no podremos trabajar mas. para ver el bloque de la app tendriamos que entrar en el perfil del que la desarrollo.

En esta otra entrada quiero compartir con ustedes una pequeña reseña de app inventor como se puede aplicar en las instituciones de educacion en el area de Tecnologias de la informacion.
App Inventor es al mismo tiempo un lenguaje de programación, una herramienta de diseño y un entorno de desarrollo de aplicaciones para móviles y tablets que funcionen con el sistema operativo Android.  App Inventor permite también ejecutar las aplicaciones en un emulador, por lo que no es imprescindible disponer del teléfono para probar los programas que se hagan.
App Inventor fue desarrollado por Google, pero en Agosto de 20112 fue publicado como Software Libre bajo la licencia Apache 2.0 y su desarrollo se traspasó al Instituto Tecnológico de Massachusetts (MIT). El lenguaje de programación que se usa en App Inventor está claramente inspirado y toma muchos elementos de Scratch3 que está siendo desarrollado por el mismo MIT desde hace más de ocho años.
En la imagen siguiente se puede apreciar la herramienta de diseño en el navegador con la que se construye el interfaz gráfico de la aplicación:

¿Por qué App Inventor?

Casi todos los lenguajes de programación tienen una sintaxis que al principiante le suena a chino. Son una mezcla de inglés y extrañas reglas de sintaxis. Como ejemplo, el programa más pequeño que se puede hacer en Java es algo así:
class Hola
{
    public static void main(String [] args)
    {
        System.out.println("Hola mundo");
    }
}
Es evidente que al  aprender a programar la sintaxis provoca una curva de aprendizaje significativa. Aunque hay lenguajes más limpios en este sentido que Java, como Python, siempre requiere invertir mucha práctica y tiempo en aprender los comandos, sus reglas de escritura, sentido de los distintos signos de puntuación, etc. Todo este tiempo es tiempo no empleado en aprender a diseñar algoritmos para resolver problemas, tal y como pedía el primero de los objetivos de la asignatura de TIC.
Con App Inventor se aprende a programar usando bloques de programación. Estos bloques están hechos con elementos comunes a la mayoría de los lenguajes de programación existentes. Se colocan bloques para construir bucles, condiciones, variables, etc. que permiten pensar lógicamente y solucionar los problemas de forma metódica, sin perder el tiempo en encontrar el punto y coma o los dos puntos que están donde no deben y producen errores de compilación o ejecución.
Imagen 3: Diagrama de funcionamiento de App Inventor
Imagen de http://appinventor.mit.edu/explore/content/what-app-inventor.html bajo licencia Creative Commons Reconocimiento-CompartirIgual 3.0
Es de esperar que, al igual que hicieron con Scratch, en el futuro los bloques de App Inventor estén traducidos a otros idiomas. En la actualidad sólo están disponibles en inglés, lo que requiere un pequeño esfuerzo de traducción al estudiante para entender qué es lo que hace cada bloque. De todos modos, los bloques están clasificados mediante un criterio de colores que indica en parte su función o el componente al que hacen referencia.
Además de los elementos pedagógicos, App Inventor tiene algunas características que lo hacen especialmente adecuado:
  1. Es software libre, no es necesario la adquisición de licencias por parte del profesor y los alumnos
  2. Es multiplataforma: requiere sólo de un navegador  y la máquina virtual de Java instalada, con “java web start”.
  3. Es programación para dispositivos móviles. Los teléfonos y las tabletas están marcando hoy en día buena parte del futuro de la informática y es atractivo para los alumnos poder enseñar en sus propios teléfonos el fruto de su trabajo.

Elementos de programación en App Inventor

Veamos algunos de esos bloques de App Inventor:

Sentencias

Al programar necesitamos a menudo decirle al ordenador que haga algo. En App Inventor existen numerosos 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 siguiente 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.

Condiciones

Con frecuencia necesitamos realizar distintas acciones en función de que ocurra o no algo. En App Inventor para condicionar nuestro programa tenemos las estructuras if-then, if-then-else , while y choose:
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 su flujo.Las tres 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 el test.

Bucles

Un bucle provoca la ejecución repetida de varias sentencias. En App inventor disponemos de los bucles while, for range yforeach.
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 de programación 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. Finalmente, foreach es un iterador sobre los elementos de una lista.

Variables

Disponemos 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.
En el gráfico anterior se ve como se declara una variable llamada “total_alumnos” y se le da un valor numérico de 30. Además se ven dos bloques muy importante en App Inventor. Su lenguaje cuenta con una estructura de datos llamada list (lista) que es similar a los Arrays de otros lenguajes de programación. 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. En este ejemplo se le añade el texto que contienen los cuadros de texto “TextBox1” y “TextBox2”.

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 de App Inventor, para ejecutar acciones en respuesta a los eventos que se produzcan en el teléfono o el tablet.
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 hemos sido mencionados en esa red social, la cámara de fotos de cuando se ha hecho una foto y así sucesivamente.
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 que tienen los teléfonos y tablets Android. Tenemos acceso a Internet, Bluetooth, hacer llamadas, enviar y recibir mensajes, las coordenadas de posición GPS, etc.
También se puede apreciar como 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 distintos elementos que hayan sido colocados manualmente en el entorno de diseño: botones, brújula, etiquetas, cuadros de texto, etc.










jueves, 27 de agosto de 2015

App Inventor es una plataforma de Google Labs para crear aplicaciones de software para el sistema operativo Android. De forma visual y a partir de un conjunto de herramientas básicas, el usuario puede ir enlazando una serie de bloques para crear la aplicación como un puzzle. El sistema es gratuito y se puede descargar fácilmente de la web. Las aplicaciones fruto de App Inventor están limitadas por su simplicidad, aunque permiten cubrir un gran número de necesidades básicas en un dispositivo móvil.
Con  App Inventor, se espera un incremento importante en el número de aplicaciones para Android debido a dos grandes factores: la simplicidad de uso, que facilitará la aparición de un gran número de nuevas aplicaciones; y el Android Market, el centro de distribución de aplicaciones para Android donde cualquier usuario puede distribuir sus creaciones libremente.
Con este enlace podemos iniciar en el mundo android, debes iniciar por crear un cuenta gmail y si ya la tienes mucho mejor ya que por medio de esta empezamos trabajando con app inventor, este tambien cuenta con ejemplos desde cero y se trabaja desde la web.
Existen muchos tutoriales donde nos explican muy bien sobre las bondades de esta aplicacion.
Este video que voy a referenciar esta muy bien explicado de lo facil que puede ser hacer aplicaciones para android para los que no sabemos programar, como actualizar o instalar java, del editor de bloques para que sirve como en este decimos lo que queremos que haga cada componente, al igual el screen donde se puede hacer el diseño de nuestra aplicacion, al igual nos cuenta como trabajar con el emulador que nos facilita app inventor para poder ver como va funcionando la aplicacion ya que este funciona como un celular virtual. tambien el empaquetamiento de la aplicacion para asi poder descargarla ya sea en el celular o en el pc y nos muestra como hacer una aplicacion facil y rapido.
Espero y estoy seguro que van aprender mucho.