Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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