Cómo agregar Jetpack Compose a tu app

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Si quieres usar Jetpack Compose en un proyecto existente, tendrás que configurar el proyecto con las opciones de configuración y las dependencias requeridas.

Cómo configurar tu entorno de desarrollo

Instala la versión correcta de Android Studio

Para obtener la mejor experiencia de desarrollo con Jetpack Compose, debes descargar Android Studio y configurar el complemento de Android para Gradle correspondiente a la versión de Android Studio:

buildscript {
    ...
    dependencies {
        classpath "com.android.tools.build:gradle:7.3.0"
        ...
    }
}

Cómo configurar Kotlin

Asegúrate de usar Kotlin 1.7.20 en tu proyecto:

plugins {
    id 'kotlin-android'
}

Cómo configurar Gradle

Debes establecer el nivel mínimo de API de tu app en 21 o más, habilitar Jetpack Compose en el archivo build.gradle de la app y agregar las dependencias de la biblioteca, como se muestra en la Guía de inicio rápido.

Cómo volver a usar el tema de View en Compose

Si acabas de agregar Compose a tu proyecto, es posible que quieras que Compose herede los temas disponibles en el sistema View, en lugar de volver a escribir tu propio tema de Material en Compose desde cero.

Si utilizas la biblioteca de MDC en tu app para Android, la biblioteca de MDC Compose Theme Adapter te permitirá volver a usar fácilmente el color, la tipografía y la forma de tus temas existentes basados en View en tus elementos que admiten composición. Puedes hacerlo con la API de MdcTheme.

En cambio, si usas temas XML de AppCompat, utiliza AppCompat Compose Theme Adapter, que contiene la API de AppCompatTheme.

Incluye la dependencia que necesites en el archivo build.gradle de la app, como se muestra a continuación:

dependencies {
    // When using a MDC theme
    implementation "com.google.android.material:compose-theme-adapter:1.1.16"

    // When using a AppCompat theme
    implementation "com.google.accompanist:accompanist-appcompat-theme:0.25.1"
}

Comienza a migrar a Compose

Consulta Estrategia de migración a fin de obtener orientación para comenzar tu migración a Compose. Allí, podrás aprender a incorporar Compose de forma segura y progresiva a tu base de código.

Para obtener más información sobre ComposeView y otras APIs de interoperabilidad, consulta la guía de APIs de interoperabilidad. Para obtener más información sobre otras APIs de recursos de Compose, consulta la guía de Recursos de Compose.

Cómo probar tu IU mixta de objetos View y Compose

Después de migrar partes de tu app a Compose, las pruebas son fundamentales para asegurarte de que no se haya dañado nada.

Cuando una actividad o un fragmento usa Compose, en lugar de ActivityScenarioRule, debes usar createAndroidComposeRule, que integra ActivityScenarioRule con un objeto ComposeTestRule que te permite probar Compose y el código de View al mismo tiempo.

class MyActivityTest {
    @Rule
    @JvmField
    val composeTestRule = createAndroidComposeRule<MyActivity>()

    @Test
    fun testGreeting() {
        val greeting = InstrumentationRegistry.getInstrumentation()
            .targetContext.resources.getString(R.string.greeting)

        composeTestRule.onNodeWithText(greeting).assertIsDisplayed()
    }
}

Consulta la guía para probar tu diseño de Compose a fin de obtener más información sobre las pruebas y la interoperabilidad con Espresso.

Si usas el componente Navigation de tu app, consulta la sección Interoperabilidad de la guía Cómo navegar con Compose.

Próximos pasos

Puedes encontrar más información sobre Compose en el índice de documentación. Existen diferentes enfoques para implementar Compose en tu app. Obtén más información en la guía para implementar Compose en tu app, que también contiene vínculos a otras guías, como Compose en tu arquitectura existente y Compose en tu IU existente.