Prácticas recomendadas

Gemini en Android Studio actúa como tu colaborador de programación, ya que acelera tu flujo de trabajo de desarrollo generando código, resumiendo temas complejos, encontrando recursos específicos y mucho más. La comunicación eficaz es la clave para aprovechar todo el potencial de Gemini.

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

Cómo usar el modo agente

El modo agente de Gemini en Android Studio va más allá de lo que puedes experimentar con solo chatear con Gemini. Puedes darle al agente un objetivo general, y este desglosará el problema y creará un plan para resolverlo. El agente invoca herramientas, edita varios archivos y corrige errores a medida que avanza. El modo Agente te ayuda a manejar tareas complejas de manera más eficiente, lo que acelera todo tu proceso de desarrollo.

Sé específico

Gemini en Android Studio 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 persistan en las interacciones. Piensa en ello como si presentaras un informe de errores: Cuanta más información proporciones, más rápido y eficazmente se podrá resolver el problema.

Implementación de nuevas funciones:

¿Cómo agrego compatibilidad con la cámara a mi app con CameraX? Asegúrate de incluir todas 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 suspendible 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 una Context y una URL de String como argumentos, y devolver un Bitmap anulable. Si hay algún error de red o de 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 continuar la reproducción 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 en la duración de la batería para cada enfoque?

Explicar los servicios de Android

Describe la estructura de la respuesta

De forma predeterminada, Gemini 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 utilizables de inmediato si le indicas cómo estructurar la respuesta. Especificar el formato de salida dirige al modelo para que organice la información de una manera clara y predecible, lo que te ahorra el tiempo de volver a formatearla por tu cuenta.

Si quieres insertar en tu app código generado por Gemini y necesitas que esté en un formato determinado para poder usarlo de inmediato, dale a Gemini instrucciones claras sobre cómo generar y formatear el código.

Cómo estructurar 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 automáticamente. 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, hazla para X cantidad de opciones.

Cómo limitar la respuesta:

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

Desglosa las solicitudes complejas en tareas más pequeñas

Para solicitudes complejas de varios pasos, asegúrate de probar el Modo de agente. Sin embargo, si el enfoque del agente no es el que esperas, puede ser útil guiar a Gemini a través de una serie de instrucciones más pequeñas y secuenciales en lugar de pedirle todo de una vez. Este enfoque te brinda más control y te permite verificar cada paso antes de continuar con el siguiente.

Cómo aplicar 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 número entero), name (una cadena) y email (una cadena).

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

Instrucción 3: La administración de estados
A continuación, escribe un UsersViewModel que tome el ApiService como una 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 ViewModel para recuperar los usuarios y actualizar el estado. Escribe pruebas de unidades para las nuevas funcionalidades.

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 instrucción when para mostrar un CircularProgressIndicator para el estado de carga, un 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. Debe tener un ViewModel que use Retrofit y corrutinas, un repositorio para controlar la lógica de datos, una clase de datos User y debe mostrar estados de carga y error.

Administrar contexto

Una parte importante del trabajo con Gemini en Android Studio es proporcionar el contexto adecuado. Proporciona fragmentos de código, contenido de archivos y estructura del proyecto pertinentes para obtener las respuestas más útiles. Es posible que debas iterar para lograr el equilibrio adecuado: demasiada información podría confundir a Gemini, mientras que muy poca no le proporcionará suficiente contexto para ayudarte. Usa las funciones disponibles para darle a Gemini acceso al contexto necesario:

  • Adjunta imágenes para proporcionar una representación visual de la IU que imaginas o la arquitectura de la app que intentas comprender.
  • Adjunta archivos para destacar las partes pertinentes de la base de código.
  • Usa archivos .aiexclude para que Gemini 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 usas el modo de agente, configura servidores de MCP para extender el conocimiento y las capacidades de Gemini con el entorno externo.

Solicita explicaciones

Si no entiendes la respuesta de Gemini en Android Studio, pide 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 es lo que esperabas, es posible que Gemini se haya equivocado. Pedir una explicación le dará la oportunidad de corregirse.

Realiza iteraciones en tus instrucciones

Al igual que cuando trabajas con un compañero, trabajar con Gemini en Android Studio a veces requiere un intercambio de mensajes para aclarar la tarea y el resultado esperado. Si la respuesta inicial de Gemini no es suficiente, responde con comentarios y sugerencias para mejorarla. Si su respuesta mejora según tus sugerencias, incorpóralas en la instrucción original actualizando la entrada en la Biblioteca de instrucciones o tus archivos AGENTS.md.