Desarrollador Android: pregunta de entrevista

¿Qué activa la recomposición en Jetpack Compose?

Compose recompone funciones que leen estado cuando cambia; inputs estables, estado bien acotado, keys y derivedStateOf reducen trabajo innecesario sin impedir actualizaciones requeridas.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Compose registra qué objetos de estado del snapshot lee cada composable durante la composición. Cuando uno de esos objetos cambia, solo se programan para recomponer los composables que lo leyeron, más aquellos cuyas entradas ya no son iguales; el resto se omiten. La omisión depende de que el compilador pueda demostrar que los parámetros son estables, lo que se cumple para primitivos, cadenas, data classes inmutables y lambdas que capturan valores estables. Los tipos inestables como List de una biblioteca que el compilador no puede analizar fuerzan la recomposición en cada recomposición del padre. derivedStateOf reduce cambios frecuentes a menos actualizaciones aguas abajo.

Ejemplo

Un elemento de LazyColumn que muestra una marca de tiempo formateada desde un reloj que avanza se recompone cada segundo, pero sus filas hermanas no, porque solo la fila que lee el estado del reloj se invalida. Una pantalla que pasaba un ArrayList de elementos recomponía toda la lista en cada pulsación de un campo sin relación hasta que el parámetro pasó a ser ImmutableList y el compilador pudo omitirla.

Errores frecuentes

  • Leer un objeto de estado muy arriba en el árbol, de modo que un cambio pequeño recompone toda la pantalla.
  • Crear en cada composición una lambda nueva que captura estado inestable y anular la omisión.
  • Usar remember sin claves para un valor que depende de entradas cambiantes y mostrar datos obsoletos.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Android