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é ?
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
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
• 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
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
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
(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
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
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