Como desarrollador de contenido para dispositivos móviles, a menudo desarrollarás la IU de tu app paso a paso que desarrollar todo a la vez. Android Studio adopta este enfoque con Jetpack Compose brinda herramientas que no requieren una compilación completa para inspeccionarse modificar valores y verificar el resultado final.
Ediciones en vivo
Ediciones en vivo es una función que te permite actualizar elementos componibles en emuladores y en tiempo real. Esta funcionalidad minimiza los cambios de contexto entre escribir y compilar tu app, lo que te permitirá enfocarte en escribir código por más tiempo sin interrupciones.
Ediciones en vivo tiene tres modos:
- Manual: Los cambios de código se aplican cuando se envían manualmente con Control + ' (Comando + ' en macOS)
- Manual en Guardar: Los cambios de código se aplican cuando se guardan manualmente con Control + S (Comando + S en macOS).
- Automático: Los cambios se aplican en tu dispositivo o emulador cuando actualizas un función de componibilidad.
Ediciones en vivo se centra en cambios de código que se relacionan con la IU y la UX. Esta función no admite cambios, por ejemplo, actualizar firmas de métodos, agregar métodos nuevos o cambiar la jerarquía de clases. Para obtener más información, consulta la lista de Limitaciones de Ediciones en vivo.
Esta función no reemplaza la compilación y la ejecución de tu app ni Apply Changes. En cambio, está diseñada para optimizar el flujo de trabajo a medida que compilas, implementas e iteras para desarrollar IU de Compose.
El flujo de trabajo de prácticas recomendadas es el siguiente:
- Configura tu aplicación para que pueda ejecutarse.
- Usa Ediciones en vivo tanto como sea posible, hasta que necesites realizar un cambio que no sea compatible con esta función, por ejemplo, agregar métodos nuevos mientras se ejecuta la app.
- Después de realizar un cambio no compatible, haz clic en Run
para reiniciar tu app y reanudar Ediciones en vivo.
Comienza a usar Ediciones en vivo
Para comenzar, sigue estos pasos para crear una actividad de Compose vacía, habilita Ediciones en vivo en tu proyecto y haz cambios con esta función.
Cómo configurar tu proyecto nuevo
Antes de comenzar, asegúrate de tener Android Studio Giraffe o una versión posterior instalada y que el nivel de API de tu instalación física dispositivo o emulador es de al menos 30.
Abre Android Studio y selecciona New Project en la ventana emergente Welcome to Android Studio. Si ya tienes un proyecto abierto, puedes crear uno nuevo una; para ello, navega a Archivo > Nuevo > New Project.
Elige la plantilla Empty Compose Activity para Phone and Tablet y, luego, haz clic en Next.
Figura 1: Plantillas entre las que puedes elegir. Para Ediciones en vivo, Selecciona Empty Compose Activity. Completa el diálogo New Project con la información requerida: nombre, nombre del paquete, ubicación de almacenamiento, SDK mínimo y idioma de la configuración de compilación.
Figura 2: Ejemplo de configuración del proyecto. Haz clic en Finish.
Cómo habilitar Ediciones en vivo
Ve a la configuración para habilitar Ediciones en vivo.
- En Windows o Linux, ve a File > Settings > Editor > Live Edit.
- En macOS, ve a Android Studio > Preferences > Editor > Live Edit.
Selecciona la opción Live Edit y el modo que quieres ejecutar desde la configuración.
En el modo manual, los cambios de código se envían cada vez que presionas Control + ' (Comando + ' en macOS). En el modo manual, activado guardar, los cambios de código se aplican cada vez que guardas manualmente con Control+S (Comando+S en macOS). En el modo automático, los cambios de código se aplican en tu dispositivo o emulador mientras realizas los cambios.
Figura 3: Configuración de Ediciones en vivo. En el editor, abre el archivo
MainActivity
, que es el punto de entrada de tu app.Haz clic en Run
para implementar tu app.
Después de activar Ediciones en vivo, aparecerá la marca de verificación verde Actualizada en En la parte superior derecha de la ventana de herramientas Running Devices, realiza lo siguiente:
Cómo realizar y revisar cambios
A medida que realices cambios compatibles en el editor, se podrá usar el dispositivo de prueba físico o virtual automáticamente.
Por ejemplo, edita el método Greeting
existente en MainActivity
en la
lo siguiente:
@Composable fun Greeting(name: String) { Text( text = "Hello $name!", Modifier .padding(80.dp) // Outer padding; outside background .background(color = Color.Cyan) // Solid element background color .padding(16.dp) // Inner padding; inside background, around text) ) }
Los cambios aparecerán al instante en el dispositivo de prueba, como se muestra en la figura 4.
![Cambios en el método Greeting en un dispositivo](https://developer.android.com/static/studio/images/run/device-le-example.png?authuser=8&hl=es)
Greeting
.Cómo solucionar problemas con Ediciones en vivo
Si no ves tus cambios en el dispositivo de prueba, es posible que Android Studio haya fallado para actualizar tus ediciones. Verifica si el indicador de Ediciones en vivo indica Out Of Date, como se muestra en la figura 5, lo que indica un error de compilación. Para obtener más información sobre el error y las sugerencias para corregirlo, haz clic en el indicador.
![Ícono de Ediciones en vivo desactualizado](https://developer.android.com/static/studio/images/run/live-edit-out-of-date.png?authuser=8&hl=es)
Limitaciones de Ediciones en vivo
La siguiente es una lista de limitaciones actuales.
[Solo se aplica a Android Studio Giraffe y versiones posteriores] Ediciones en vivo requiere Compose Runtime. 1.3.0 o una versión posterior Si tu proyecto usa una versión anterior de Compose, Ediciones en vivo es inhabilitado.
[Solo se aplica a Android Studio Giraffe y versiones posteriores] Ediciones en vivo requiere AGP 8.1.0-alpha05 o mayores. Si tu proyecto usa una versión anterior de AGP, Ediciones en vivo está inhabilitada.
Ediciones en vivo requiere un dispositivo físico o un emulador que ejecute el nivel de API 30 o más
Ediciones en vivo solo admite la edición del cuerpo de una función, es decir, no puedes cambiar el nombre de la función ni la firma, agregar o quitar funciones ni cambiar los campos que no correspondan a funciones.
Ediciones en vivo restablece el estado de la app la primera vez que cambias una función de Compose en un archivo. Esto solo sucede después del primer cambio de código; el estado de la app no se con los cambios de código posteriores que realices en las funciones de Compose en ese archivo.
Es posible que se apliquen penalizaciones al rendimiento en las clases que se modifiquen con Ediciones en vivo. Ejecuta tu app y usa una compilación de lanzamiento limpia si evalúas su rendimiento.
Debes realizar una ejecución completa para que el depurador funcione en las clases en las que modificados con Ediciones en vivo.
Es posible que la app que se esté ejecutando falle cuando realices cambios en esta con Ediciones en vivo. Si esto sucede, puedes volver a implementar la app con el botón Run
.
Ediciones en vivo no manipula el código de bytes que se define en tu archivo de compilación del proyecto, por ejemplo, manipulación de código de bytes que se cuando se compila el proyecto con las opciones del menú Build o haciendo clic en los botones Build o Run.
Las funciones de componibilidad se actualizan en vivo en el dispositivo o el emulador, y se activa la recomposición completa. Es posible que la recomposición completa no invoque la función actualizada. Para las funciones que no sean de componibilidad, debes activar las funciones que se actualizaron recientemente o volver a ejecutar la app.
Ediciones en vivo no se reanuda cuando se reinicia la app. Debes volver a ejecutarla.
Ediciones en vivo solo admite procesos depurables.
Ediciones en vivo no admite proyectos en los que se usen valores personalizados para
moduleName
enkotlinOptions
, en la configuración de compilación.Ediciones en vivo no funciona con implementaciones múltiples. Esto significa que no puedes realizar implementaciones en un dispositivo y, luego, en otro. Ediciones en vivo solo está activa en el último conjunto de dispositivos en el que se implementó la app.
Ediciones en vivo funciona con implementaciones multidispositivo (implementaciones en varios dispositivos que se crearon con la opción Seleccionar varios dispositivos en el destino menú desplegable del dispositivo). Sin embargo, no es compatible oficialmente y es posible que problemas. Si tienes problemas, denúncialos.
Apply Changes/Apply Code Changes no son compatibles con Ediciones en vivo y requieren que se reinicie la app en ejecución.
Por el momento, Ediciones en vivo no es compatible con proyectos de Android Automotive.
Preguntas frecuentes sobre Ediciones en vivo
¿Cuál es el estado actual de Ediciones en vivo?
Ediciones en vivo está disponible en Android Studio Giraffe. Para activarla, navega a Archivo > Configuración > Editor > Ediciones en vivo (Android Studio > Configuración > Editor > Ediciones en vivo en macOS).
¿Cuándo debo usar Ediciones en vivo?
Usa Ediciones en vivo cuando quieras ver rápidamente el efecto de las actualizaciones en la UX elementos (como las actualizaciones y las animaciones del modificador) en la app en general una experiencia fluida a los desarrolladores.
¿Cuándo no debo usar Ediciones en vivo?
Ediciones en vivo se centra en cambios de código que se relacionan con la IU y la UX. No es compatible cambios, como actualizaciones de firmas de métodos, adición de métodos nuevos o cambios de jerarquía. Para obtener más información, consulta Limitaciones de las transmisiones en vivo Editar
¿Cuándo debo usar la vista previa de Compose?
Usa Vista previa de Compose cuando desarrolles elementos componibles individuales. Vista previa visualiza los elementos de Compose y se actualiza automáticamente para mostrar el efecto de los cambios de código. La vista previa también admite la visualización de los elementos de la IU en diferentes parámetros de configuración y estados, como el tema oscuro, las configuraciones regionales y la fuente a gran escala.
Edición de literales en tiempo real (obsoleto)
Android Studio puede actualizar en tiempo real algunos literales constantes que se usan en elementos componibles dentro de vistas previas, el emulador y el dispositivo físico. Estos son algunos tipos compatibles:
Int
String
Color
Dp
Boolean
Puedes ver literales de constantes que activan actualizaciones en tiempo real sin la paso de compilación habilitando decoraciones literales a través de Ediciones en vivo de literales de IU:
Apply Changes
Apply Changes te permite actualizar el código y los recursos. sin tener que volver a implementar la app en un emulador o dispositivo físico (con algunas limitaciones).
Cada vez que agregas, modificas o borras elementos componibles, puedes actualizar la app sin hacer clic en el botón Apply Code Changes para volver a implementarlo:
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Cómo personalizar animaciones {:#customize-animations}
- Animaciones basadas en el valor
- Agregar parámetros