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

Así trabaja y así trabajamos con WorkManager

Así trabaja y así trabajamos con WorkManager

Un recuento de qué es WorkManager, cómo internamente trabaja y en qué contextos del día a día podríamos usarlo.
Adicional, se comparten ejemplos de su uso y se generan discusiones afines.

Carlos Daniel

February 06, 2019
Tweet

More Decks by Carlos Daniel

Other Decks in Programming

Transcript

  1. Así trabajamos con WorkManager Carlos Daniel Munoz Idarraga Lead Android

    Developer - Webcat LLC TWTR: @cdmunoz Medium: @cdmunozi
  2. WorkManager • Android Architecture Component → Colección de librerías •

    Parte del Jetpack → Colección de componentes de Android
  3. WorkManager • Android Architecture Component → Colección de librerías •

    Parte del Jetpack → Colección de componentes de Android • Ejecuta trabajo en background que puede ser diferido (deferrable run)
  4. 1. Por qué WorkManager? ➔ Acelera el desarrollo ➔ Menos

    boilerplate ➔ Se integra fácil al contexto de la app
  5. 1. Por qué WorkManager? ➔ Acelera el desarrollo ➔ Menos

    boilerplate ➔ Se integra fácil al contexto de la app ➔ Robustez
  6. Necesitamos identificar entonces nuestros contextos y situaciones para así trabajar

    con WorkManager o alguna otra tool WorkManager siempre garantiza finalización del proceso
  7. Necesitamos identificar entonces nuestros contextos y situaciones para así trabajar

    con WorkManager o alguna otra tool WorkManager siempre garantiza finalización del proceso WorkManager respeta las restricciones de procesamiento en background del SO y sin impactar el consumo de batería
  8. Necesitamos identificar entonces nuestros contextos y situaciones para así trabajar

    con WorkManager o alguna otra tool Nota Por qué no trabajar con background services?. WorkManager siempre garantiza finalización del proceso WorkManager respeta las restricciones de procesamiento en background del SO y sin impactar el consumo de batería
  9. Necesitamos identificar entonces nuestros contextos y situaciones para así trabajar

    con WorkManager o alguna otra tool Nota Por qué no trabajar con background services?. … y si quiero hacer seguimiento del proceso? WorkManager siempre garantiza finalización del proceso WorkManager respeta las restricciones de procesamiento en background del SO y sin impactar el consumo de batería
  10. Necesitamos identificar entonces nuestros contextos y situaciones para así trabajar

    con WorkManager o alguna otra tool Nota Por qué no trabajar con background services?. … y si quiero hacer seguimiento del proceso? … y si el usuario cierra la app, necesita completarse el proceso? WorkManager siempre garantiza finalización del proceso WorkManager respeta las restricciones de procesamiento en background del SO y sin impactar el consumo de batería
  11. 2. Situaciones ➔ Procesamiento de imágenes ➔ Renovación de token

    de sesión ➔ Verificación y chequeo de nuevas versiones de la app
  12. 2. Situaciones ➔ Procesamiento de imágenes ➔ Renovación de token

    de sesión ➔ Verificación y chequeo de nuevas versiones de la app ➔ Sincronización de datos en la aplicación con un server en nube
  13. Por qué WorkManager? Garantía de procesamiento, respetando restricciones, compatibilidad y

    eficiencia de la batería. Definición de Constraints para modos de ejecución. Opción de ejecución periódica o única incluyendo retry. La tarea se persiste así el dispositivo se reinicie o se haya hecho un force-stop Permite encadenar trabajos de forma secuencial Permite de forma nativa o a través de otras herramientas compartir el estado del trabajo para actualizar la UI
  14. Por qué WorkManager? Garantía de procesamiento, respetando restricciones, compatibilidad y

    eficiencia de la batería. Definición de Constraints para modos de ejecución. Opción de ejecución periódica o única incluyendo retry. La tarea se persiste así el dispositivo se reinicie o se haya hecho un force-stop Permite encadenar trabajos de forma secuencial Permite de forma nativa o a través de otras herramientas compartir el estado del trabajo para actualizar la UI
  15. Por qué WorkManager? Garantía de procesamiento, respetando restricciones, compatibilidad y

    eficiencia de la batería. Definición de Constraints para modos de ejecución. Opción de ejecución periódica o única incluyendo retry. La tarea se persiste así el dispositivo se reinicie o se haya hecho un force-stop Permite encadenar trabajos de forma secuencial Permite de forma nativa o a través de otras herramientas compartir el estado del trabajo para actualizar la UI
  16. Por qué WorkManager? Garantía de procesamiento, respetando restricciones, compatibilidad y

    eficiencia de la batería. Definición de Constraints para modos de ejecución. Opción de ejecución periódica o única incluyendo retry. La tarea se persiste así el dispositivo se reinicie o se haya hecho un force-stop Permite encadenar trabajos de forma secuencial Permite de forma nativa o a través de otras herramientas compartir el estado del trabajo para actualizar la UI
  17. Por qué WorkManager? Garantía de procesamiento, respetando restricciones, compatibilidad y

    eficiencia de la batería. Definición de Constraints para modos de ejecución. Opción de ejecución periódica o única incluyendo retry. La tarea se persiste así el dispositivo se reinicie o se haya hecho un force-stop Permite encadenar trabajos de forma secuencial Permite de forma nativa o a través de otras herramientas compartir el estado del trabajo para actualizar la UI
  18. Por qué WorkManager? Garantía de procesamiento, respetando restricciones, compatibilidad y

    eficiencia de la batería. Definición de Constraints para modos de ejecución. Opción de ejecución periódica o única incluyendo retry. La tarea se persiste así el dispositivo se reinicie o se haya hecho un force-stop Permite encadenar trabajos de forma secuencial Permite de forma nativa o a través de otras herramientas compartir el estado del trabajo para actualizar la UI
  19. … Pueden enviarse parámetros a los Worker? Recibe como parametro

    de entrada objetos Data. Mapa Primitivos y arrays Maximo 10 Kb También puede enviarse datos de salida del Worker
  20. … Pueden enviarse parámetros a los Worker? Recibe como parametro

    de entrada objetos Data. Mapa Primitivos y arrays Maximo 10 Kb También puede enviarse datos de salida del Worker Tip Si se necesita pasarse más datos de los que caben en un Data object, entonces puede usarse Room para persistirlos/leerlos desde allí.
  21. Cómo se ejecuta un Work? Las Constraints permiten definir condiciones

    mínimas de ejecución. El WorkRequest define cómo y cuándo ejecutarlo El Worker define lo que hace el proceso.
  22. Cómo se ejecuta un Work? Las Constraints permiten definir condiciones

    mínimas de ejecución. El WorkRequest define cómo y cuándo ejecutarlo El Worker define lo que hace el proceso.
  23. Cómo se ejecuta un Work? Las Constraints permiten definir condiciones

    mínimas de ejecución. El WorkRequest define cómo y cuándo ejecutarlo El Worker define lo que hace el proceso. Tip El tiempo mínimo para ejecución es de 15 Mins.
  24. Cómo trabaja el Worker Behind the scenes 1. El proceso

    se ejecuta fuera del main thread → Extender de Worker 2. Hay garantía de que el trabajo se ejecuta 3. Ejecución según API level
  25. Cómo trabaja el Worker Behind the scenes Crédito: Working with

    WorkManager Presentation Android Developer Summit 2018