mobile backed app idealista

20
chema rodríguez @durbon mobile backed app idealista 10 julio 2014

Upload: jose-maria-rodriguez

Post on 13-Jun-2015

1.903 views

Category:

Technology


2 download

DESCRIPTION

Pequeña introducción para ironhack del proceso de notificaciones push creado adhoc para la app de idealista

TRANSCRIPT

Page 1: Mobile backed  app idealista

chema rodríguez@durbon

mobile backed app idealista

10 julio 2014

Page 2: Mobile backed  app idealista

● api first!● notificaciones push● herramientas● proceso de envío de notificaciones de

idealista● ¿cómo trabajamos juntos?

/índice

Page 3: Mobile backed  app idealista
Page 4: Mobile backed  app idealista

“las APIs son el pegamento de las apps e internet”

Page 5: Mobile backed  app idealista

Mobile Backend = API + Notificaciones Push

Page 6: Mobile backed  app idealista

API REST

● JSON (formato de facto)● Stack en Java: Spring framework, Solr,

Oracle, MongoDB, Redis, ActiveMQ

Page 7: Mobile backed  app idealista

API: Acciones y consultas

● Búsqueda geográfica y por zona ● Información completa de cada anuncio● Usuario: favoritear, descartar, comentar,

contactar, guardar alertas● Subir fotos

Page 8: Mobile backed  app idealista

¿API pública?

● Ahora, no. Próximamente abierta para todos● API V3 sólo para las apps de iOS y Android● Disponible la V1 (sólo búsqueda geográfica)

Page 9: Mobile backed  app idealista

alertas de nuevos inmuebles

1. email

2. notificaciones push

Page 10: Mobile backed  app idealista

Push Notifications

¿Cuántas notificaciones recibimos al día?

Page 11: Mobile backed  app idealista

Tipo de notificaciones

1. Notificaciones masivas (todos)

2. Suscripción a un topic concreto

3. Notificaciones individuales al usuario

Page 12: Mobile backed  app idealista

Planteamiento inicial y riesgos

● Registro en APNS del dispositivo● Sincronización entre usuarios: relacionar

usuario idealista con su dispositivo● Badge del número de notificaciones● Límites de envío

Page 13: Mobile backed  app idealista

Herramientas disponibles: soluciones de terceros

Page 14: Mobile backed  app idealista

Herramientas disponibles: soluciones de terceros

Ventajas● No necesitas tener un backend propio● Barato si no requieres muchos envíos● SDKs y clientes específicos para iOS o Android. Fácil integración● Paneles de desarrolladores: gestión tipos de push● Integración con plataformas en la nube (Amazon o Google)

Inconvenientes:● Sincronización usuarios BBDD propias fuera de la del servicio● Costes en altos volúmenes de envío

Page 15: Mobile backed  app idealista

Solución adhoc

Librería JAVAPNS https://code.google.com/p/javapns/

● Encapsula la comunicación con Apple Push Notification Service(APNS)● gestión del certificado de nuestra app (sandbox y production)● Gestión de errores● Envío multihilo de mensajes

Page 16: Mobile backed  app idealista

● API para el registro de usuarios y activación de alertas

● Construcción de una librería propia (dependencia Maven) de composición de notificaciones (Apple y Android).○ Combinamos JAVAPNS y GCM (también tenemos Android)○ Creamos el mismo mensaje independiente de la plataforma○ Unificamos la gestión de errores de cada plataforma

● Proceso de envío de notificaciones○ Consume alertas que notificar a queue de JMS○ Consultar usuario-token device para el envío○ Construcción de mensaje (BBDD y librería)○ Feedback de errores (canonical deviceID)

Page 17: Mobile backed  app idealista

PushMessage

String localizedAlert;

List<String> localizedArgs;

Map<String, String> customParameters;

int badge;

{

action = newAds;

adId = 25403184;

adsNumber = 1;

alertId = 513466;

aps = {

alert = {

"loc-args" = (

1,

"pisos, centro hasta 150.000"

);

"loc-key" = "%@ anuncios: %@";

};

badge = 0;

sound = default;

};

typology = homes;

}

"loc-key" debe de estar en los ficheros localizables de la app. el valor

"loc-args" son los posibles argumentos que puede tener el texto:

Payload

Page 18: Mobile backed  app idealista

Componentes● Tablas de base de datos para la gestión de dispositivos y registro de

notificaciones enviadas: dispositivos activos, log de notificaciones enviadas/falladas/reintentadas, Contador del badge (usado para el envío del badge a iOS).

● Cola JMS a los que estamos suscritos para enviar las alertas● proceso app de envío de notificaciones escalable● proceso de reenvío de notificaciones fallidas● proceso de feedback para el de-registro de dispositivos (cada

madrugada)

Page 19: Mobile backed  app idealista

¿cómo trabajamos juntos?

● documentación API● entornos de testing (pre producción)● sandbox para APIs aún en desarrollo● test de integración con CORE de idealista● y sobre todo ser ágiles + mucha

comunicación

Page 20: Mobile backed  app idealista

¿preguntas?

[email protected]¿quieres trabajar con nosotros? mándanos tu CV!