SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
CONECTA TU APP ANDROID
CON SERVICIOS DE INTERNET
Toni Martínez
@toniousli
/in/tonimartinezcarballo
tonimc
FREELANCE DEVELOPER
tonimc@gmail.com
SÓLO UNA VISIÓN
PERSONAL
SOFTWARE IS NOT
ABOUT FRAMEWORKS
AGENDA
▸ ¿Qué cosas son importantes en una app?
▸ Servicios de internet
▸ REST
▸ Librerías
▸ Tools
▸ Diseñar nuestra app teniendo en cuenta todo esto
▸ Proceso propio al desarrollar una app que se conecta a una API
▸ Show me the code!
▸ Referencias y links de interés
¿QUÉ ES IMPORTANTE EN UNA APP?
EXPERIENCIA DE USUARIO
APIDE NUESTRA PARTE SÓLO PODEMOS LIDIAR CON EL CLIENTE
MANEJO DE LA UI- BUEN MANEJO DEL THREAD DE UI
- EVITAR FUGAS DE MEMORIA (MEMORY LEAKS)
- EVITAR APP CRASHES
TEXTO
SERVICIOS DE INTERNET
+90%
APPS USAN INTERNET
¿ALGUIEN ENTIENDE UN
SMARTPHONE SIN INTERNET?
REST
▸ Definida en el año 2000 como tesis doctoral por Roy
Fielding
▸ Interfaz entre sistemas que utilice directamente HTTP
para obtener datos o indicar la ejecución de
operaciones sobre los datos, en cualquier formato (XML,
JSON, etc).
▸ No son necesarias abstracciones adicionales de los
protocolos basados en patrones de intercambio de
mensajes (SOAP)
Fuente: https://es.wikipedia.org/wiki/Representational_State_Transfer
REST
▸ Verbos HTTP
▸ GET : Read
▸ POST : Insert
▸ PUT : Update
▸ DELETE : Remove
▸ Hypermedia HATEOS
▸ Énfasis en el recurso y no en la
operación
▸ No usar verbos:
▸ /getUsers ——> GET /users
▸ /addUser ——> POST /users
▸ Usar nombres en plural
▸ Ejemplo: GET /users/13
REST
Fuente: http://petstore.swagger.io/
REST: CONSIDERACIONES A TENER EN CUENTA
▸ Velocidad
▸ Errores de red
▸ Offline first
▸ Sincronización
▸ Seguridad:
▸ HTTPS
▸ Token/oAuth…
LIBRERÍAS: CLIENTE HTTP
▸ Apache HttpClient (Eliminada ya en SDK 23 - Android 6.0)
▸ OkHttp
▸ Volley (Google)
▸ RetroFit: Librería específica para desarrollar clientes REST
RETROFIT
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
Retrofit 1.9 a 2.0: https://futurestud.io/blog/retrofit-2-upgrade-guide-from-1-9
- Url dinámicas
- OkHttp integrado
- Interceptors: https://github.com/square/okhttp/wiki/Interceptors
- Request Execution
- Request Exception
- RX Java
RETROFIT: CREACIÓN CLIENTE DEL SERVICIO
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
RETROFIT: OBTENIENDO DATOS
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
RETROFIT: TOKEN AUTHENTICATION
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
RETROFIT: LLAMADAS SÍNCRONAS Y ASÍNCRONAS
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
RETROFIT: QUERY STRING
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
RETROFIT: ENVÍO DE OBJETOS EN BODY
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
RETROFIT: CUSTOM HEADERS
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
RETROFIT: DEBUG
Fuente: https://futurestud.io/blog/retrofit-getting-started-and-android-client
TOOLS: POSTMAN
IMPLEMENTACIÓN RÁPIDA DE API RESTFUL PARA DEMO
HTTPS://USERS-GDGOURENSE.FIREBASEIO.COM/
Como funciona Firebase como API Rest: https://www.firebase.com/docs/rest/api/
DISEÑAR NUESTRA APP
PENSANDO EN TODO ESTO
ACTIVITY
VIEW
PRESENTER
USE
CASE
USE
CASE
USE
CASE
DOMAIN
REPOSITORIO
REPOSITORIO
DATASOURCE
BBDD
DATASOURCE
REST
DATASOURCE
FILES
Clean Architecture
MAPPER
MAPPER
MAPPER
Hilo propioHilo UI
PATRÓN REPOSITORIO
Use a repository to separate the logic that
retrieves the data and maps it to the entity
model from the business logic that acts on the
model. The business logic should be agnostic
to the type of data that comprises the data
source layer. For example, the data source layer
can be a database, a SharePoint list, or a Web
service.
Fuente: https://msdn.microsoft.com/en-us/library/ff649690.aspx
TEXTO
PROCESO PROPIO DE APP QUE SE CONECTA A API
▸ Dos caminos
▸ Empezamos por la interfaz??
▸ Creación a partir de definición de servicio de datos
dummy
▸ Empezamos por la conexión al servicio?
▸ Unit testing
TEXTO
UNIT TESTING: EMULANDO SERVICIO - MOCK WEBSERVER
TEXTO
UNIT TESTING
SHOW ME THE CODE !!!
https://github.com/tonimc/android-clean-api-client
http://es.slideshare.net/tonimc/api-rest-client-en-android
TEXTO
REFERENCIAS
▸ https://futurestud.io/blog/retrofit-getting-started-and-android-client
▸ https://github.com/PaNaVTEC/Clean-Contacts
▸ http://es.slideshare.net/jmpereirag/limpiando-espero-la-arquitectura-que-
yo-quiero
▸ http://es.slideshare.net/flipper83/presistiendo-que-es-gerundio-my-
storing-story
▸ http://es.slideshare.net/PedroVicenteGmezSnch/effective-android-ui-
spanish
▸ http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
GRACIAS!!

Más contenido relacionado

Similar a Cómo conectar tu app Android a servicios de internet

Construye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web ApiConstruye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web ApiHernan Guzman
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTBEEVA_es
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteCarlos Toxtli
 
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
 
sistemas basados en web
sistemas basados en websistemas basados en web
sistemas basados en webRoberto Calero
 
Cloudcamp - Azure App Service Web Apps
Cloudcamp - Azure App Service Web AppsCloudcamp - Azure App Service Web Apps
Cloudcamp - Azure App Service Web AppsHernan Guzman
 
Globant development week / Progressive Web Apps
Globant development week / Progressive Web AppsGlobant development week / Progressive Web Apps
Globant development week / Progressive Web AppsGlobant
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdfJosé Moreno
 
Documento - Aplicaciones para internet
Documento - Aplicaciones para internetDocumento - Aplicaciones para internet
Documento - Aplicaciones para internetIntComp-ULS
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y PythonCarlos Toxtli
 
Prog. web. equipo 5
Prog. web. equipo 5Prog. web. equipo 5
Prog. web. equipo 5Luis Mendez
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryGonzalo Chacaltana
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"www.encamina.com
 
REST Versioning Architecture with ASP.NET MVC Web API v1.2
REST Versioning Architecture with ASP.NET MVC Web API v1.2REST Versioning Architecture with ASP.NET MVC Web API v1.2
REST Versioning Architecture with ASP.NET MVC Web API v1.2Rodrigo Ezequiel Liberoff V
 

Similar a Cómo conectar tu app Android a servicios de internet (20)

Construye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web ApiConstruye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web Api
 
Google
GoogleGoogle
Google
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamente
 
Effective Network Layer: API lovers and Apps
Effective Network Layer: API lovers and AppsEffective Network Layer: API lovers and Apps
Effective Network Layer: API lovers and Apps
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
sistemas basados en web
sistemas basados en websistemas basados en web
sistemas basados en web
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Cloudcamp - Azure App Service Web Apps
Cloudcamp - Azure App Service Web AppsCloudcamp - Azure App Service Web Apps
Cloudcamp - Azure App Service Web Apps
 
Globant development week / Progressive Web Apps
Globant development week / Progressive Web AppsGlobant development week / Progressive Web Apps
Globant development week / Progressive Web Apps
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 
Documento - Aplicaciones para internet
Documento - Aplicaciones para internetDocumento - Aplicaciones para internet
Documento - Aplicaciones para internet
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
Prog. web. equipo 5
Prog. web. equipo 5Prog. web. equipo 5
Prog. web. equipo 5
 
Kit para crear un Sitio Web Móvil asombroso!
Kit para crear un Sitio Web Móvil asombroso!Kit para crear un Sitio Web Móvil asombroso!
Kit para crear un Sitio Web Móvil asombroso!
 
MBaaS - Parse
MBaaS - ParseMBaaS - Parse
MBaaS - Parse
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
REST Versioning Architecture with ASP.NET MVC Web API v1.2
REST Versioning Architecture with ASP.NET MVC Web API v1.2REST Versioning Architecture with ASP.NET MVC Web API v1.2
REST Versioning Architecture with ASP.NET MVC Web API v1.2
 

Último

Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTGestorManpower
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 

Último (20)

Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SST
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 

Cómo conectar tu app Android a servicios de internet