"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 Create Android Project y Target Android Devices, como de costumbre.
  2. Si estás creando tu app en Kotlin, recuerda marcar la casilla Include Kotlin support en la pantalla Create Android Project.

  3. Después de la pantalla Create Android Project, aparece Add an Activity to Mobile, donde se ofrecen varias plantillas que puedes usar para comenzar tu proyecto. La plantilla Activity & Fragment + ViewModel, que se muestra en la figura 1, permite incorporar Jetpack fácilmente a tu app. Haz clic en esa plantilla y, luego, selecciona Next.
  4. Figura 1: La plantilla Activity & Fragment + ViewModel

  5. En la pantalla Configure 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 Finish.
  6. Figura 2. La pantalla Configure 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 un elemento Activity que funciona como contenedor de los fragmentos que aparecen en la pantalla inicial de tu app.

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

  • StartViewModel es el código auxiliar de un elemento 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 a fin de 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.