No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Bases Técnicas de Android

Curso de Bases Técnicas de Android

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Content Providers Bases de Datos y Network

24/27
Recursos

Aportes 25

Preguntas 10

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

**Base de Datos: ** Para trabajar con datos estructurados, complejos y relacionales. Se almacenan dentro del dispositivo, pero se puede almacenar externamente. Aunque, puede que la información se vea vulnerable. Por lo que, los datos se deben encriptar para proteger la información.
SQLite es un motor de base de datos que emplea Android. En la cual, las aplicaciones pueden guardar su información con las preferencias de los usuarios con data más extensa, a comparación de Shared Preferences.

Los datos viven, mientras la aplicación viva. En caso, se desinstale la app, lo datos se perderán.

Content Provider (Proveedor de Contenido): Permite acceder a las bases de datos de otras aplicaciones que estén proveendo contenido. Ej. Consumir datos de los contactos del teléfono.
No requieren de conexión a internet.

Web Service: Los datos se pueden almacenar también en una base de datos que se encuentra en alguna parte de internet. Antes, es necesario identificar si el dispositivo puede acceder a internet. Además, podemos crear validaciones para limitar la cantidad de datos a consumir. Permite, trabajar con aplicaciones off-line.

Los servidores deben estar siempre online para que los datos estén disponibles. Para ello, se puede usar plataformas Cloud. Por ej. Azure, Amazon Web Service, Firebase, etc.

Los Content Providers (proveedor de contenido para otras aplicaciones) nos ayudan a definir datos mas complejos que esten disponibles a otras aplicaciones, como por ejemplo:

Tenemos dos aplicaciones y necesiten tener comunicacion de datos una con la otra, esto es muy beneficioso ya que no utilizan la Red de Internet, son datos en modo Offline.

Entonces para que las dos apps compartan datos no necesitan estar conectadas a internet, pueden usar un content providers como intermediario para acceder a la base de datos local que vive en el telefono.

Desafortunadamente al desintalar la aplicación estos datos se borran y cuando la instales otra vez estos datos empiezan desde cero.

En cuanto a Network podemos usar un servidor, dara una persistencia mayor a los datos, sera una forma de backup.

Como funciona el network, la Aplicacion movil se conectara al servidor a traves de una URL que se conoce como un endpoint que accedera al webservice, envia la solicitud al servidor si quiere enviar datos y el servidor la almacena y le regresa una respuesta a la app movil. Si la app movil esta solicitando un conjunto de registros de clientes, el servidor hace su consulta a su base de datos interna y le devuelve una cantidad de registros de clientes, y la app lo unico que hara sera mostrar datos.

El servidor necesitara estar siempre Online, de lo contrario la aplicacion ya no tendra acceso a esos datos.

Podemos contratar intermediarios que nos ayuden a mantener online nuestra aplicacion funcionando, podemos usar:

Firebase, Azure, Amazon Web Services, ibm, etc.

Hoy android pone una nueva libreria llamada Room, mejora su rendimiento con respecto a SQLite, Android recomienda usar Room en los nuevos diseños, aunque aún hay soporte para SQLite.

Content Provider, Bases de datos y Network

SqLite: Es el Motor de base de datos de android que se maneja de manera interna

Content Providers: Son datos que solo son accesibles para la aplicación:

Network: Se necesita de un servidor externo para que exista la persistencia de datos

Veo que aquí apenas mencionan a Realm, ahora mismo el sistema de base de datos con mejor Performance es Realm, y es super rápido programar con Realm.

Super recomendado, va muchísimo más rápido que SQLite.

3.- Base de datos (SQLite): Motor de base de datos interno, diseña para dispositivos con recursos limitados, accesible unicamente durante la vida de la aplicacion.
4.- Content providers: Conectarse a una base de datos que vive dentro del sistema operativo, contiene metodos para determinar que acciones se pueden realizar en la base de datos, estan accesibles a otras aplicaciones.
5.- Network: Conexion a internet, requiere de un servidor que de persistencia a los datos de forma remota. Se conecta a un endpoint, y realiza una peticion, y recibe una respuesta, (REST ‘JSON’, SOAP ‘XML’), el servidor siempre debe estar activo.

Tener funcionalidad offline y online.

Sólo como dato… En este tiempo SQLite se sigue usando en varias empresas que tienen aplicaciones que fueron creadas años atrás, sin embargo si se empieza una aplicación nueva en este tiempo es más recomendable usar “Room” que viene siendo como la versión mejorada de SQLite que además es más fácil de entender y de implementar.

Llevo casi un año trabajando con Android y no conocía donde se almacenaban las SharedPreferences, que se pueden crear bases de datos SQL dentro de la App y los ContentProviders. Excelente información.

se puede conectar Android estudio con una base de datos NoSQL??

content providers: nos permite enlazar a una base de datos de otra aplicacion, (ejemplo contactos) estas bases con definidas como content providers.

Buenas… que tal 😃
y se pueden usar otras bases de datos para un almacenamiento interno? tipo postgres o NOsql como mongodb? o si o si el motor tiene que ser SqlLite ?

Como dice la profesora, es bueno combinar ambas formas de persistencia (SQLlite y Webservices). Recomiendo que le den una leida a la arquitectura que recomienda Google seguir para utilizar ambas formas de persistir en nuestra app.

https://developer.android.com/jetpack/guide?hl=es-419

Modo Offline

muy buena clase

Vengo del desarrollo web con java, cuando se usa base de datos también se puede usar hibernate o algo parecido?

Content provider trabaja tambien con sqlite?

estoy bastante interesado en manejar SQLite para la construcción de apps, he visto un poco de documentación y no le veo mayor dificultad, creo que la unica seria el incorporarls en una app.

¿Se puede trabajar con sql o my sql ?

bases de datos: utiliza SQLite - Accesible en solo cuando tengas instalado la aplicación. permite crear relaciones. existe librerias para utilizar sqlite

Servicios web: disponibilidad de red, se compone de app-webservice-servidor, nos permite respaldar la información en un servidor que debe estar siempre online el server. Firebase, amazonws

Excelente información!

content provider : base de datos que pueden usar varias apps
sqlite: base de datos exclusiva para una app
network: base de datos online

Interesante.

Content Providers Bases de Datos y Network

<h4>Bases de datos</h4>

La forma de trabajar con bases de datos es con SQLite, está diseñado para dispositivos con hardware limitado y es muy flexible. El almacenamiento es solo accesible durante el ciclo de vida de la aplicación, cuando se desinstale la aplicación los datos se perderán. Se recomienda para datos complejos y relacionados entre sí.

<h4>Content Providers</h4>

Sirven para proveer datos accesibles para diferentes aplicaciones, lo que hace este método es tener una conexión a una base de datos del sistema operativo y el content provider ofrece métodos a las aplicaciones para crear, eliminar, consultar o actualizar la base de datos.

<h4>Network</h4>

Este método va más allá del ciclo de vida de la aplicación, ya que los datos son almacenados en un servidor que de una persistencia a los datos. La aplicación, mediante internet, realizará peticiones al servidor a través de un WebService y el servidor le devolverá la información que solicitó. El servidor siempre debe estar en línea para que no se pierda la persistencia

Que me acabas de decir? Esto es fantástico!