- Aprenderás a almacenar datos en un dispositivo móvil para acceder a ellos desde una aplicación móvil
- Conocerás sobre las diferentes opciones de almacenamiento y acceso a los datos en la nube para compartir datos entre los usuarios de la aplicación.
Estas son las actividades para esta lección:
ALMACENAMIENTO DE DATOS A LARGO PLAZO
En la última unidad, aprendiste a utilizar variables y listas para almacenar información en tu aplicación.
Cuando se cierra la aplicación, se borran todas las variables almacenadas en su memoria.
Sin embargo, hay ocasiones en las que es posible que quieras guardar información entre una ejecución y otra de la aplicación. Hay dos tipos de almacenamiento a largo plazo:
Almacenamiento local
Almacena información en el dispositivo móvil para recuperarla cada vez que se ejecute la aplicación.
Por ejemplo, una dirección de usuario o la puntuación más alta de un juego.
Almacenamiento en la nube
Almacena la información en la web (nube) para que todos los usuarios de la aplicación puedan acceder a ella.
Por ejemplo, la clasificación del juego o los mensajes de chat.
ALMACENAMIENTO LOCAL
Una vez que el usuario cierra una aplicación, los valores de todas las variables se borran de la memoria del dispositivo.
Si deseas almacenar datos para la aplicación entre ejecuciones, utilizarás la base de datos TinyDB
TinyDB puede utilizarse para almacenar la información personal de un usuario que no es necesaria compartir.
Por ejemplo, el usuario quiere introducir su nombre, edad y dirección una vez, no cada vez que utiliza la aplicación. Otro ejemplo es el seguimiento de hábitos saludables a lo largo del tiempo.
TinyDB son las siglas de Tiny Database (Base de Datos diminuta). Una base de datos es una colección organizada de datos. Tú, como programador, decides cómo se organiza.
TinyDB se encuentra en el cajón de almacenamiento del Diseñador.
TinyDB es un componente no visible, por lo que no lo verás aparecer en pantalla cuando lo añadas a tu proyecto.
Para acceder a los datos en TinyDB se asigna a cada elemento de datos una etiquetaigual que a las variables. Tu almacenas y obtienes el valor de la etiqueta así como tu estableces y obtienes el valor de las variables. Esto se conoce como par etiqueta-valor.
TinyDB.StoreValue almacena el nuevo valor en TinyDB. Debes especificar la etiqueta y el valor a almacenar.
TinyDB.GetValue obtiene el valor actual.
valueIfTagNotThere es necesario en caso de que no se haya almacenado nada previamente con esa etiqueta.
ALMACENAMIENTO EN LA NUBE
Almacenamiento en la nube permite a cualquier usuario de la aplicación acceder a los datos y compartirlos.
App Inventor tiene tres opciones viables de almacenamiento en la nube.
CloudDB es un componente y servicio de base de datos proporcionado por MIT App Inventor.
CloudDB funciona igual que TinyDB. Los datos se almacenan y se accede a ellos mediante pares de etiqueta-valor.
Se accede a CloudDB desde el cajón de almacenamiento. Es un componente no visible, por lo que no aparecerá en la pantalla cuando lo añadas.
El almacenamiento de datos funciona igual que en TinyDB.
StoreValue almacena el nuevo valor en CloudDB. Debes especificar la etiqueta y el valor a almacenar.
Puedes almacenar diferentes tipos de datos. Por ejemplo, en estos bloques, highScore es un número. chat es una lista de mensajes.
La obtención de datos funciona de forma similar a TinyDB, pero con un paso adicional. Como la base de datos está en la nube, la aplicación tiene que pedir el valor y esperar la respuesta. Así que se necesita un bloque de control de eventos para señalar cuando la base de datos responde con los datos.
GetValue notifica a la base de datos que la aplicación desea obtener información. valueIfTagNotThere debe ser el tipo de datos correcto para la etiqueta. Por ejemplo, un número o una lista.
GotValue se activa una vez que la base de datos responde con la información. Si tienes varias etiquetas en una aplicación, necesitas un bloque if para comprobar la etiqueta correcta antes de utilizar el valor.La obtención de datos funciona de forma similar a TinyDB, pero con un paso adicional. Como la base de datos está en la nube, la aplicación tiene que pedir el valor y esperar la respuesta. Así que se necesita un bloque de control de eventos para señalar cuando la base de datos responde con los datos.
GetValue notifica a la base de datos que la aplicación desea obtener información. valueIfTagNotThere debe ser el tipo de datos correcto para la etiqueta. Por ejemplo, un número o una lista.
GotValue se activa una vez que la base de datos responde con la información. Si tienes varias etiquetas en una aplicación, necesitas un bloque if para comprobar la etiqueta correcta antes de usar el valor.
El componente de Hoja de cálculo te permite leer y escribir desde una hoja de cálculo de Google. Tendrás que configurar una cuenta de desarrollador de Google y seguir algunos pasos para vincular tu aplicación al documento.
El componente de hoja de cálculo está disponible en el cajón de almacenamiento. Es un componente no visible, por lo que no aparecerá en la pantalla cuando lo añadas a tu aplicación.
Hay muchos bloques disponibles para permitir que la app lea y escriba celdas, filas y columnas en tu hoja de cálculo. Es una buena opción si tienes datos de tablas a los que quieres acceder desde tu app. También puedes ver y editar los datos en Google Sheets, lo cual es útil, especialmente cuando pruebas tu app.
Consejo de los mentores
Buenas prácticas: Guarda siempre una copia de seguridad de tus datos en algún lugar. Es muy fácil borrar o cambiar accidentalmente tus datos, así que asegúrate de guardar una copia extra en algún lugar seguro.
En App Inventor se aprende el término par Etiqueta-Valor, que se utiliza mucho en la vida real en programación, aunque nosotros lo llamamos par Clave-Valor. Ahora ya conoces los términos que utilizan los expertos.
Preguntas orientativas para estudiantes: ¿Dónde crees que se almacenan los datos en la nube? Los subes a un sitio web como google, youtube, tiktok, etc., pero ¿dónde se almacenan después? ¿Dónde está la nube? Empresas como Google tienen edificios ENORMES con ordenadores sólo para almacenar cosas en la nube. Así que el chiste es: "No está almacenado en la nube, sólo en el ordenador de otra persona". El almacenamiento de datos de Amazon:
Los consejos de los mentores se proporcionan gracias al apoyo de AmeriCorps.
ACTIVIDAD: ALMACENA PUNTUACIONES DE JUEGOS
Actualiza el juego del cuestionario rápido para almacenar las mejores puntuaciones
- Abra el proyecto de inicio en la Galería App Inventor .
El enlace en video es incorrecto. El enlace del proyecto de inicio es https://bit.ly/appinventor-quick-cuestionario - Cárgalo en App Inventor para poder editar tu propia copia.
- Sigue las instrucciones de video para vincular una hoja de Google a tu aplicación y almacenar y actualizar las puntuaciones de los jugadores.
RETO
Ahora que has codificado el juego del cuestionario rápido para leer, escribir y actualizar las puntuaciones personales, ¿puedes:
- leer las puntuaciones más altas de todos los jugadores y encuentra la puntuación más alta de todos los jugadores?
- Comunicar esa información al usuario
- utilizando una etiqueta
- o añádela al mensaje de alerta
REFLEXIÓN
Si vas a almacenar datos para tu aplicación, necesitarás la información aprendida en esta lección. Cuando empieces a codificar tu propia aplicación para tu proyecto, ten en cuenta estas preguntas.
en la aplicación
en el dispositivo móvil del usuario,
o en la nube para compartirla?
REVISIÓN DE TÉRMINOS CLAVE
- Base de datos - una colección organizada de información
- Almacenamiento en la nube - información que se almacena en la web para que cualquier dispositivo conectado a internet pueda acceder a ella
- Par etiqueta-valor - una forma de almacenar y acceder a la información en una base de datos
RECURSOS ADICIONALES
Aquí tienes más documentos y tutoriales para explorar el almacenamiento en la nube en App Inventor.
- Crear una aplicación de chat que utilice CloudD
- Crea una aplicación de inicio de sesión que utilice CloudDB
- Conecta Firebase a App Inventor