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 rcasanova@eureka-ec.com 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 rcasanova@eureka-ec.com