Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducción al consumo de Web Servieces desde Android

juli4nn
November 25, 2017

Introducción al consumo de Web Servieces desde Android

Charla para el TechDay de ElTour Rosario 2017

juli4nn

November 25, 2017
Tweet

More Decks by juli4nn

Other Decks in Programming

Transcript

  1. Web Services Introducción al Consumo de Webservices desde Android Tecnología

    que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Tech Day Rosario 2017
  2. Web Services Introducción al Consumo de Webservices desde Android •

    Compartir datos y operaciones entre diferentes plataformas independientemente de sus propiedades. • Preferimos protocolos y estándares basados en texto plano • Integrar diferentes servicios y minimizar infraestructura Tech Day Rosario 2017 ¿ Para qué ?
  3. Web Services Introducción al Consumo de Webservices desde Android •

    SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call) • WSDL (Web Services Description Language) • UDDI (Universal Description, Discovery and Integration) • REST (Representational State Transfer) • GraphQL • Otros Tech Day Rosario 2017 Estándares
  4. Buenas Prácticas Introducción al Consumo de Webservices desde Android •

    Usar siempre SSL • Todos los elementos tienen su propio ID • Uniformidad - Métodos que tienen similares funcionalidades, usan mismo nombre/url • Sencillez - Desde el lado del servidor y del cliente (Mantenible) • Pensar en la independencia de plataformas • Disponibilidad / Fiabilidad • Claridad + Documentación • Reutilización de interfaces Tech Day Rosario 2017
  5. Buenas Prácticas - Nunca es demasiado Introducción al Consumo de

    Webservices desde Android • Utilizar JSON preferentemente, XML como segunda opción • camelCase + evitar acentos y caracteres especiales ◦ O snake_case, pero usar siempre el mismo • Tener cuidado con los campos que se devuelven • Versionar utilizando un parámetro en la URL, no con encabezados • Devolver errores que se puedan utilizar / Entender ◦ Definir errores estándares para errores comunes • Alias para consultas complejas comunes Tech Day Rosario 2017
  6. Buenas Prácticas - XML vs JSON Introducción al Consumo de

    Webservices desde Android Tech Day Rosario 2017
  7. Operaciones básicas Introducción al Consumo de Webservices desde Android •

    POST (crear) • GET (leer / buscar /consultar) • PUT (editar) • DELETE (eliminar) Tech Day Rosario 2017 REST
  8. Caché y Performance Introducción al Consumo de Webservices desde Android

    • GET puede ser cacheado, pero no el POST • Especificar max-age (Separado para público y privado) • GET con condicionales (Enviar marca de tiempo con última modificación) • Reducir pedidos y respuestas basado en caché • Estado completo VS redescubrimiento (Datos mínimos en cada pedido o completo) Tech Day Rosario 2017
  9. Android Introducción al Consumo de Webservices desde Android A tener

    en cuenta: - El acceso a Internet no está garantizado - La conexión puede ser mala - Cada pedido es una potencial falla - Qué tan actualizada necesitamos la información ? - Qué uso se le da a la aplicación ? - Disponibilidad de la respuesta / Acceso al servidor Tech Day Rosario 2017
  10. Android Introducción al Consumo de Webservices desde Android Consumo de

    Webservices: - No sabemos si la respuesta está disponible - El tiempo de respuesta es indeterminado Utilizamos tareas asincrónicas / nuevo hilo para evitar bloqueo de la interfaz de usuario, lentitud o errores. Pensando en la experiencia del usuario, que sepa lo que está pasando en todo momento. Tech Day Rosario 2017
  11. Hilos en Android Introducción al Consumo de Webservices desde Android

    Algunas opciones - AsyncTask - Threads - Librerías - Voley - Retrofit - ... Tech Day Rosario 2017
  12. Recursos Introducción al Consumo de Webservices desde Android - https://www.hurl.it/

    (Testear pedidos http) - https://jsonplaceholder.typicode.com/ ( Fake Online REST API for Testing and Prototyping) - https://reqres.in/ - https://resttesttest.com/ - https://any-api.com/ (Documentation and Test Consoles for Over 500 Public APIs) - https://www.mockable.io/ - https://fakerestapi.azurewebsites.net/ - https://github.com/toddmotto/public-apis/blob/master/README.md Tech Day Rosario 2017
  13. AsyncTask Introducción al Consumo de Webservices desde Android Clase auxiliar

    proporcionada por Android para ejecutar una tarea asincrónica. Alternativa limpia y fácil al antiguo uso de Threads. public class MiTarea extends AsyncTask<Params, Progress, Result> {} Parámetros: Params: Datos que pasaremos al comenzar la tarea Progress: Parámetros que necesitaremos para actualizar la UI. Result: Datos que devolvemos una vez terminada la tarea. Método fundamental: protected Result doInBackground(Params... p) {} Tech Day Rosario 2017
  14. Volley Introducción al Consumo de Webservices desde Android Herramienta alternativa

    para tareas asincrónicas. Características: SIMPLE Caché Mem/disco + Velocidad Colas + Peticiones en serie Vistas recicladas pueden llegar a mostrar algo que no debe Herramientas de debug y traceo Preparado para imágenes Limpieza de memoria agresiva Uso avanzado de características HTTP necesita código a medida Tech Day Rosario 2017