Tema 2. Desarrollo móvil

Currículo: esta unidad desarrolla todos los saberes básicos del Bloque D – Desarrollo móvil correspondiente a 3ºESO. Además, se evalúan los criterios que puedes encontrar al final de esta página.

Tabla de contenidos

Nos disponemos a realizar nuestra última parada en el recorrido del desarrollo por bloques de aplicaciones móviles, que iniciamos en 1º de ESO y ampliamos en 2º de ESO

Habéis explorado los fundamentos de los IDEs de lenguajes de bloques para móviles y habéis comenzado a entender la complejidad de la programación orientada a eventos. 

Ahora, en 3º de ESO, iremos más allá de lo básico, hacia el dominio práctico y creativo de estas herramientas.

En este curso, el enfoque se centra en aplicar lo aprendido sobre eventos, sensores y la interacción de entrada/salida de manera más sofisticada. Utilizando Thunkable, un entorno que nos permite implementar nuestras ideas en aplicaciones funcionales, daremos vida a proyectos que reflejen nuestra comprensión avanzada del desarrollo móvil.

La programación móvil es más que código; es una forma de arte digital que nos permite transformar ideas en realidad, afectando la vida de las personas de maneras significativas. Desde aplicaciones que facilitan la comunicación hasta aquellas que nos entretienen o nos ayudan a organizarnos mejor, cada proyecto es un paso más hacia la comprensión de cómo la tecnología puede impactar en nuestro entorno.

Reflexionemos un instante sobre las posibilidades que se abren ante nosotros.

¿Se te ocurren ideas de aplicaciones que además de responder a toques o gestos, también anticipen nuestras necesidades?

Este año, os propongo que penséis en aplicaciones que no solo funcionen sino que también inspiren, eduquen o conecten a las personas de maneras novedosas.

A lo largo de este tema, veremos ejemplos del mundo real que destacan la importancia de una programación bien pensada y la diferencia que puede marcar una buena idea cuando se combina con las habilidades adecuadas. 

2.1. Uso de IDEs de lenguajes de bloques para móviles

El uso de un IDE de lenguaje de bloques para móviles, varía considerablemente en función de la herramienta elegida.

En los dos años anteriores adquirimos experiencia en el uso del IDE Thunkable, que aporta algunas novedades si lo comparamos con otros IDEs como MIT App Inventor o AppyBuilder.

Sin embargo, cuando practicas con una variedad de IDEs hay una serie de características que comparten todos, como por ejemplo:

  • Interfaz de usuario visual: todos ofrecen una interfaz gráfica de usuario (GUI) que permite la programación visual mediante el arrastre y soltado de bloques, lo cual hace que la codificación sea intuitiva y accesible.
  • Previsualización en tiempo real: permiten a los programadores ver cómo se comportará su aplicación en un dispositivo móvil directamente desde el IDE, facilitando el proceso de desarrollo.
  • Acceso a funciones del dispositivo: integración con características del hardware del dispositivo, como cámaras, GPS y sensores, permitiendo desarrollar aplicaciones ricas en funcionalidades.
  • Bibliotecas de bloques predefinidos: incluyen conjuntos de bloques para tareas comunes y estructuras de control, simplificando procesos complejos en el desarrollo de aplicaciones.
  • Ambiente de desarrollo integrado: además de la programación, ofrecen herramientas para probar, depurar y desplegar aplicaciones, proporcionando una solución todo-en-uno para desarrolladores.

Te animo a que refresques los conocimientos que adquirimos los dos años anteriores -repasa estos proyectos de 1º ESO y estos proyectos de 2º ESO– con nuestra herramienta de referencia para poder abordar los proyectos que veremos este año en el último apartado del tema. Así, podrás abordar los nuevos proyectos -que son más complejos- con garantías de éxito.

2.2. Programación orientada a eventos

En la programación orientada a eventos, tú, como usuario, tienes el poder de controlar lo que sucede en una aplicación, interactuando a través del teclado, el ratón, una pantalla táctil o tu propia voz. 

Este estilo de programación espera activamente tus acciones, como clics o toques, para ejecutar partes específicas del código. Cada acción que realizas, como cerrar una ventana o hacer doble clic en un texto, desencadena una respuesta predefinida en el programa.

A diferencia de otros estilos de programación donde el flujo es más lineal y predeterminado, la programación orientada a eventos se centra en la interacción con el usuario, lo que puede hacer que el desarrollo de aplicaciones sea más complejo debido a la variedad de respuestas que el programa debe estar preparado para manejar.

Sin embargo, este desafío se simplifica mediante el uso de entornos de desarrollo visual -como Thunkable-, que permiten a los programadores trabajar con elementos gráficos interactivos como botones y formularios, facilitando la creación de interfaces de usuario intuitivas.

Este enfoque permite desarrollar aplicaciones ricas y dinámicas en entornos gráficos, donde cada elemento en la pantalla, desde ventanas hasta botones, responde a las interacciones del usuario, creando una experiencia más inmersiva.

Ejemplos de la eficacia y accesibilidad de este enfoque hay muchos, pero en tu caso, ya conoces Scratch, Makecode o Tinkercad, entornos de programación diseñados específicamente para enseñar conceptos básicos de programación de manera lúdica y visual. Con esas herramientas, incluso quienes no tienen experiencia previa en programación pueden crear videojuegos, robots, circuitos o aplicaciones móviles, demostrando cómo la programación orientada a eventos puede hacer que el desarrollo de software sea accesible y entretenido para todos.

En el mundo actual, la mayoría de las aplicaciones que utilizan interfaces gráficas de usuario -GUI- se basan en la programación orientada a eventos, subrayando su importancia y prevalencia en el desarrollo de software moderno.

En los cursos anteriores, ya vimos muchos ejemplos de este paradigma de programación, pero este año añadiremos una capa más de complejidad.

2.3. Definición de eventos

Como ya sabrás, un evento es cualquier cosa que sucede en nuestra aplicación que queremos que desencadene una acción. Esto puede ser algo tan simple como un usuario tocando la pantalla, inclinando el dispositivo, o incluso recibiendo un mensaje.

Existen muchos tipos de eventos, pero los más comunes son estos.

En nuestro entorno de programación por bloques, definir un evento es tan sencillo como arrastrar y soltar el bloque correspondiente al tipo de evento que queremos manejar. Luego, conectamos ese bloque a otros que definan qué acción se debe realizar cuando sucede el evento.

Como es evidente, no todos los componentes tienen los mismos eventos. No tendría sentido definir el evento Enviar -propio de los botones que envían un formulario- para un componente como Pantalla, que lo único que hace es aparecer o cambiar a otra pantalla.

Por eso, es importante asegurarse de que tenemos seleccionado el componente correcto antes de definir los eventos que queremos asociarle.

Si tenemos una aplicación como esta:

Podemos ver que los componentes que incorpora son: un botón, un espacio en el que se muestra texto, una imagen, un vídeo, un campo de texto para escribir en él y un control para puntuar la aplicación.

Cuando queramos definir un evento, por ejemplo, para toda la pantalla, seleccionaremos el componente pantalla y veremos qué eventos están disponibles:

Para definir un evento que nos interese, simplemente, seleccionamos uno de los que está disponible, lo arrastramos a nuestro espacio de programación, seleccionamos para qué pantalla queremos que esté escuchando, seleccionamos el evento que queremos programar y por último introducimos la acción que queremos que desencadene:

Si ejecutas tu aplicación móvil, verás como ahora ya no aparece el texto “Etiqueta para mostrar texto”, sino “La pantalla se ha abierto” con el formato que hemos indicado en la respuesta del evento, porque el dispositivo ha detectado que la pantalla se ha abierto y ha ejecutado la respuesta:

De esta manera tan sencilla, conseguimos definir eventos que se dispararán y proporcionarán una respuesta cuando el usuario o el sistema los activen.

2.4. Generadores de eventos: los sensores

Los sensores son componentes electrónicos integrados en nuestros móviles que detectan cambios en el entorno o en el propio dispositivo. Pueden medir numerosas magnitudes como la orientación del teléfono, la altitud, la proximidad de objetos cercanos o nuestra localización geográfica. 

Cada vez que un sensor detecta un cambio, genera un «evento», que nuestro programa puede usar para realizar acciones específicas.

Por ejemplo:

  • Un acelerómetro puede detectar el movimiento del teléfono, y nosotros podemos programar nuestra aplicación para que, cuando el teléfono se sacuda, se realice una acción, como cambiar la imagen que se muestra en pantalla o reproducir un sonido.
  • La aplicación ajusta automáticamente el brillo de la pantalla según la luz ambiental detectada -por el sensor de luz-, mejorando la visibilidad y comodidad del usuario.
  • Una aplicación de turismo muestra información sobre monumentos o lugares de interés cercanos basándose en la ubicación actual del usuario -detectada por el sensor GPS-.
  • En un juego, el usuario puede inclinar el dispositivo para navegar por un laberinto o controlar un personaje, utilizando la orientación del dispositivo como entrada -proporcionada por el giroscopio-.
  • Una aplicación de música pausa automáticamente la reproducción cuando el usuario se aleja del dispositivo o lo coloca boca abajo sobre una superficie -aprovechando el sensor de proximidad-.
  • Una aplicación de senderismo registra los cambios de altitud durante una caminata, ofreciendo datos precisos sobre el ascenso y descenso a lo largo de la ruta -está usando el barómetro-.

Veamos cómo podríamos usar el sensor GPS para que nuestra aplicación nos localice. Esto que, a priori, puede parecer bastante complejo, en realidad es tremendamente sencillo.

Partimos de la aplicación que ya teníamos, pero vamos a retirar la mayoría de los componentes y vamos a añadir uno llamado Map:

Ahora, salimos de la vista de diseño, nos vamos a la vista de bloques y añadimos el sensor que nos interesa:

Ya solo quedaría ir a la lista de componentes añadidos a nuestra aplicación, pulsar sobre el componente Map1 -que habíamos añadido en la vista de diseño-, y seleccionar el evento que nos interese para programar la respuesta:

En este caso, le hemos dicho que cuando el Map1 esté disponible -se haya cargado en la pantalla-, lea nuestra posición desde el sensor GPS y coloque los valores de longitud y latitud en el mapa.

Si ahora pruebas la aplicación en un dispositivo móvil, ocurrirá esto:

Primero le pedirá permiso al usuario para acceder a su ubicación, y luego actualizará el mapa con su posición.

 La mecánica para programar el resto de sensores sería prácticamente idéntica.

2.5. E/S: captura de eventos y su respuesta

E/S se refiere a la interacción entre el usuario -o el entorno- y la aplicación

Las «entradas» pueden ser toques en la pantalla, inclinaciones del dispositivo, o incluso la ubicación GPS. 

Las «salidas» son las respuestas de la app, como mostrar un mensaje, reproducir un sonido o cambiar de pantalla.

En todos los IDE tendremos bloques específicos que podemos usar para «escuchar» cuándo ocurre un evento, como un botón que se presiona. Estos bloques activarán otros bloques que definimos para responder al evento.

Por ejemplo:

  • Juego de puzzles: cuando un jugador mueve piezas -entrada-, la app verifica si el puzle está resuelto -salida-.
  • App de clima: la app usa la ubicación del usuario -entrada- para mostrar el clima actual en su área geográfica -salida-.

Para «redondear» el concepto: la entrada es el activador del evento, y la salida es el resultado de la respuesta que devuelve el manejador de eventos.

2.6. Proyectos de desarrollo móvil

En esta sección avanzaremos en la complejidad de las aplicaciones que desarrolamos el año pasado en 2º ESO:


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *