My app inventor

1. Introducción
En este proyecto he desarrollado una aplicación en MIT App Inventor que combina dos funcionalidades principales:
- Un gestor de tareas (To-Do List)
- Un temporizador (Timer)
El objetivo de la app es mejorar la productividad del usuario permitiéndole organizar tareas mientras controla el tiempo.
2. Diseño de la interfaz (Designer)
Primero diseñé la interfaz en el apartado Designer.
Estructura general:
- Un contenedor principal (Vertical Arrangement)
- Parte superior:
- Etiqueta con el tiempo restante (
Timeleft) - Botón “+” para añadir tareas
- Etiqueta con el tiempo restante (
- Parte central:
- Espacio donde se muestran las tareas
- Parte inferior:
- Botones para cambiar entre:
- TO-DO
- TIMER
Para organizar todo utilicé:
Horizontal ArrangementVertical ArrangementLabelsButtons
Para que las tareas no se pierdan al cerrar la app, utilicé TinyDB: Es un componente que guarda datos de forma permanente, incluso si se cierra la aplicación
- Creé una lista global →
global listaTareas - Cuando se añade/modifica algo:
- Uso
TinyDB.StoreValue
- Uso
- Cuando se abre la app:
- Uso
TinyDB.GetValue
- Uso
3. Inicialización (Screen.Initialize)
Cuando se inicia la app:
- Cargo las tareas guardadas desde TinyDB
- Si no hay datos, creo una lista vacía
- Muestro las tareas en pantalla
- Inicializo el temporizador (ej: 45:00)
4. Añadir tareas (Botón +)
Cuando el usuario pulsa el botón “+”:
Bloques utilizados:
ButtonAdd.ClickNotifier.ShowTextDialog
Funcionamiento:
- Se abre un cuadro de texto
- El usuario escribe la tarea
- Se añade a la lista
- Se guarda en TinyDB
- Se actualiza la interfaz
5. Mostrar tareas
Para mostrar las tareas:
Uso:
- Bucles (
for each item) - Listas
Qué hago: - Recorro la lista de tareas
- Creo elementos visuales dinámicamente
- Los muestro en el contenedor
6. Editar tareas
Cada tarea tiene un botón de editar.
- Detecto qué tarea se ha pulsado
- Abro un diálogo con el texto actual
- El usuario lo modifica
- Sustituyo el valor en la lista
- Guardo en TinyDB
7. Eliminar tareas
Cada tarea también tiene botón de borrar.
- Obtengo el índice de la tarea
- La elimino de la lista
- Actualizo TinyDB
- Refresco la pantalla
8. Temporizador (Clock)
Para el temporizador uso el componente Clock.
Bloques clave:
Clock.Timer- Variables de tiempo
9. Formato del tiempo
- Divido segundos entre 60 → minutos
- Uso módulo → segundos
- Uno los valores en texto
10. Cambio de pantalla (TO-DO / TIMER)
No uso pantallas diferentes, sino pantallas virtuales.
- Uso
set Visible true/false
Ejemplo: - Mostrar TO-DO → ocultar TIMER
- Mostrar TIMER → ocultar TO-DO
11. Notificaciones y sonido
Cuando el tiempo llega a 0:
NotifierSound
Qué ocurre:- Suena una alerta
- Se muestra mensaje