SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
chema rodríguez
@durbon
mobile backed
app idealista
10 julio 2014
● api first!
● notificaciones push
● herramientas
● proceso de envío de notificaciones de
idealista
● ¿cómo trabajamos juntos?
/índice
“las APIs son el pegamento de las apps e
internet”
Mobile Backend = API + Notificaciones Push
API REST
● JSON (formato de facto)
● Stack en Java: Spring framework, Solr,
Oracle, MongoDB, Redis, ActiveMQ
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
¿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)
alertas de nuevos
inmuebles
1. email
2. notificaciones push
Push
Notifications
¿Cuántas notificaciones recibimos al día?
Tipo de notificaciones
1. Notificaciones masivas (todos)
2. Suscripción a un topic concreto
3. Notificaciones individuales al usuario
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
Herramientas disponibles: soluciones de terceros
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
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
● 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)
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
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)
¿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
¿preguntas?
desarrollo.imasd@idealista.com
¿quieres trabajar con nosotros? mándanos tu CV!

Contenu connexe

Similaire à Mobile backed app idealista

Taller Android seedrocket
Taller Android seedrocketTaller Android seedrocket
Taller Android seedrocketIsrael Camacho
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APICloudAppi
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup Arkhotech
 
PhoneGap
PhoneGapPhoneGap
PhoneGapcccori
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con PhonegapMauro Parra-Miranda
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Ignacio Muñoz Vicente
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilIng Erick Guardado
 
Comenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWSComenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWSAmazon Web Services LATAM
 
Curso introducción a Android
Curso introducción a AndroidCurso introducción a Android
Curso introducción a AndroidSlashMobility.com
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidAlberto Ruibal
 
Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...
Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...
Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...Luis Beltran
 
SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0Anderson Almidon
 

Similaire à Mobile backed app idealista (20)

Taller Android seedrocket
Taller Android seedrocketTaller Android seedrocket
Taller Android seedrocket
 
Google
GoogleGoogle
Google
 
App inventor
App inventorApp inventor
App inventor
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup
 
PhoneGap
PhoneGapPhoneGap
PhoneGap
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma Movil
 
Curso Desarrollo Android
Curso Desarrollo AndroidCurso Desarrollo Android
Curso Desarrollo Android
 
Comenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWSComenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWS
 
Android: introducción
Android: introducciónAndroid: introducción
Android: introducción
 
Curso introducción a android
Curso introducción a android   Curso introducción a android
Curso introducción a android
 
Curso introducción a Android
Curso introducción a AndroidCurso introducción a Android
Curso introducción a Android
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
Seminario (1)
Seminario (1)Seminario (1)
Seminario (1)
 
Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...
Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...
Jornada 10 años ASP NET en Español - Implementación de Notificaciones Push...
 
SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0
 
10 apps
10 apps10 apps
10 apps
 

Dernier

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Dernier (16)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Mobile backed app idealista

  • 2. ● api first! ● notificaciones push ● herramientas ● proceso de envío de notificaciones de idealista ● ¿cómo trabajamos juntos? /índice
  • 3.
  • 4. “las APIs son el pegamento de las apps e internet”
  • 5. Mobile Backend = API + Notificaciones Push
  • 6. API REST ● JSON (formato de facto) ● Stack en Java: Spring framework, Solr, Oracle, MongoDB, Redis, ActiveMQ
  • 7. 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
  • 8. ¿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)
  • 9. alertas de nuevos inmuebles 1. email 2. notificaciones push
  • 11. Tipo de notificaciones 1. Notificaciones masivas (todos) 2. Suscripción a un topic concreto 3. Notificaciones individuales al usuario
  • 12. 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
  • 14. 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
  • 15. 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
  • 16. ● 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)
  • 17. 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
  • 18. 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)
  • 19. ¿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