Fundamentos de Persistencia y Comunicación de Datos en Desarrollo de Aplicaciones
Enfoques de Persistencia y Gestión de Datos en Aplicaciones
Persistencia de Datos Binarios: JPA vs. SQLite
JPA (Java Persistence API)
Es un framework de persistencia que abstrae las bases de datos y proporciona un estándar para persistir datos en Java. Representa la información específica del dominio sobre la cual operará la aplicación.
Ventajas
- Los datos almacenados son independientes del tiempo de vida que los creó.
- Posibilidad de crear perfiles de usuario.
Inconvenientes
- Almacenamiento de información sensible.
- Limita la capacidad del procesador al trabajar con grandes cantidades de datos.
SQLite
Es un sistema de gestión de bases de datos relacional compatible con ACID, contenido en una biblioteca relativamente pequeña (≈275KB).
A diferencia de los sistemas de gestión de bases de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa, pasando a ser parte integral del mismo. El programa utiliza SQLite mediante llamadas a subrutinas y funciones.
Ventajas
- Requiere poca memoria y solo una biblioteca es necesaria para acceder a la Base de Datos (BBDD), lo que lo hace ideal para aplicaciones de bases de datos incorporadas.
- Mejor rendimiento y eficiencia que MySQL.
- Cuenta con distintas interfaces para poder trabajar con múltiples lenguajes.
Gestión de Estado: Sesión y Flash
Sesión
Información disponible durante toda la sesión del usuario. Se almacena en Cookies (tamaño máximo 4KB y solo valores String). Estas cookies son firmadas y, si se modifica su contenido, quedan invalidadas.
Flash
Información disponible solo para la próxima petición HTTP. Se almacena en Cookies no firmadas, lo que permite al usuario modificar su contenido.
Mecanismos de Comunicación y Transferencia de Datos (Activities)
Intent
Se utiliza para invocar otras Activities o llevar a cabo acciones. Permite llamar a aplicaciones externas, lanzar eventos a los que otras aplicaciones puedan responder, lanzar alarmas, etc.
JSON (JavaScript Object Notation)
Formato ligero para el intercambio de datos. Describe los datos con una sintaxis específica que se utiliza para identificar y gestionar la información. Nació como alternativa a XML y tiene la ventaja de ser legible por cualquier lenguaje de programación, facilitando el intercambio de información entre distintas tecnologías.
Singleton
Se utiliza para asegurar que solo exista una instancia de un elemento, especialmente cuando varios clientes distintos necesitan referenciar el mismo objeto.
Variables Static
Propias únicamente de la clase y no del objeto que se crea a partir de ella. Por lo tanto, sus valores son compartidos por todos los objetos de la clase. Se pueden invocar desde la misma clase o desde una clase distinta.
XML: Definición y Utilidad
XML es un subconjunto de SGML (estándar para definir lenguaje de marcado) simplificado y adaptado a Internet. Permite definir lenguajes de marcado adecuados para usos determinados. También es una especificación para diseñar lenguajes de marcado que permite definir etiquetas personalizadas para la descripción y organización de datos.
Es útil para representar información estructurada en la web (todos los documentos), de modo que esta información pueda ser almacenada, transmitida, procesada, visualizada e impresa por diversos tipos de aplicaciones y dispositivos.
Tipos de Datos Utilizados en Tareas Asíncronas (AsyncTask)
- Parámetros (Params…)
- El tipo de información necesaria para procesar la tarea.
- Progreso (Progress…)
- El tipo de información utilizada dentro de la tarea para indicar su avance.
- Resultado (Result…)
- El tipo de información devuelta cuando la tarea ha sido completada.