Prácticas recomendadas

El agente de Android Studio actúa como tu colaborador de programación, lo que acelera tu flujo de trabajo de desarrollo, ya que genera código, resume temas complejos, encuentra recursos específicos y mucho más. La comunicación eficaz es la clave para liberar todo el potencial del agente.

En esta guía, se describen estrategias para configurar tu entorno de desarrollo y escribir instrucciones que generen respuestas útiles y confiables. Para varias estrategias, proporcionamos instrucciones de ejemplo para diferentes casos de uso. Para ver más ejemplos de instrucciones, consulta la galería de instrucciones.

Sé específico

El agente funciona mejor con instrucciones claras y específicas. Si hay ciertas bibliotecas, APIs o enfoques que te gustaría usar, inclúyelos en tu pregunta o en el archivo AGENTS.md raíz de tu proyecto para que se conserven en todas las interacciones. Piensa en esto como si estuvieras enviando un informe de errores: cuanta más información proporciones, más rápido y eficazmente se podrá resolver el problema.

Implementación de una nueva funcionalidad:

¿Cómo agrego compatibilidad con la cámara a mi app con CameraX? Asegúrate de incluir las dependencias y los permisos que necesito para usar la biblioteca.
¿Cómo agrego compatibilidad con la cámara a mi app?

Generación de código:

Escribe una función de suspensión de Kotlin que use la biblioteca de Coil para descargar una imagen desde una cadena de URL determinada.

La función debe llamarse fetchImageAsBitmap. Debe tomar un Context y una URL de String como argumentos y devolver un Bitmap que admita valores nulos. Si hay algún error de red o decodificación, debe detectar la excepción, registrarla y devolver null.

Escribe una función para descargar una imagen.

Explicar un concepto:

Estoy creando una app de reproducción de música y necesito que la reproducción continúe cuando la app esté en segundo plano.

¿Qué opciones tengo para mantener mi app en ejecución mientras el usuario realiza otras acciones en el dispositivo? ¿Cuáles son los requisitos de nivel de API y las implicaciones de duración de la batería para cada enfoque?

Explicar los servicios de Android

Describe la estructura de la respuesta.

De forma predeterminada, el agente proporciona respuestas en un formato conversacional basado en párrafos. Si bien esto suele ser útil para las explicaciones, puedes obtener resultados más eficaces y de uso inmediato si le indicas cómo estructurar la respuesta. Especificar el formato de salida indica al modelo que organice la información de una manera clara y predecible, lo que te ahorra el tiempo de volver a darle formato.

Si quieres insertar código generado por el agente en tu app y necesitas el código en un formato determinado para poder usarlo de inmediato, dale al agente instrucciones claras sobre cómo generar y dar formato al código.

Estructura la respuesta:

Crea una entidad de Room para un perfil de usuario. Debe contener los campos id, userName, email y memberSince. El campo id se debe generar de forma automática. El campo memberSince debe representar una marca de tiempo.

Crea una entidad de Room para un perfil de usuario.

Si haces una pregunta más abierta, pídela para una cantidad x de opciones.

Limita la respuesta:

¿Qué herramientas están disponibles para optimizar el rendimiento de las apps? Dame una lista de las tres principales.
¿Qué herramientas están disponibles para optimizar el rendimiento de las apps?

Divide las solicitudes complejas en tareas más simples.

Si el enfoque del agente no es el que esperas, puede ser útil guiarlo a través de una serie de instrucciones secuenciales más pequeñas, en lugar de pedirle todo a la vez. Este enfoque te brinda más control y te permite verificar cada paso antes de continuar con el siguiente.

Aplicación de instrucciones secuenciales:

Instrucción 1: El modelo de datos
Primero, crea una clase de datos de Kotlin llamada User. Debe tener tres propiedades: id (un Int), name (una String) y email (una String).

Instrucción 2: La capa de red
Ahora, crea una interfaz de la API de Retrofit llamada ApiService. Necesita un solo suspend fun llamado getUsers() que devuelva un List<User>.

Instrucción 3: Administración del estado
A continuación, escribe un UsersViewModel que tome el ApiService como dependencia. El UsersViewModel debe exponer un StateFlow de una clase UiState sellada que pueda representar los estados Loading, Success(users: List) y Error(message: String). Crea una función en el ViewModel para recuperar los usuarios y actualizar el estado. Escribe pruebas de unidades para la nueva funcionalidad.

Instrucción 4: La capa de la IU
Por último, escribe una función de Jetpack Compose llamada UserListScreen que acepte UiState como parámetro. Usa una sentencia when para mostrar un elemento CircularProgressIndicator para el estado de carga, un elemento LazyColumn de nombres de usuario para el estado de éxito y un elemento Text con el mensaje de error para el estado de error. Agrega pruebas que verifiquen la nueva funcionalidad.

Crea una pantalla de Jetpack Compose que recupere una lista de usuarios de una API de JSON y los muestre en una lista. Debería tener un ViewModel que use Retrofit y corrutinas, un repositorio para controlar la lógica de datos, una clase de datos User y mostrar los estados de carga y error.

Administrar el contexto

Una parte importante de trabajar con el agente es proporcionar el contexto adecuado. Proporciona fragmentos de código, contenido de archivos y estructura de proyectos pertinentes para obtener las respuestas más útiles. Es posible que debas iterar para lograr el equilibrio adecuado: demasiada información puede desviar al agente, mientras que muy poca no proporcionará suficiente contexto para que pueda ayudar. Usa las funciones disponibles para otorgarle al agente acceso al contexto necesario:

  • Adjunta imágenes para proporcionar una imagen de la IU que imaginas o de la arquitectura de la app que intentas comprender.
  • Adjunta archivos para destacar partes relevantes de la base de código.
  • Usa archivos .aiexclude para que el agente ignore ciertas partes de la base de código.
  • Usa archivos AGENTS.md para dar instrucciones específicas del proyecto y compartirlas con tu equipo. Cuando uses archivos AGENTS.md, usa encabezados y formato de Markdown para que tus instrucciones sean claras.
  • Cuando uses el modo agente, configura servidores de MCP para extender el conocimiento y las capacidades del agente con el entorno externo.

Solicita explicaciones

Si no comprendes la respuesta del agente, pídele una explicación. Esta es una excelente manera de aprender y verificar que la solución propuesta sea adecuada para tu caso de uso. Si la respuesta no fue la que esperabas, es posible que el agente esté equivocado y, si le pides una explicación, tendrá la oportunidad de corregirse.

Itera tus instrucciones

Al igual que cuando trabajas con un compañero de trabajo, trabajar con el agente a veces requiere un poco de comunicación de ida y vuelta para aclarar la tarea y el resultado esperado. Si la respuesta inicial del agente no es suficiente, respóndele con comentarios y sugerencias para mejorar. Si su respuesta mejora en función de tus sugerencias, incorpora esa sugerencia en la instrucción original actualizando la entrada en la Biblioteca de instrucciones o actualizando tus archivos AGENTS.md.