Download Sesion 5 - SQLite - JSON

Document related concepts
Transcript
Desarrollo de Aplicaciones para iOS
Sesión 5: SQLite - JSON
Ing. Ricardo Casanova Nébola-Kopak
@rcasanovan
[email protected]
Bases de Datos en iOS
SQLite - Antecedentes
Proyecto público creado por Richard Hipp
Implementa una librería de poco más de 500 KB
Permite el manejo de bases de datos relacionales
Ventajas
Tamaño: Una única y pequeña librería para acceder a las bases de datos
Rendimiento: Realiza operaciones mucho más rápido que MySQL o PostgreSQL
Estabilidad: Cumple con el criterio ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad)
SQL: Implementa el estándar SQL ANSI-92 (consultas, usuarios, vistas, triggers)
Interfaces: Permite trabajar con diferentes lenguajes como C++, Python, Java, Ruby, Objective C, etc
Costo: Es gratuito
Disponibilidad: SQLite ya viene integrado en Mac OS X (muchas apps de Mac OS usan SQLite, por ejemplo Launchpad)
Bases de Datos en iOS
Desventajas
Manejo de clave foránea: Desde cónsola, permite manejar claves foráneas, pero no hace el chequeo de la misma
Condiciones WHERE: No ofrece mayor soporte para consultas anidadas
Tipos de datos: Permite definir campos de cualquier tipo de dato, ya que no hace chequeo del mismo
Clientes para Mac OS
SQLiteManager
-Es una app paga
-Posee una versión gratuita
-La versión gratuita tiene
ciertas limitaciones de uso
disponible directamente en la App Store de Apple
MesaSQLite
-Es una app gratuita
-Permite hacer CRUDs
-No posee mayores
limitaciones de uso
disponible en http://www.desertsandsoftware.com/?page_id=17
Bases de Datos en iOS
Librerías a utilizar
libsqlite3.0.dylib
libsqlite3.dylib
¿Cuál es la diferencia entre ambas?
libsqlite3.dylib contiene ciertas interfaces adicionales para UNIX. Se pensaba que fuera la versión 3.1 de la librería
para desarrollos, se recomienda usar libsqlite3.0.dylib
Bases de Datos en iOS
Cómo importar la librería
1
Se hace clic sobre la carpeta general del
proyecto
Bases de Datos en iOS
Cómo importar la librería
2
Se selecciona la pestañan “Summary”
Bases de Datos en iOS
Cómo importar la librería
3
En la sección de Frameworks, se hace
clic sobre la opción “+”
Bases de Datos en iOS
4
Aparecerá un explorador con todos los
Frameworks disponibles para iOS
Bases de Datos en iOS
5
Se busca y se añade el archivo
“libsqlite3.0.dylib”
Para mayor orden, se
recomienda arrastrar el
a rc h i v o a l a c a r p e t a
“Frameworks” del
proyecto
Bases de Datos en iOS
¿Y ahora qué?
Lo primero que debemos hacer es importar nuestra base de datos al proyecto
Para ello basta con “arrastrar y soltar “ el archivo de extensión .sqlite3 al proyecto
NOTA: Cuando se nos pregunte si deseamos copiar el archivo o mantener una referencia, seleccionamos
copiar el archivo
Bases de Datos en iOS
Último paso
Crear los archivos necesarios para establecer la conexión con la base de datos
Dentro de esos archivos crear los mensajes (métodos) necesarios para los CRUD (Create, Read, Update y Delete)
Para ayudarnos, DBConnector!
Un clase creada por el Ing. Ricardo Casanova para establecer conexiones a una
BD SQLite
JSON
JSON (Java Script Object Notation) en iOS
¿Qué es JSON?
Métodos GET / POST
Tips al usar JSON en iOS
JSON en iOS
¿Qué es JSON?
Es un formato ligero para el intercambio de datos. JSON es un
subconjunto de la notación literal de objetos de JavaScript que no requiere
el uso de XML
{"menu": {!
"id": "file",!
"value": "File",!
"popup": {!
"menuitem": [!
{"value": "New", "onclick": "CreateNewDoc()"},!
{"value": "Open", "onclick": "OpenDoc()"},!
{"value": "Close", "onclick": "CloseDoc()"}!
]!
}!
}!
}!
JSON en iOS
Métodos GET / POST
Ambos son métodos para en intercambio de información entre un cliente y
un servidor pero, ¿Cuándo usar cada uno?
Métodos POST: Se utilizan cuando el volumen de transmisión de data es
elevado (transferir imágenes o objetos de varios bytes)
Métodos GET: Se utilizan cuando el volumen de transferencia es menor
Aún así es común ver que todas las llamadas en un JSON con hechas
netamente con métodos POST
JSON en iOS
Algunos tips al usar JSON en iOS
Se recomienda hacer una clase que se encargue de las llamadas JSON,
donde también se definan métodos para el parseo de las respuestas de
las llamadas
Si se desea enviar imágenes desde iOS a un servidor usando https se
requiere que el servidor disponga de un certificado avalado por una
autoridad certificadora (no se aceptan certificados autofirmados)
Usualmente las llamadas JSON (para intercambiar data con un servidor)
deben encapsularse en hilos que permita ejecutar la llamada en segundo
plano
Desarrollo de Aplicaciones para iOS
Sesión 5: SQLite - JSON
Ing. Ricardo Casanova Nébola-Kopak
@rcasanovan
[email protected]