- Aprenda a almacenar datos en un dispositivo móvil para acceder a ellos desde una aplicación móvil
- Conozca las diferentes opciones de almacenamiento y acceso a los datos en la nube para compartir datos entre los usuarios de la aplicación.
Éstas 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
Almacenar 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
Almacenar 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 desea almacenar datos para la aplicación entre ejecuciones, utilizará la base de datos TinyDB en
TinyDB puede utilizarse para almacenar la información personal de un usuario que no es necesario 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. A 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 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. El valor de la etiqueta se almacena y obtiene del mismo modo que se establecen y obtienen los valores de las variables. Esto se conoce como par etiqueta-valor.
TinyDB.AlmacenarValor almacena el nuevo valor en TinyDB. Debe 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 el MIT App Inventor.
CloudDB funciona igual que TinyDB. Los datos se almacenan y se accede a ellos mediante pares 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. Debe 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 manejador 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 manejador 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.
El sitio Hoja de cálculo le permite leer y escribir desde una hoja de cálculo de Google. Tendrá que configurar una cuenta de desarrollador de Google y seguir algunos pasos para vincular tu aplicación al documento.
El componente 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ñada a su 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 del tutor
Mejores prácticas 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 codificación de la vida real, aunque nosotros lo llamamos par Clave-Valor. Ahora ya conoces los términos que utilizan los expertos.
Preguntas orientativas para los alumnos: ¿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: ALMACENAR PUNTUACIONES DE JUEGOS
Actualizar el juego de preguntas rápidas para guardar las puntuaciones más altas
- 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-quiz - Cárguelo en App Inventor para poder editar su 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.
DESAFÍO
Ahora que ha codificado el juego Quick Quiz para leer, escribir y actualizar las puntuaciones altas personales, ¿puede:
- Lee 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ñádalo 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
- Crear una aplicación de inicio de sesión que utilice CloudDB
- Conectar Firebase a App Inventor