Componentes básicos de Android Jetpack

Android Jetpack es un conjunto de componentes de software, bibliotecas , herramientas y orientación para ayudar a desarrollar aplicaciones sólidas de Android . Lanzado por Google en 2018 , Jetpack comprende bibliotecas de soporte de Android existentes, componentes de arquitectura de Android con una adición de la biblioteca KTX de Android como una sola entidad modular. Hoy en día, casi el 99 % de las aplicaciones presentes en Google Play Store utilizan las bibliotecas de Android Jetpack. Los componentes centrales del sistema de las aplicaciones de Android residen en el área de la Fundación de Jetpack. Extensión Kotlinpara el soporte de idiomas y las bibliotecas de prueba también están presentes en él. Además, las bibliotecas presentes en este componente proporcionan compatibilidad con versiones anteriores. Este artículo explica en detalle todas y cada una de las bibliotecas del componente Foundation. Jetpack consta de una amplia colección de bibliotecas que se construyen de manera que funcionen juntas y creen aplicaciones móviles sólidas. Sus componentes de software se han dividido en 4 categorías:

  1. Componentes de cimentación
  2. Componentes de arquitectura
  3. Componentes de comportamiento
  4. Componentes de la interfaz de usuario

Además, la siguiente es la lista de todos los componentes de la Fundación :

  1. AppCompat
  2. Android KTX
  3. Prueba
  4. Multidex

Formas de incluir bibliotecas de Android Jetpack en la aplicación

Agregue el repositorio de Google en el archivo build.gradle del proyecto de la aplicación.

todos los proyectos {

  repositorios {

      Google()

      mavenCentral()

      }

}

Todos los componentes de Jetpack están disponibles en el repositorio de Google Maven, inclúyelos en el archivo build.gradle

todos los proyectos {

   repositorios {

       Google()

       mavenCentral()

   }

}

Componentes de cimentación

1. Compatible con aplicaciones

La biblioteca AppCompat en Jetpack Foundation incluye todos los componentes de la biblioteca v7 . Esto incluye AppCompat, Cardview , GridLayout, MediaRouter, Palette, RecyclerView , Renderscript, Preferences , Leanback, Vector Drawable, Design, Custom tabs , etc. Además, esta biblioteca brinda soporte de implementación para la interfaz de usuario de diseño de materiales, lo que hace que AppCompat sea muy útil para el desarrolladores Las siguientes son algunas áreas clave de una aplicación de Android que son difíciles de construir pero que pueden diseñarse sin esfuerzo usando la biblioteca AppCompat:

  • Barra de aplicaciones: el elemento superior de una aplicación es su barra de aplicaciones/barra de acciones, que generalmente contiene el nombre de la aplicación o el nombre de la actividad actual. La biblioteca AppCompat facilita a los desarrolladores diseñar una barra de aplicaciones más personalizada. Proporciona una barra de herramientas para diseñar y pintar el fondo de la barra de la aplicación con colores primarios o fondo degradado (múltiples colores).
  • Cajón de navegación: es el menú del panel izquierdo que proporciona una guía de navegación fácil de la aplicación. Este es un patrón de diseño muy común hoy en día, por lo que es necesario agregarlo con mucha frecuencia. Al usar la biblioteca AppCompat, es muy sencillo administrar los colores y los íconos del cajón de navegación . Para crear un cajón de navegación, los desarrolladores solo necesitaban agregar un DrawerLayout con la vista principal y un NavigationView. Además, esta biblioteca también ayuda a administrar el estado activo de cada elemento del menú con recursos XML.
  • Permisos: en la versión más nueva de AndroidOS, las aplicaciones solicitan permiso a los usuarios para acceder al hardware del dispositivo, como la cámara, el micrófono, etc., o para realizar ciertas acciones. Las operaciones posteriores realizadas por la aplicación dependen de la elección seleccionada por el usuario, es decir, si se otorga o no el permiso. Sin embargo, este no era el caso antes de la versión Marshmallow (6.0) del sistema operativo Android. En versiones anteriores, los desarrolladores no necesitan escribir ningún código en el SDK que solicite permiso a los usuarios y verifique si se otorga o no. Este problema ha sido resuelto por ContextCompat (un componente de AppCompat) que verifica el estado de permiso de una operación y solicita al usuario si es necesario, independientemente de la versión del sistema operativo Android.
  • Recursos: Anteriormente, se necesitaban más líneas de código para diseñar los recursos XML como recursos dibujables que son compatibles con una versión específica del sistema operativo Android. Usando ContextCompat (parte de AppCompat), la cantidad de líneas de código se reduce drásticamente y también se elimina la dependencia de los elementos de diseño en la versión del sistema operativo.
  • Cuadro de diálogo: la biblioteca AppCompat tiene un componente AppCompatDialog que es similar a la barra de herramientas. Ayuda a crear el cuadro de diálogo de diseño de materiales en una aplicación.
  • Compartir acciones: es posible compartir cualquier documento/archivo de una aplicación a otra plataforma gracias a la biblioteca AppCompat. La lista de acciones para compartir como Gmail, Facebook, mensajes, etc. que aparece en la pantalla cuando se selecciona un documento/archivo para compartir se proporciona en la barra de herramientas Actividad de la biblioteca de AppCompat .

2 Android KTX

Esta biblioteca es la única entre los componentes básicos que se presentó por primera vez con el lanzamiento de Jetpack. Android KTX es una colección de extensiones de Kotlin que están diseñadas para facilitar a los desarrolladores la eliminación de código repetitivo y la escritura de código conciso mientras desarrollan aplicaciones de Android con el lenguaje Kotlin. Aquí KTX en el nombre significa Kotlin Extensions . A continuación se muestra un ejemplo de un fragmento de código sin usar y después de usar la biblioteca Android KTX:

Fragmento de código de SQLite sin usar la biblioteca KTX:

db.beginTransaction()

probar {

 // insertar datos

 db.setTransactionSuccessful()

finalmente {

 db.endTransaction()

}

El código anterior después de usar la biblioteca KTX:

db.transacción {

   // insertar datos

}

Este ejemplo muestra claramente cómo la biblioteca KTX de Android redujo las líneas de código y organizó con elegancia las transacciones de SQLite mediante una función simple junto con una lambda final. Muchas de las bibliotecas jetpack están vinculadas con varios módulos KTX de Android. Por ejemplo, se pueden usar las siguientes extensiones mientras se trabaja con el componente de navegación de Android Jetpack.  

  • android.arch.navigation:navegación-común-ktx
  • android.arch.navigation:navegación-fragmento-ktx
  • android.arch.navigation:navegación-tiempo de ejecución-ktx
  • y android.arch.navigation:navegación-ui-ktx

3. prueba

Esta parte del componente básico incluye el marco de prueba de la interfaz de usuario de Espresso para la prueba de la interfaz de usuario en tiempo de ejecución y AndroidJUnitRunner con el fin de realizar pruebas unitarias de las aplicaciones de Android. Espresso se utiliza principalmente para probar elementos de la interfaz de usuario. Además, AndroidJUnitRunner realiza pequeñas pruebas sobre la lógica de todos y cada uno de los métodos. Asegura la prueba rápida y precisa de una parte específica de la lógica dentro del código del proyecto.

4. Multidex

La propiedad multidex de Android es una de las características más importantes al desarrollar aplicaciones móviles. Dex es el formato del archivo ejecutable que se ejecuta en la máquina virtual de Android (conocida como Dalvik) . Para hacer un archivo .dex de acuerdo con la especificación Dalvik Executable, no debe contener más de 65.536 métodos considerando todas las bibliotecas del proyecto. 

Al crear cualquier aplicación móvil de la vida real, el recuento de métodos en las bibliotecas de proyectos puede cruzar fácilmente ese número. En esta situación, los desarrolladores toman la ayuda de la biblioteca Multidex que realiza la división del sistema del archivo .dex de la aplicación en múltiples archivos .dex. Además, el componente Multidex también brinda soporte a los archivos dex colectivos de una aplicación.

Detectando la necesidad de Multidex en la aplicación:

No es práctico para nadie mantener un registro del recuento de métodos mientras se desarrolla una aplicación. Por lo tanto, para saber si se necesita Multidex en los archivos del proyecto o no, se deben buscar los siguientes errores. Si el IDE muestra uno de estos errores mientras crea los archivos de la aplicación, significa que es necesario habilitar Multidex.

Mensaje de error 1: 

problemas para escribir la salida:

Demasiadas referencias de campo: 131000; máximo es 65536.

Puede intentar usar la opción –multi-dex. 

Mensaje de error 2: 

La conversión al formato Dalvik falló:

No se puede ejecutar dex: el ID del método no está en [0, 0xffff]: 65536

Habilitar Multidex:

El código para habilitar Multidex depende de la versión mínima de SDK de la aplicación de Android. Para diferentes versiones de SDK, a continuación se muestra el fragmento de código del archivo build.gradle .

una. Para una versión SDK mínima igual o superior a 21:

android{

   // …

   configuración por defecto {

       // …

       minSdk Versión 21

       targetSdkVersión 30

       multiDexEnabled verdadero

   }

   // …

}

b. Para la versión mínima de SDK inferior a 21:

i. Para AndroidX

android {

   configuración por defecto {

       // …

       minSdk Versión 18

       targetSdkVersión 30

       multiDexEnabled verdadero

   }

   // …

}

dependencias {

   // …

   implementación ‘androidx.multidex:multidex:2.0.0’

}

ii. Para la antigua biblioteca de soporte:

android {

   configuración por defecto {

       // …

       minSdk Versión 18

       targetSdkVersión 30

       multiDexEnabled verdadero

   }

   // …

}

dependencias {

   // …

   implementación ‘com.android.support:multidex:1.0.3’

}

Publicación traducida automáticamente

Artículo escrito por RISHU_MISHRA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *