Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

iOS Notifications

378 views

Published on

iOS notifications explained: Theory, programming, registering, sending, receiving, handling and so on. Slides for the iOS Notifications extra course for MIMO Masters

Published in: Engineering
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THE is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, EBOOK, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THE Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THE the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

iOS Notifications

  1. 1. iOS Notifications Teoría, programación, registro, envío, recepción, manejo, etc...
  2. 2. Antes de empezar... • Nombre • ¿A qué te dedicas? • ¿Por qué MIMO? • ¿Qué experiencia tienes como programador? • ¿Y de apps móviles? • ¿Qué sabes de las notificaciones de iOS?
  3. 3. Metodología
  4. 4. Metodología
  5. 5. Sobre las dudas...
  6. 6. Índice de contenidos • Introducción • Notificaciones locales • Notificaciones remotas • Proveedor de notificaciones • Un caso práctico
  7. 7. Introducción Conociendo las notificaciones
  8. 8. ¿Qué es una notificación?
  9. 9. • Comunicación oficial y con las formalidades preceptivas de una resolución. • Noticia veraz de algo. RAE, 2005 ¿Qué es una notificación?
  10. 10. ¿Qué es una notificación? Mecanismo que tienen las aplicaciones móviles que no se están ejecutando en primer plano para indicar al usuario que tiene alguna información para él.
  11. 11. ¿Cómo se muestran?
  12. 12. ¿Y luego?
  13. 13. ¡Empezamos!
  14. 14. Notificaciones Notificaciones locales y remotas en profundidad
  15. 15. Propósito Permitir a una aplicación informar al usuario que tiene algo para él.
  16. 16. Casos prácticos
  17. 17. Notificaciones locales • Almacenadas y entregadas por el propio sistema operativo. • Útiles para aplicaciones tipo calendarios, recordatorios, temporizadores, etc... • Límite de 64 notificaciones programadas por aplicación.
  18. 18. Notificaciones Locales App iOS App iOS Programación Entrega
  19. 19. Notificaciones remotas • Conocidas como notificaciones Push. • Almacenadas por un servidor propio. • Enviadas por internet (Wi-Fi, 3G, ...). • Entregadas por APNs al dispositivo. • Útil para aplicaciones y/o juegos con interacción entre usuarios.
  20. 20. Push vs. Pull design Client Server ... Client Server Pull Push
  21. 21. Notificaciones Push App iOS Server APNs
  22. 22. Notificaciones Locales Programación, recepción y manejo
  23. 23. Calentamiento • Crear una nueva aplicación iOS. • Cuando arranque debe mostrar una pantalla con un sólo botón. • Cada vez que se pulse el botón, se debe mostrar un mensaje por consola. • La aplicación debe funcionar en el dispositivo real, no solo en el simulador.
  24. 24. Programación
  25. 25. Recepción
  26. 26. Manejo Con la aplicación abierta (foreground o background)
  27. 27. Manejo Con la aplicación cerrada...
  28. 28. Finalizando... • Completar la aplicación para que cuando se reciba una notificación se vaya directamente a una pantalla que muestre los detalles de esa notificación. • La gestión de pantallas debe realizarse mediante un UINavigationController. • Debe funcionar tanto si la aplicación esta en background, foreground o cerrada.
  29. 29. ... y esto?
  30. 30. Badge Asignación Manejo ¡¡Asigna directamente el valor al badge!!
  31. 31. Badge • Finalizar la aplicación de ejemplo añadiendo funcionalidad para poner a cero el badge cuando la notificación sea ‘leída’.
  32. 32. Puesta en común • ¿Cómo diseñaríais una aplicación de recordatorios basados en fechas? • El badge debe indicar exactamente el número de tareas pendientes
  33. 33. Conclusiones • No se puede controlar el badge 100%, habrá que actualizarlo desde la app siempre que sea posible. • La funcionalidad de nuestra aplicación no puede depender de la notificación, ya que ésta puede no recibirse o ser ignorada.
  34. 34. Notificaciones Push Registro, envío, recepción y manejo
  35. 35. Notificaciones Push App iOS Server APNs
  36. 36. APNs • Siglas de Apple Push Notificacion service. • ‘Piedra Angular’ del sistema de Notificaciones Apple. • Recibe y distribuye las notificaciones a sus destinatarios. • Esa distribución es un servicio PUSH.
  37. 37. ¿Servicio Push? • ¿Qué es? • ¿Cómo se consigue? • ¿Qué ocurrirá con la notificación si el teléfono está apagado? • ¿Y si no tiene internet?
  38. 38. APNs: Seguridad Mecanismo 1: Seguridad basada en certificados digitales para todas las comunicaciones. Aseguramiento de la conexión dispositivo - APNs Aseguramiento de la conexión server - APNs
  39. 39. APNs: Seguridad Mecanismo 2: Seguridad basada en un token único que identifica a cada dispositivo. Generación y distribución del token Notificación
  40. 40. APNs: Seguridad • Servidor • Certificado proporcionado por Apple. • Token de los dispositivos. • Aplicación Cliente • Certificado proporciondo por Apple (code sign). • Haber enviado su token al servidor.
  41. 41. DEMO Generación de certificados, configuración del app, ...
  42. 42. APNs: Otros servicios • Servicio de información (feedback) que indica los dispositivos que rechazaron notificaciones. • Política de almacenamiento y reenvío (store and forward), si el destinatario no se encuentra conectado.
  43. 43. Calentamiento • Crear una nueva aplicación iOS que tenga un sólo botón en pantalla. • Cuando arranque debe mostrar una vista oscurecida, tapando el botón y un UIActivityIndicator en el medio girando constantemente y un mensaje de espera. • La aplicación debe funcionar en el dispositivo real, no solo en el simulador.
  44. 44. Registro APNs • Cuando se complete el registro, la vista de carga debe desaparecer. • El botón debe habilitarse/deshabilitarse dependiendo de si el registro fue correcto o no.
  45. 45. Solicitando notificaciones • El botón de la pantalla servirá para solicitar notificaciones a un provider. • API del provider: • POST http://mimo-apns.herokuapp.com/users/greet • Body(JSON): {“name”:“<nombre>”,“token”:”<token>”} • El token debe contener sólo números y letras, no espacios en blanco ni otros caracteres. • Pista: Para asegurarnos de que el provider interpreta el body como JSON se debe especificar la cabecera “Content- Type” con “application/json”
  46. 46. Solicitando notificaciones
  47. 47. Proveedor de notificaciones Construcción de un servicio proveedor de notificaciones en Play! Framework
  48. 48. Provider • Crear un nuevo proyecto en Play! Framework. • Debe recibir un POST en la url /users/ greet. En el body recibirá un JSON: • {“name”:”El name”,“token”:”El token”} • Cuando se reciba la petición, se imprimirán por consola los dos valores recibidos (name y token)
  49. 49. Provider /conf/routes /app/controllers/User.java /app/models/User.java
  50. 50. Requisitos • Componer el payload de la notificación • Comunicación con API APNs • Comunicación segura (TLS) • Envío de datos en binario • Recepción de la respuesta en binario • Enviar notificaciones ‘en grupos’ • Obtener feedback periódicamente
  51. 51. Provider • Construir el JSON que se enviará como ‘payload’ a APNs { "aps": { "alert": "Welcome<name>", "sound": "default", "badge": 1 } } • Pista: Utilizar las clases JsonObject y/o JsonElement para construir el JSON. No lo hagáis a mano. • Imprimir el JSON por consola. (toString())
  52. 52. Provider
  53. 53. Requisitos • Componer el payload de la notificación • Comunicación con API APNs • Comunicación segura (TLS) • Envío de datos en binario • Recepción de la respuesta en binario • Enviar notificaciones ‘en grupos’ • Obtener feedback periódicamente
  54. 54. SSL/TLS • Framework para establecer conexiones seguras entre dos partes que quieren comunicarse. • La comunicación se inicia con una fase de handshake: • Deciden algoritmo, longitud de clave, intercambian certificados y, usando encriptación asimétrica, comparten la clave simétrica final.
  55. 55. Claves y certificados • Claves de cifrado asimétrico • Generadas en pares (pública-privada) • Contenido cifrado con una sólo puede ser descifrado por la otra • Contenido firmado con una sólo puede ser verificado por la otra • Certificados • Clave pública + información identificativa + fecha de expiración
  56. 56. Confianza • ¿Cómo saber si el certificado que nos están presentando es veraz? • 1º:¿El certificado es válido?(no ha expirado) • 2º: ¿El certificado corresponde al host que lo presenta? • 3º: ¿Confiamos en la CA que lo generó?
  57. 57. SSL/TLS Unidireccional Bidireccional
  58. 58. SSL en JAVA
  59. 59. Requisitos • Componer el payload de la notificación • Comunicación con API APNs • Comunicación segura (TLS) • Envío de datos en binario • Recepción de la respuesta en binario • Enviar notificaciones ‘en grupos’ • Obtener feedback periódicamente
  60. 60. API APNs • byte 1 • Identificador único de la notificación • UNIX Timestamp de expiración (en segundos) • Longitud del token • Token del dispositivo en binario • Longitud del payload • Payload (máximo 256 bytes y no acabar en null)
  61. 61. Antes de empezar... • ¿Cuántos bits componen un byte? • a) 4 • b) 8 • c) 16 • d) Todas son correctas :)
  62. 62. Antes de empezar... • ¿Cómo se representa una serie de bits en código fuente? • a) 0x101010101 • b) 0xFFFF • c) 1010101 • d) 0b1010101
  63. 63. Antes de empezar... • ¿Cómo se extraen, por programación, los bytes de un número?
  64. 64. Máscaras • Se aplican con la operación AND (&). • Sólo dejan ‘pasar’ cierta información. • Sirve para detectar qué bits están ‘levantados’ 1001001 0011000 0001000 & Máscara
  65. 65. Desplazamiento de bits • Simplemente desplaza bits • (número) << posiciones • 0b1 << 1 = 2 (0b10) • 0b101<< 2 = 20 (0b10100) • (número) >> posiciones • 0b1 >> 0 = 0 • 0b101 >> 2 = 1 (0b1)
  66. 66. Trabajando con bits • Crear un nuevo proyecto iOS llamado BitsHandler. • Construir la interfaz necesaria para que el usuario introduzca un número y se le muestre su representación binaria. • Pista:Aplicar una máscara con un sólo bit a 1, sucesivamente para ir obteniendo si el número introducido tiene o no el bit correspondiente ‘levantado’.
  67. 67. Trabajando con bits
  68. 68. Trabajando con bytes • Un byte son 8 bits • Un número hexadecimal son 4 bits • Un un byte son 2 números hexadecimales • (byte)8 = 0b00001000 = 0x08 • (byte)255 = 0b11111111 = 0xFF
  69. 69. Trabajando con bytes • Añadir al proyecto BitsHandler la capacidad para mostrar también los bytes por que está compuesto el número introducido. • Pista: Recordad que un ‘int’ contiene 32 bits y un byte 8.
  70. 70. Trabajando con bytes ¿Usable? ¿Cómodo?
  71. 71. Números hexadecimales • Facilitan el manejo a nivel de bits. • Toman valores desde 0 a 15 • Ocupan 4 bits • 0b00000000111111110000000011111111 = 0x00FF00FF • ¡¡Mucho más manejable!!
  72. 72. Números hexadecimales • Reescribir la función anterior utilizando notación hexadecimal en lugar de notación binaria para la extracción de los bytes.
  73. 73. Números hexadecimales • Reescribir la función anterior utilizando notación hexadecimal en lugar de notación binaria para la extracción de los bytes.
  74. 74. Números hexadecimales • El deviceToken se recibe en el AppDelegate como un array de bytes de números hexadecimales. • Escribir el código de la función description del objeto NSData. • Pista: Para representar un byte como dos números hexadecimales usad formateo: %02X
  75. 75. Números hexadecimales
  76. 76. Provider • Construir el array de bytes que se transmitirá a APNs. • Pista: Poner en práctica todo lo aprendido. • Pista: Utilizar un ByteArrayOutputStream para escribir bytes a un array • Pista: Comprobar el resultado con ByteArrayChecker.
  77. 77. Envío • Enviar los datos binarios a través del OutputStream del Socket. • Recibir la notificación!
  78. 78. Envío • Enviar los datos binarios a través del OutputStream del Socket. • Recibir la notificación!
  79. 79. Requisitos • Componer el payload de la notificación • Comunicación con API APNs • Comunicación segura (TLS) • Envío de datos en binario • Recepción de la respuesta en binario • Enviar notificaciones ‘en grupos’ • Obtener feedback periódicamente
  80. 80. Respuesta • ¡¡APNs SÓLO responde en caso de error!! • Componentes: • byte 8 • byte que indica el status • Identificador único que se envió junto con la notificación.
  81. 81. Códigos de error
  82. 82. Provider • Recibir y parsear la respuesta, si la hay. • Consejo: Siempre utilizar BufferedInputStream para leer datos de red. • Pista:APNs no devolverá nada en caso de haber aceptado la notificación. Utilizar el timeout del socket sslSock.setSoTimeout.
  83. 83. Provider
  84. 84. Requisitos • Componer el payload de la notificación • Comunicación con API APNs • Comunicación segura (TLS) • Envío de datos en binario • Recepción de la respuesta en binario • Enviar notificaciones ‘en grupos’ • Obtener feedback periódicamente
  85. 85. Puesta en común ¿Qué problemas presenta este provider?
  86. 86. Puesta en común ¿Qué problemas presenta este provider? ¿Cómo solucionarlos?
  87. 87. Mejorando el provider • Utilizar Asynchronous Jobs de Play! para procesar el envío de las notificaciones. • http://www.playframework.com/documentation/1.2/jobs • Opción 1: Procesar el envío de notificaciones en Jobs ‘inmediatos’. • Opción 2:Almacenar las notificaciones pendientes y enviarlas en grupos utilizando un Job periódico. • Tener en cuenta que si APNs rechaza una notificación, inmediatamente responde y cierra la conexión, por tanto, las siguientes notificaciones deben reenviarse.
  88. 88. • Componer el payload de la notificación • Comunicación con API APNs • Comunicación segura (TLS) • Envío de datos en binario • Recepción de la respuesta en binario • Enviar notificaciones ‘en grupos’ • Obtener feedback periódicamente Requisitos
  89. 89. Feedback • Informa de notificaciones rechazadas por los dispositivos. • Interfaz binario: • Recomendable consultarlo una vez al día.
  90. 90. • Componer el payload de la notificación • Comunicación con API APNs • Comunicación segura (TLS) • Envío de datos en binario • Recepción de la respuesta en binario • Enviar notificaciones ‘en grupos’ • Obtener feedback periódicamente Requisitos
  91. 91. Caso Práctico
  92. 92. Caso Práctico User Device iOS Android Notification iOS Android
  93. 93. Carlos Alonso Pérez Developer Twitter: @calonso LinkedIn: mrcalonso Mail: info@mrcalonso.com ¡Gracias!

×