30
Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles © 2011-2012 Depto. Ciencia de la Computación e IA Servicios iOS Sesión 2: iCloud y notificaciones push viernes 9 de marzo de 12

Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2011-2012 Depto. Ciencia de la Computación e IA

Servicios iOS

Sesión 2: iCloud y notificaciones push

viernes 9 de marzo de 12

Page 2: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Índice de contenidos• iCloud• ¿Qué es y cómo funciona?• Ejemplos de uso en aplicaciones móviles• Integrando iCloud

• Notificaciones push• ¿Qué es y cómo funciona?• Plataformas externas: Urban Airship• Integrando notificaciones push

2

viernes 9 de marzo de 12

Page 3: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud• iCloud• ¿Qué es y cómo funciona?• Ejemplos de uso en aplicaciones móviles• Integrando iCloud

3

viernes 9 de marzo de 12

Page 4: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud: ¿Qué es y cómo funciona? (1)• Utilidad para almacenar documentos y datos en la nube.• Posibilidad de acceso a todo lo almacenado en iCloud desde

cualquier dispositivo iOS.• Ahora compatible con Mountain Lion (OS X 1.7)• Cada usuario dispondrá de una cuenta iTunes.• Todos los dispositivos deberán estar configurados con la misma

cuenta.• La sincronización será automática e invisible al usuario.

4

viernes 9 de marzo de 12

Page 5: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud: ¿Qué es y cómo funciona? (2)• Ventajas de su uso para los desarrolladores:• No hará falta contratar un servidor externo que sirva de

almacenamiento para datos de nuestra aplicación -> Ahorro de costes.

• No tendremos que programar una API de acceso a servicios externos, Apple lo hace por nosotros -> Menor tiempo de desarrollo.

5

viernes 9 de marzo de 12

Page 6: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud: ¿Qué es y cómo funciona? (3)• Restricciones de uso:• Límite de capacidad: Máximo 5 GB. Uso responsable por parte del

desarrollador.• Sincronizaciones: Resolución de conflictos.• Configuración de las autorizaciones (entitlements) en el portal de

desarroladores y en XCode.• Compatibilidad si no hay iCloud: La aplicación debe de gestionar

este caso.• No compatible al 100% con el simulador de iPhone.

6

viernes 9 de marzo de 12

Page 7: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud: ¿Qué es y cómo funciona? (4)• Existen dos formas de implementar iCloud:• Almacenamiento de documentos: Almacenamiento de ficheros de

cualquier tipo en la nube.• Almacenamiento de datos tipo clave-valor: Almacenamiento de

objetos tipo diccionario (clave-valor). Máximo tamaño permitido: 64KB por objeto.

7

viernes 9 de marzo de 12

Page 8: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud• iCloud• ¿Qué es y cómo funciona?• Ejemplos de uso en aplicaciones móviles• Integrando iCloud

8

viernes 9 de marzo de 12

Page 9: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud: Ejemplos de uso• Aplicaciones de gestión documental: Compartir documentos de

texto. Ej.: Pages (Apple)

• Aplicaciones de fotografía: Compartir fotos que hagamos con el iPhone o iPad entre dispositivos. Ej: iPhoto (Apple).

• Aplicaciones con calendarios: Compartir eventos de calendario.

• Aplicaciones de gestión de tareas: Hacer tareas colaborativas.

• Juegos de distintos tipos: Almacenar datos de niveles, puntuaciones, etc.. entre dispositivos.

9

viernes 9 de marzo de 12

Page 10: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

iCloud• iCloud• ¿Qué es y cómo funciona?• Ejemplos de uso en aplicaciones móviles• Integrando iCloud

10

viernes 9 de marzo de 12

Page 11: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando iCloud (1)• En el Provisioning Portal de Apple:• Crear un nuevo App ID.• Configurar la aplicación para que permita el acceso a iCloud.

11

viernes 9 de marzo de 12

Page 12: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando iCloud (2)• Configuraciones previas en XCode:• Campo Entitlements: Escribimos el App ID en los campos

correspondientes.• De esta forma indicamos a Apple que esta aplicación será

compatible con iCloud.

12

viernes 9 de marzo de 12

Page 13: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando iCloud (3)• Código que inicia iCloud• En el método didFinishLaunchingWithOptions de la clase AppDelegate.

• Indicaremos en la URL el App ID.

13

// (1) Iniciamos iCloudNSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:@"3S952AGH46.ua.es.jtech.ejemploicloud"];

if (ubiq) { NSLog(@"AppDelegate: Entra en iCloud!"); [self cargaDocumento];} else { NSLog(@"AppDelegate: No hay acceso a iCloud (puede que estés en el simulador o que no esté configurado correctamente el dispositivo");}

viernes 9 de marzo de 12

Page 14: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando iCloud (4)• Buscamos el documento (fichero) en iCloud:

14

- (void)cargaDocumento { //iCloud query: Busca a ver si hay un fichero llamado "text.txt" en iCloud. NSMetadataQuery *query = [[NSMetadataQuery alloc] init]; _query = query; //Asignamos el scope (buscamos en documentos) [query setSearchScopes:[NSArray arrayWithObject: NSMetadataQueryUbiquitousDocumentsScope]]; //Creamos un predicado y lo asignamos a la query NSPredicate *pred = [NSPredicate predicateWithFormat: @"%K == %@", NSMetadataItemFSNameKey, @"text.txt"]; [query setPredicate:pred]; //Creamos una notificacion que se llame cuando la query haya terminado // (esta se ejecutará en segundo plano de forma asincrona) [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryDidFinishGathering:) name:NSMetadataQueryDidFinishGatheringNotification object:query]; [query startQuery]; }

viernes 9 de marzo de 12

Page 15: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando iCloud (5)• API de iCloud: https://developer.apple.com/icloud• iCloud y Core Data: No muy estable actualmente.• Mejoras de funcionamiento de iCloud con iOS 5.1.

15

viernes 9 de marzo de 12

Page 16: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Notificaciones push• Notificaciones push• ¿Qué es y cómo funciona?• Plataformas externas: Urban Airship• Integrando notificaciones push

16

viernes 9 de marzo de 12

Page 17: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Push: ¿Qué es y cómo funciona? (1)• Mensajes que se muestran en el dispositivo en forma de

notificación.• Objetivo: evitar la ejecución de procesos recurrentes en el

dispositivo -> Los procesos se ejecutan en el servidor.• Uso en aplicaciones como WhatsApp o Twitter.

17

viernes 9 de marzo de 12

Page 18: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Push: ¿Qué es y cómo funciona? (2)• Se podrán recibir distintos tipos de mensajes:• Mensajes de texto corto.• Sonidos.• Número de eventos en el icono de la aplicación (badge)• Combinado de los anteriores.

• Campañas de marketing• Incitar al usuario hacer uso de la aplicación.• Publicitar eventos o cualquier cosa a los usuarios de nuestra

aplicación.• Evitar el uso desmesurado o fraudulento.

• Necesitaremos un servidor propio o el uso de uno externo.

18

viernes 9 de marzo de 12

Page 19: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Push: ¿Qué es y cómo funciona? (3)• Esquema de funcionamiento de la tecnología:

19

Pasos:

1) El usuario acepta recibir notificaciones push.

2) Almacenamos el ID del dispositivo del usuario en nuestro servidor (en BD).

3) ... Nuestro servidor realizará los procesos internos....

4) Si nuestro servidor quiere enviar una notificación al usuario: envía un mensaje JSON al servidor de Apple (APS). Certificado SSL.

5) El APS enviará la notificación push al dispositivo del usuario.

viernes 9 de marzo de 12

Page 20: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Requerimientos para usar notificaciones• Un dispositivo (iPhone o iPad). Las notificaciones no funcionan

sobre el simulador de XCode.• Una cuenta activa de desarrollador Apple ya que deberemos de

configurar un App ID, generar un certificado SSL, etc.• Un servidor propio, será el que envie los mensajes JSON al

servidor de Apple. • El servidor deberá de cumplir con unos requerimientos complejos,

necesitaremos un VPS (servidor privado virtual).• Ahorrar costes y configuraciones: contratar un servicio externo ->

Urban Airship.

20

viernes 9 de marzo de 12

Page 21: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Notificaciones push• Notificaciones push• ¿Qué es y cómo funciona?• Plataformas externas: Urban Airship• Integrando notificaciones push

21

viernes 9 de marzo de 12

Page 22: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Urban Airship (1)• Plataforma online para desarrolladores móviles (iOS, Android,

Blackberry...).• Ofrece servicios de in-app y de notificaciones push.• Ofrece una API bastante completa y sencilla de usar.• Ventajas de su uso:• Ahorro en costes de configuración de servidor y su mantenimiento• Ahorro en costes de implementación de todo el servicio en la

aplicación.• Servicio “extra” de notificaciones push ricas (con imágenes,

videos, etc...).• Ideal para empresas pequeñas.• Disponibilidad del portal online para enviar notificaciones desde un

formulario (para testeo, por ejemplo).• Sistema multiplataforma.

22

viernes 9 de marzo de 12

Page 23: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Urban Airship (2)

23

viernes 9 de marzo de 12

Page 24: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Notificaciones push• Notificaciones push• ¿Qué es y cómo funciona?• Plataformas externas: Urban Airship• Integrando notificaciones push

24

viernes 9 de marzo de 12

Page 25: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando notificaciones push (1)• Configurar un App ID en el Provisioning Portal.• Generar un certificado SSL.• Configurar el lado del servidor con el certificado.• Implementar la recepción de notificaciones en la aplicación.

25

viernes 9 de marzo de 12

Page 26: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando notificaciones push (2)• Registramos el dispositivo para que permita recibir

notificaciones de nuestra aplicación.• En el método didFinishLaunchingWithOptions de la clase AppDelegate.

26

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

viernes 9 de marzo de 12

Page 27: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando notificaciones push (3)• Obtenemos el token (ID) del dispositivo para almacenarlo en

nuestro servidor.

27

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

NSString *deviceTokenStr = [[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""] stringByReplacingOccurrencesOfString: @">" withString: @""] stringByReplacingOccurrencesOfString: @" " withString: @""]; NSLog(@"deviceToken: %@", deviceTokenStr); // El token deberemos de enviarlo a nuestro servidor o a Urban Airship

// usando su API...}

viernes 9 de marzo de 12

Page 28: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando notificaciones push (4)• Permisos para recibir notificaciones.

28

viernes 9 de marzo de 12

Page 29: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

Integrando notificaciones push (5)• Enviando una notificación por Urban Airship...

29

viernes 9 de marzo de 12

Page 30: Servicios iOS - ua · 2012-06-19 · • Utilidad para almacenar documentos y datos en la nube. • Posibilidad de acceso a todo lo almacenado en iCloud desde cualquier dispositivo

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles

Servicios iOS © 2011-2012 Depto. Ciencia de la Computación e IA iCloud y notificaciones push

• ¿Preguntas...?

30

viernes 9 de marzo de 12