En la clase pasada nosotros creamos nuestro modelo que nos va a servir para manejar la información de
un escaneo es decir yo escaneo y le tengo que dar un Heydi tengo que saber qué tipo es y tengo que saber
qué valor es el que quiero asignar qué es lo que se escaneó el valor del escáner antes de cerrar este
archivo.
Creo que lo único que podríamos hacer es quitar ese punto y coma y voy a agregar una configuración en
el constructor del modelo.
Lo único que quiero hacer es una pequeña determinación automática y voy a decir que si el disputo valor
o simplemente el valor que sería lo mismo si el valor punto contains o sea contiene la palabra HTTP
o HTTPS sería lo mismo si contiene eso.
Entonces voy a decir que el tipo o si quiere puedo poner aquí el 10.
Esto es opcional recuerden pero lo voy a poner mejor para que no nos confundamos voy a decir que el
disputo tipo va a ser igual a HTTP.
Quiere decir que el tipo es de una página web.
Esto me va a ayudar a mí a poder diferenciar cuándo abrir una página web y cuándo abrir el que es el
mapa con el geo location.
Caso contrario dispón todo tipo va a ser igual a Geo como un geo location.
Ahora si eso sería la última modificación que se me olvidó en el video pasado lo vamos a poner aquí.
No es la gran cosa igual lo podríamos hacer después pero mejor agréguele lo vamos a cerrar ok.
Toda la información que yo grabé en mi aplicación la voy a ocupar en almacenar en una base de datos
las bases de datos que se recomiendan para los dispositivos móviles es el Esquiú light por lo cual si
necesitamos usarla tenemos que instalarla en nuestro dispositivo.
Es muy parecido a una base de datos SQL a SQL Server o Oracle es igual que una base de datos relacional
común y corriente.
Para eso yo les dejo a ustedes en el material adjunto dos reales que los llevan a estos dos enlaces
ya vamos hacia la instalación de ambos.
Empecemos con el Esquiú Flight.
Así se llama entonces vamos a la instalación F de cookies de Flore y aquí en la instalación vamos a
copiemos esta dependencia que copiamos esto regresemos a nuestro código en el estudio como ustedes ya
saben ya son expertos instalando paquetes en Flores justo abajo del cual Ridder voy a pegar el esquivé
Flight y también Copping sé lo que es este Provider para qué nos va a servir el pack Provider pues nosotros
ocuparemos saber la dirección donde se encuentra el archivo de la base de datos físicamente en el dispositivo
es decir no lo manejamos así como los aceptais.
Eso tiene que ser de forma dinámica dependiendo del país donde se encuentra.
Entonces para eso vamos a utilizar el PATH Provider que va a ser bastante sencillo de usar.
No se preocupen ya lo vamos a ver en breve.
Justo justo debajo del Esquiú Flight van a colocar el pack Provider ahora sigan los cambios o ejecutã
en el paquete jet para que eso sea parte del proyecto.
También les voy a pedir que cuando termine de hacer esa instalación bajen su programa y lo vuelvan a
levantar porque acuérdense que son paquetes que necesitan ser vueltos a empaquetar en nuestros fondos
de la aplicación que estamos corriendo acá en el dispositivo.
Entonces cada vez que ustedes modifiquen estos paquetes lo ideal es que hagan un full restart full Ristar
no simplemente un reloj.
Puede cerrar el pop Speck pronto ya dejo que esto dejen que esto termine y que haga todo lo que tiene
que hacer y voy a ir creando aquí en el lado derecho pero en el lado izquierdo voy a crear una nueva
carpeta siempre dentro de sours una nueva carpeta y se va a llamar providers providers enter dentro
de providers click derecho nuevo archivo y nos crearemos uno llamado divi o deve bajo Provider punto
Tarth.
Este archivo es el encargado de manejar lo que es mi base de datos podía ocupar crear una base de datos
crear una instancia verificar si no existe y si no existe crearla y si existe pues usar la misma y quizá
esto sonará muy complicado pero tal vez sólo en la configuración inicial después ustedes pueden copiar
y pegar este archivo ya tiene un motor de base de datos perfectamente configurado en su aplicación.
Por lo menos en este video quiero comenzar a definirme lo que es mi Provider.
Para eso es una clase común y corriente llamada divi o Debé provided abren y cierran llaves.
Esta clase de Provider yo necesito que sea implementada mediante el patrón singleton es decir que sólo
podamos tener una instancia de nuestro debe Provider de manera global en la aplicación.
Esto con el fin de que yo no tenga múltiples instancias de la clase que sea una sola.
Para eso voy a ocupar dos propiedades estáticas ya se lo puede explicar Static Static y un bajo Data
Voice noten que es con mayúscula esto no existe no lo reconoce entonces como el punto contra el punto
que me dice que falta el punto y coma lo volvemos a presionar y no lo encuentra.
No se preocupen ya y un bajo y se va a llamar databases estoy creando una propiedad privada.
Recuerden que el guión bajo el Catabois no lo encuentra.
Entonces si miramos la instalación del de Flight bajamos un poco.
Este es el paquete que vamos a ocupar.
No sé por qué ese paquete no lo encuentras de forma automática tal vez cuando Uds. están viendo el video.
Ya lo hace.
Ok entonces este es realmente mi base de datos mi instancia la base de datos ok.
Y el otro método que voy a crear a ser un Static espacio lo definiré como final para que no se cambie
tampoco accidentalmente.
Iba a ser una instancia de mi clase por eso pongo mi Provider y se va a llamar divi o base de datos.
Esto va a ser igual.
Tal vez esto será un poco extraño a un constructor privado que voy a escribir en este momento ya se
lo voy a explicar pero voy a hacer el llamado a divi provided pero a un constructor privado.
Esto tal vez sonará extraño.
Tal vez sería más fácil Floribeth ponerle así a gente que se acostumbra a ponerlo así pero es lo mismo
cuando ustedes lo miren así es un constructor privado y más Isfahán.
Para qué sirve un constructor privado para lo mismo que les dije originalmente.
Yo no quiero que esa propiedad que se estática yo no quiero que se esté reinicias izando cuando yo necesite
utilizar la base de datos puede hacer referencia a esta propiedad.
Y recuerden que esta propiedad va a llamar este método privado que todavía no existe.
Mi constructor privado vamos a definirlo de una vez y voy a decir divi Provider punto bajo parentesis.
Ese es un constructor privado recuerden que esto es como que yo estuviera aquí otro nombre de la propiedad
del como por ejemplo con argumentos o con qué se yo parámetros o Priv por ejemplo qué sería lo mismo
que es.
Pero yo no voy a dejar así.
Es más corto y esto es bastante común que ustedes lo piden allá afuera.
Entonces qué más voy a hacer.
Recuerden que todos los estivo es implementar el patrón singleton para que solo tengamos una instancia
de la base de datos corriendo acá.
Para terminar voy a hacerme un Geer para obtener la información de esa propiedad privada data.
Para eso va a ser Get data databases Spazio abren cierran llaves eso va a ser una tarea Eysenck ya les
voy a explicar por qué.
Ok qué es lo que voy a hacer acá.
Primero necesito verificar si el Data Voice es diferente de Nul si es diferente no quiere decir que
existe información ahí adentro.
Por consecuencia yo simplemente la voy a retornar de esa manera.
Eso quiere decir que la información que ya está creada la estructura ok entonces simplemente la voy
a regresar ahora.
Caso contrario quiere decir que no existe.
O sea es nula la instancia de la base de datos por lo cual yo voy a tener que crear una nueva instancia.
Entonces Catabois va a ser igual a un método Aguaytía de Init Debé o sea mi proceso de inicialización
de base de datos.
Recuerden que para utilizar esto tiene que ser una función para utilizar en la web tiene que ser un
método fácil.
Yo sé que todo esto sonará un poquito extraño o que prosciutto tratando de hacer mi mejor esfuerzo de
explicarle por qué cada una de las líneas de código.
Ahora para terminar cuando ya llegamos al punto este es un método que no está implementado pero este
método tiene que regresarme a una base de datos.
Entonces voy a hacer aquí retornando a estábais punto y coma.
Adicionalmente yo puedo especificar el tipo va a ser un flujo que retorna un objeto de tipo Catabois
pero Data Voice eso es lo que estoy haciendo acá.
Este ni te lo voy a implementar en la siguiente clase para saturarlo.
Pero simplemente voy a decir que el límite debe su método.
Por eso puedo poner en la web porque tienen que regresar en un futuro y esto lo hacemos en el siguiente
video.