Qué hizo Instagram Direct al migrar a Jetpack Compose y cómo aplicar sus ideas a tu propia app Android para que los agentes de IA trabajen mejor.
Instagram Direct ha migrado su interfaz Android del sistema clásico de Views a Jetpack Compose, y lo ha planteado como la creación de una base de código «nativa para IA». Según la crónica de InfoQ y la publicación original para desarrolladores Android, el resultado fue la mitad de código de interfaz y un 33 % menos de coste en tokens por sesión de agente.
Esta guía no copia su proyecto, que no es público en el material que tenemos, sino que ordena las ideas que cuentan para que puedas aplicarlas con criterio en tu propia app. Úsala como lista de comprobación, no como receta universal.
Lo que necesitas
- Una pantalla acotada de tu app Android que hoy use Views y RecyclerView.
- Métricas de producción ya instrumentadas: tiempo hasta poder interactuar, tiempo hasta carga completa y fluidez del scroll.
- Un sistema de feature flags que permita alternar entre la UI antigua y la nueva en tiempo de ejecución.
- Convenciones de equipo escritas para el trabajo asistido por IA, de modo que todos usen los mismos patrones.

El plan paso a paso
- Define las fronteras arquitectónicas antes de pedir nada al agente: dónde vive el estado, qué comportamiento debe ser predecible y qué patrones están permitidos.
- Prefiere prácticas establecidas y patrones familiares frente a convenciones propias de tu código, para reducir la dependencia de contexto que el agente debe cargar.
- Migra pantallas completas, no componentes sueltos: Instagram observó que el rendimiento no se puede evaluar bien mientras queden Views heredadas que distorsionan la medición.
- Escribe los componentes de Compose desacoplados del contenedor, de forma que funcionen tanto dentro de RecyclerView como de LazyColumn.
- Activa la alternancia por feature flag y compara ambas versiones con pruebas A/B sobre las tres métricas de producción.
- Cuando los datos respalden el cambio, sustituye RecyclerView por LazyColumn como contenedor definitivo.
- Estandariza los flujos de trabajo con IA del equipo para que el resultado respete las mismas convenciones.
Cómo diseñar para el agente
La tesis de los ingenieros de Instagram es que los agentes toman el camino de menor resistencia. Si tu arquitectura permite arreglar un hueco de diseño con un parche, el agente lo hará, y acumularás errores sutiles, deuda técnica y regresiones de rendimiento. Por eso conviene que lo correcto sea lo más barato de expresar y lo incorrecto lo más caro.
Un patrón que encaja con esa idea es separar el estado de la presentación. Este esquema es ilustrativo, no el código de Instagram:
data class ChatState(val messages: List<Message>, val loading: Boolean)
@Composable
fun ChatList(state: ChatState, onSend: (String) -> Unit) {
LazyColumn {
items(state.messages) { MessageRow(it) }
}
}Con un estado explícito y una función de interfaz sin efectos ocultos, el agente tiene menos superficie donde equivocarse y menos contexto que leer. Instagram menciona además que el coste de arranque de Compose se paga una sola vez por sesión de la app, así que otras pantallas se benefician de que el runtime ya esté inicializado.

Qué esperar y qué vigilar
Las cifras de Instagram pertenecen a su caso concreto y no hay garantía de que se repitan en otra base de código. Lo transferible es el método: arquitectura primero, pantallas completas, medición en producción y cambio reversible con flags. Si tu equipo sigue enviando funciones durante la migración, como hizo el de Instagram, planifica el trabajo por pantallas para no bloquear a nadie.
Si quieres profundizar en el trabajo con agentes en entornos reales, InfoQ organiza QCon AI Nueva York y ofrece una certificación sobre ingeniería asistida por IA.
Para saber más: Chinese edition.
Fuente original: infoq.com
Artículo generado mediante AI.larebelion



Comentarios
Publicar un comentario