Entradas

Mostrando las entradas de agosto, 2017

¿Qué es Jetpack Compose?

Jetpack Compose es la biblioteca de IU de Android más reciente que ha tomado la plataforma de desarrollo móvil de Android por sorpresa. Con Jetpack Compose, los desarrolladores pueden construir aplicaciones de alta calidad y sofisticadas que son más fáciles de mantener y escalar. La introducción de Jetpack Compose representa un cambio significativo en la forma en que se crea la interfaz de usuario de una aplicación de Android. En lugar de trabajar con una jerarquía de vistas de Android, Jetpack Compose utiliza un enfoque de programación declarativa para definir la IU de una aplicación. Esto significa que los desarrolladores pueden escribir código que describe cómo debe verse la interfaz de usuario de una aplicación, en lugar de manipular directamente los objetos de vista. Jetpack Compose también viene con una serie de herramientas que facilitan el diseño y la personalización de la interfaz de usuario de una aplicación. Desde una amplia variedad de widgets personalizados hasta la capaci...

Cómo pasar parámetros a un JobService

En mi post anterior expliqué como crear un JobSerivce, este job service recibe parámetros; Para pasar parámetros al JobService usamos la clase PersistableBundle  de la siguiente manera. private void requestAlertsToDelete( int [] alerts) { Alerts alertsRequest = Alerts. getAlertsRequest ( SessionManager. getAuth (getActivity()), new int []{}, alerts); PersistableBundle bundle = new PersistableBundle(); bundle.putString(Constants. INSTANCE .getREQUEST_PARAMS(), alertsRequest.toJSON()); JobScheduler jobScheduler = (JobScheduler) getActivity() .getSystemService(Context. JOB_SCHEDULER_SERVICE ); JobInfo jobInfo = new JobInfo.Builder( 0 , new ComponentName(getActivity(), AlertJobService. class )) .setExtras(bundle) .setRequiredNetworkType(JobInfo. NETWORK_TYPE_ANY ) .build(); if (jobScheduler != null ) { jobScheduler.schedule(jobInfo); } Esta clase acepta tipos básicos, e...

Reemplazando Intent Services por Job Services

Imagen
Android Oreo sería el mejor de todas las versiones de Android hasta ahora. La verdad la verdad, no lo comparto. Las notificaciones de aplicaciones en segundo plano son molestas e inútiles, los mensajes en apps de mensajes como WhatsApp llegan con retraso, y así por el estilo sin embargo, este post no es para hablar del sistema operativo como tal. Con los cambios hechos los Googlers te sugieren usar  JobScheduler para ejecutar tareas en segundo plano ,  lo resalto por eso, para ejecutar así en background, si la app esta en foreground seguimos usando intent services o los mecanismos de siempre. JobScheduler  fue introducido en Lollipop (API 21) pero ahora es cuando me he dado la tarea de aprender sobre JS al ver los ANR en Android Oreo de mi app. La primera estrellada, JobService trabaja en el Main Thread (UI Thread) no leí esa parte y pensaba que funcionaba como un IntentService  luego de meter código de networking en onStartJob me apareció el stack trace de ...