"Hola, Jetpack": cómo crear tu primera app de Jetpack

Este documento te guía en el proceso básico de crear una app de Jetpack sencilla. Este ejemplo está basado en una app Kotlin de muestra llamada ComponentsBasicSample.

Para obtener ayuda sobre cómo crear apps en general, consulta Cómo crear tu primera app. Si quieres obtener más información sobre las clases que incluye este documento, consulta Componentes de la arquitectura de Android.

Cómo configurar tu app

Lleva a cabo los siguientes pasos a fin de configurar tu app para usar Jetpack:

  1. Inicia Android Studio 3.2 o versiones posteriores, y escribe información en Crear proyecto de Android y Orientación hacia dispositivos Android como de costumbre.
  2. Si estás creando tu app en Kotlin, recuerda marcar la casilla Incluir compatibilidad con Kotlin en la pantalla Crear proyecto de Android.

  3. Después de la pantalla Crear proyecto de Android, aparece la pantalla Agregar una actividad a dispositivos móviles, donde se ofrecen varias plantillas que puedes usar para comenzar tu proyecto. La plantilla Activity & Fragment + ViewModel, que se muestra en la figura 1, te permite incorporar Jetpack fácilmente a tu app. Haz clic en esa plantilla y luego selecciona Siguiente.
  4. Figura 1. La plantilla Activity & Fragment + ViewModel

  5. En la pantalla Configurar Activity, escribe nombres para la actividad inicial, el fragmento y el objeto ViewModel con el que iniciarás tu proyecto. También puedes ingresar una ruta de paquete de fragmentos. Luego, haz clic en Finalizar.
  6. Figura 2. La pantalla Configurar Activity de la plantilla Activity & Fragment + ViewModel

Si abres una carpeta java en tu proyecto, como se muestra en la figura 3, verás que inicialmente tu proyecto incluye tres clases: StartActivity, StartFragment y StartViewModel.

Figura 3: Clases iniciales que la plantilla Activity & Fragment + ViewModel agrega a un proyecto

  • StartActivity es el punto de entrada de tu app. Es el código auxiliar de una Activity que funciona como contenedor para los fragmentos que aparecen en la pantalla inicial de tu app.

  • StartFragment es el código auxiliar de un Fragment inicial que puedes usar en tu app.

  • StartViewModel es el código auxiliar de un ViewModel inicial que puedes usar en tu app.

Cómo aprovechar Jetpack

Con estos elementos, puedes implementar tu objeto ViewModel, como en el siguiente ejemplo:

    class StartViewModel : ViewModel() {
        private val _data = MutableLiveData<String>()
        val data: LiveData<String>
            get() = _data

        init {
            _data.value = "Hello, Jetpack!"
        }
    }

Si tu app incluye más de una pantalla, puedes agregar la clase Navigation para implementar activadores de navegación para tus fragmentos. El siguiente código es un ejemplo de cómo implementar un activador de navegación:

    // Set up a click listener on the login button
    view?.findViewById<Button>(R.id.navigate_bt)?.setOnClickListener {
       // Navigate to the login destination
       view?.let { Navigation.findNavController(it).navigate(R.id.end_action) }

Si tu app requiere acceso local a los datos de SQLite, quizás también te convenga agregar la biblioteca de persistencias Room. Si tu app necesita mostrar grandes volúmenes de datos en una sola pantalla, evalúa usar la biblioteca de Paging.

Cómo configurar tu archivo Gradle

Para usar Jetpack, recuerda agregar las líneas correspondientes a tu archivo Gradle. Debido a que esta app usa ViewModel, LiveData y NavigationController, su archivo Gradle incluye las siguientes líneas:

       // LiveData + ViewModel

       implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"

       // Navigation

       implementation 'androidx.navigation:navigation-fragment:' + rootProject.navigationVersion
       implementation 'androidx.navigation:navigation-ui:' + rootProject.navigationVersion

Más información

Para obtener más información sobre las muestras y las clases incluidas en este documento, consulta los siguientes recursos:

La app de demostración Sunflower usa varios componentes de Jetpack para ilustrar las recomendaciones de desarrollo de Android.