martes, 1 de abril de 2014

Aplicación de android sobre incendios

Como realizar aplicaciones para Android

- Explicación por parte del profesor de la importancia de las APP's en el momento actual. (50 minutos).
     * ¿Elegir para sistema operativo Android o para sistema iOS?
     * Aprovechar para destacar la importancia del software libre tipo Android, sobre sistemas propietarios.
     * Mostrando casos de éxito en Play Store.
     * Como ganar dinero con las APP's (esto suele motivar a los alumnos) (70% propietario de la APP, 30% Google).
     * Pasos a seguir para subir una aplicación a Play Store, y mostrar las estadísticas que muestra.

- Explicación de las diferencias entre "APP Inventor beta" y "APP Inventor 2 beta" por parte del profesor (como guía) y realización por parte de los alumnos de las comprobaciones oportunas. (50 minutos).
     * Entrar con la cuenta de Google en ambas versiones.
           + Necesario tener instalado el Java, en caso de no tener instalada de las últimas versiones hay que actualizar los equipos (aprovecha el profesor para explicar la importancia de mantener los programas actualizados).
      * Explicación del código QR (matriz de puntos / respuesta rápida).  Para pasar las aplicaciones del ordenador al móvil utilizamos este sistema, ya que es una forma de enseñarle a los alumnos a utilizar un sistema de transmisión de la información, que se esta expandiendo mucho.
      * Instalación del emulador para la versión beta.

Programación

- Para enseñarle a programar a los alumnos, se va a utilizar metodología Ágil (desarrollo iteractivo e incremental) partiendo de un problema complejo, aplicando la técnica de Divide y Vencerás. Explicación por parte del profesor de la importancia de: (50 minutos)
     * Pararse a pensar como resolver el problema antes de comenzar a programar, elección del entorno de desarrollo, compatibilidad, usabilidad, etc. 
     * Por que elegimos APPInventor, en vez de Eclipse, Java, ...

- Realizar la primera aplicación por parte de los alumnos, una práctica totalmente guiada.  En este caso el maullido de un gato: (50 minutos)
     * Información obtenida de:
     * Realizar variantes sobre esta primera aplicación desarrollada.
     * Incidir en la importancia de poner nombres significativos a las etiquetas.

Llegado este momento es necesario realizar una reflexión de por qué seguir desarrollando con APP Inventor (50 minutos) y que lo vean los alumnos (incidir en que todo lo que tiene ventajas también siempre tiene inconvenientes).

Conclusiones 

App Inventor es una framework creado inicialmente por el MIT (Instituto tecnológico de Massachusetts) y fue utilizado por Google para que cualquier persona con interés pudiese crearse su propia aplicación. Posteriormente Google daba por concluido su desarrollo y tras liberar el código, el MIT retomaba el desarrollo y mantenimiento de la aplicación.
El entorno de desarrollo de App Inventor es compatible con Mac OS X, GNU / Linux y sistemas operativos de Windows, y varios modelos de teléfonos Android populares. Las aplicaciones creadas con App Inventor se pueden instalar en cualquier teléfono Android.
Creación de apps
Para crear una aplicación con App Inventor hay que realizar dos pasos:
El diseño de la aplicación, en la que se seleccionan los componentes para su aplicación.
El editor de bloques, donde irás escogiendo los bloques que te sean necesarios según la aplicación que tengas pensada de hacer.
La aplicación aparece paso a paso en la pantalla del teléfono a medida que vamos añadiendo elementos, así podemos ir probando y cuando hemos acabado podemos empaquetarla y distribuirla.
Si no tenemos un teléfono con Android no tenemos que preocuparnos ya que podemos utilizar el emulador Android que incorpora.
El trabajo con Appinventor se realiza desde dos ventanas, el Diseñador y el Editor de Bloques.

Diseñador

Se organiza en cuatro paneles:
• Palette. En la paleta podrás seleccionar los componentes que incluirás en tu aplicación.
• Viewer. Simula la pantalla del móvil. En ella situarás los componentes arrastrándolos desde la paleta.
• Componentes y Media. Presenta la lista de componentes y medios incluidos en tu aplicación.
• Properties. Presenta la lista de propiedades y sus valores actuales para el componente seleccionado en Viewer.

El Editor de bloques

Con el Editor de bloques vamos a definir cómo se comportará la aplicación.
Estableceremos lo que los componentes deben hacer y cuándo hacerlo. Por ejemplo, que debe ocurrir cuando el usuario pulsa un botón.
El Editor de bloques se ejecuta en una ventana independiente. Al hacer clic en Abrir el editor de bloques de la ventana de diseño, el archivo del programa del Editor de bloques se descargará y a continuación se debe ejecutar.
El Editor de bloques tiene tres fichas en la esquina superior izquierda: Built-In (incorporados) y My Blocks (mis bloques). Los botones de debajo de cada ficha se amplían y se muestran los bloques cuando se hace clic. Los bloques Built-In son el conjunto estándar de bloques que están disponibles para cualquier aplicación que construyas. Los bloques My Blocks contienen bloques específicos que están vinculados al conjunto de componentes que has elegido para tu aplicación.
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.



Algunos de esos bloques son:
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 call, set 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.
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 ifthen, 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 y foreach.
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.
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 AppInventor, 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.
Como conclusión de elegir APP Inventor:
       + Es gratuita.
       + Necesita poco equipo informático.
       + No necesita espacio de almacenamiento, se trabaja en la nube (Internet).
       + La programación se realiza como con un puzzle (sencillo).
       + Necesita pocas horas de entrenamiento.
       + Es intuitiva.
__________________________________________________________________________________________________

La app "Monte sin fuego"

Se inicia con la explicación por parte del profesor del problema concreto que se quiere resolver, en este caso el desarrollo de una APP con utilidades asociadas a la temática de incendios forestales, y la división del trabajo en distintos grupos.  El reparto del trabajo se realiza por medio de sorteo. (50 minutos).
         

  Utilidades 

    La utilidad Aviso de Incendio, la van a realizar la totalidad de los alumnos, ya que está utilidad, requiere el aprendizaje de trabajar con las coordenadas GPS, asociar un botón a una llamada de teléfono, insertar imágenes en el formato adecuado, poner el botón ayuda, configuración del cierre de la pantalla al salir,... (Tiempo estimado alumnos 100 minutos [2 sesiones])
   
      La utilidad Coste de Extinción de un Incendio va a ser realizada por todos los alumnos, para que genere conciencia medioambiental en los alumnos, por la gran cantidad de recursos que se destina a la extinción y favorece el trabajo con las operaciones matemáticas disponibles en APPInventor, y las operaciones de entrada y salida en la Aplicación. (Tiempo estimado alumnos 4º ESO 100 minutos (2 sesiones) 1º BAC 75 minutos (1,5 sesiones)).

       La utilidad de medir la distancia entre dos puntos GPS va a ser realizada por la totalidad de alumnos de 4º ESO y algunos de 1º BAC.  El objetivo del desarrollo de esta utilidad es aprender a utilizar el GPS y ver nuevas utilidades para este dispositivo.  Y aprender a tomar distancias en las esferas. (Tiempo estimado 150 minutos (3 sesiones)).

El fin de la aplicación es poder ayudar en una situación de emergencia como el avistamiento de un incendio forestal (2 sesiones), en ese caso permite realizar la llamada de forma automática al 085 (teléfono específico para avisar de Incendios Forestales, en nuestra comunidad) o al 112, y nos aporta la ubicación GPS y una dirección aproximada de dónde estamos. Si se produce un accidente laboral (4 sesiones), nos indica el número de teléfono de emergencias al que llamar, y pautas a seguir con un quemado, o una persona intoxicada por humo.
Por otro lado determina el Riesgo de Incendio (4 sesiones), el mapa de Rayos en Galicia, y el mapa de Riesgo de Incendio en Galicia publicado por Medio Rural.
También nos aporta información, de cómo realizar una quema (4 sesiones) controlada de rastrojos, cálculo de la velocidad del incendio (4 sesiones), el del riesgo de incendio en función de las especies forestales (4 sesiones), como calcular el coste de extinción de un incendio (2 sesiones) (y ser consciente de los recursos que se están gastando en esa extinción).
Calcular el área y el perímetro a partir de un número de puntos elegido por  el usuario, y dichos puntos serán referencias GPS tomadas directamente del móvil o introducidas manualmente por el usuario. (6 sesiones) con ayuda directa del profesor.


Traducción de la aplicación al idioma gallego (4 sesiones). (3 sesiones 1º BAC) (1 sesión 4º ESO) ya que con este último curso tengo menos clases.
Realización de tareas de Beta Tester (1 sesión cada curso involucrado).

Enlace a la colección de agueiro con las webs de app de los alumnos de 4º ESO.
Enlace a la colección de agueiro con los recursos elaborados por la profesora de O Rosal, Esperanza Gesteira.
Pantallas de la aplicación rediseñadas:
Resultado final, enlace a la aplicación en google Play