Android con solución de IA

Potencia tus apps para Android con la IA generativa

En esta ruta de aprendizaje, descubrirás cómo crear aplicaciones para Android más atractivas con menos esfuerzo mediante las tecnologías de Google. En las siguientes secciones, compilarás y mejorarás una app hipotética de preparación de comidas, un sustituto del tipo de app en la que podrías estar trabajando hoy como desarrollador de Android.

Aprende a usar Gemini en Android Studio para aprender y desarrollar más rápido, usar Firebase para compilar las capas de almacenamiento y el acceso de tu app, usar Gemini para compilar funciones de IA generativa de vanguardia en tu aplicación y usar herramientas como Firebase Remote Config, Google Analytics y Crashlytics para admitir tu app en producción.

Mejora tu desarrollo de Android con Gemini en Android Studio

Es más fácil que nunca compilar aplicaciones para Android con la ayuda de Gemini en Android Studio, tu compañero de programación potenciado por IA.

Gemini en Android Studio integra la IA directamente en el IDE que usas a diario y está diseñado para que la compilación de apps para Android de alta calidad sea más rápida y fácil, ya que te ayuda durante todo el ciclo de vida del desarrollo de software. Esto significa que puedes aprender conceptos nuevos más rápido, crear prototipos con facilidad y dedicar más tiempo a las partes de tu aplicación que son importantes.

Cuando comiences a usar tu app para Android, descubre cómo Gemini en Android Studio puede potenciar tu recorrido de desarrollo.
Si eres nuevo en Android o en áreas específicas de desarrollo para Android, Gemini en Android Studio puede ser una herramienta de aprendizaje invaluable.

  • Obtén respuestas instantáneas a tus preguntas: Puedes hacerle preguntas a Gemini sobre conceptos fundamentales de Android, APIs específicas o prácticas recomendadas directamente en la ventana de chat de Android Studio. Por ejemplo, puedes preguntar "¿Qué es el tema oscuro?" o "¿Cuál es la mejor manera de obtener la ubicación en Android?".
  • Recibir ejemplos de código y orientación: Gemini puede generar fragmentos de código y brindar orientación para implementar varias funciones, como agregar compatibilidad con la cámara o crear una base de datos de Room Incluso puedes solicitar código en Kotlin o específicamente para Jetpack Compose.
  • Comprende los errores y encuentra soluciones: Cuando encuentres errores de compilación o sincronización, puedes pedirle a Gemini una explicación y sugerencias para resolverlos. Gemini también puede ayudarte a analizar los informes de fallas de las estadísticas de calidad de la app, proporcionar resúmenes y recomendar los próximos pasos.
Por ejemplo, en el caso de nuestra app hipotética de preparación de comidas, puedes pedirle a Gemini que te ayude a crear un prototipo de un nuevo diseño de Compose para mostrar una tarjeta de receta. Con las capacidades multimodales de Gemini, simplemente proporciona una maqueta de esquema de página y pídele a Gemini que esboce el código de tu IU.
La versión individual de Gemini en Android Studio no tiene costo mientras esté en versión preliminar.

Sin embargo, para el desarrollo en entornos de equipos grandes con requisitos de administración y privacidad más exigentes, Gemini en Studio para empresas ofrece beneficios valiosos adicionales, como funciones mejoradas de privacidad, seguridad y personalización de código, y está disponible para usar con tus créditos de Google Cloud.

Junto con Gemini Code Assist, estas herramientas permiten a los equipos aprovechar el poder de la IA con confianza y abordar necesidades fundamentales de privacidad, seguridad y administración.

Componentes básicos de Firebase para tu app

Las funciones comunes en el desarrollo de aplicaciones, como el almacenamiento en la nube, la autenticación de usuarios y los informes de fallas, son componentes necesarios a la hora de desarrollar y operar cualquier app.

Firebase simplifica el proceso de desarrollo de apps para Android, ya que proporciona estos elementos esenciales, lo que elimina la necesidad de implementar tu propio backend.
Por ejemplo, si compilas una app de preparación de recetas, debes conservar las recetas, los planes de comidas y las listas de ingredientes más allá del dispositivo (en caso de que el usuario cambie de teléfono, por ejemplo). Puedes conservar estos datos en Cloud Firestore.

Cloud Firestore es una base de datos NoSQL escalable en la nube que ofrecen Firebase y Google Cloud. Permite la sincronización de datos en tiempo real entre apps cliente a través de objetos de escucha en tiempo real y tiene compatibilidad sin conexión para dispositivos móviles y la Web, lo que garantiza el rendimiento de las apps responsivas independientemente de la disponibilidad de la red. Se integra sin problemas con otros productos de Firebase y Google Cloud, incluido Cloud Functions.

La autenticación de usuarios es esencial para permitir que los usuarios que cambian de dispositivo accedan a sus datos y asegurarse de que otras personas no puedan hacerlo.

Firebase Authentication es una herramienta potente que simplifica el proceso de agregar autenticación de usuarios a las apps para Android. Proporciona servicios de backend y un SDK con bibliotecas de IU listas para usar que admiten varios métodos de autenticación, como el acceso con correo electrónico o contraseña, la autenticación con número de teléfono y la integración con proveedores de identidad federada populares, como Google, Facebook y Twitter.
Supervisar los errores y las fallas es fundamental para garantizar que tus apps sean estables y exitosas. Una app con fallas frustrará a los usuarios y se desinstalará.

Firebase Crashlytics es una herramienta para informar fallas en tiempo real que te ayuda a hacer un seguimiento de los problemas de estabilidad que afectan la calidad de tu app, a priorizarlos y a corregirlos. Agrupa las fallas de forma inteligente y destaca las circunstancias en las que se produjeron, lo que te permite ahorrar tiempo en la solución de problemas.

Tanto Cloud Firestore como Firebase Authentication ofrecen generosos niveles sin costo. Sin embargo, si tu app requiere más cuota o funciones avanzadas de estos servicios, deberás tener un plan pagado. Pero no te preocupes, puedes usar tus créditos de Cloud para cubrir esos costos. Además, Crashlytics es sin costo, sin importar cuánto lo uses.

Para obtener información sobre las otras soluciones que ofrece Firebase, visita el sitio web de Firebase.
scope.launch {
  val response = model.generateContent(
    "Create a shopping list with $cuisineStyle ingredients")
}
En el caso de una app de recetas de ejemplo, Gemini 2.0 Flash puede crear una lista de compras de ingredientes para cocinar una comida en un estilo de cocina específico. Incluso puedes pedirle al modelo que genere una cadena JSON que se pueda analizar fácilmente en la app para renderizar en la IU. Para generar la lista, simplemente llama a la función "generateContent()" con una instrucción de texto.

Consulta la guía para desarrolladores de Android para obtener más información.

IA generativa en Android

La integración de la IA generativa en nuestra aplicación para Android de preparación de comidas se puede lograr de varias maneras. A continuación, se incluye una breve descripción general de cada opción:
Gemini Nano es el modelo de la familia Gemini optimizado para ejecutarse en el dispositivo. Se integra directamente al SO Android a través de AICore. Puedes usarlo para ofrecer experiencias de IA generativa sin necesidad de conexión de red ni enviar datos a la nube.

La IA integrada en el dispositivo es una excelente opción para casos de uso en los que tus principales preocupaciones son la latencia baja, el bajo costo y las protecciones de la privacidad. Por ejemplo, en una app de preparación de comidas, Gemini Nano se podría usar para sugerir ideas de comidas en función de diferentes cocinas y el historial de comidas del usuario.

Puedes obtener más información sobre la arquitectura técnica de Gemini Nano en la documentación de Android.

Para experimentar con Gemini Nano en tu propia aplicación, revisa Gemini Nano integrado en el dispositivo con el siguiente paso experimental del SDK de Google AI Edge.
Los modelos de IA generativa que están optimizados para ejecutarse en la nube suelen ser más capaces que los modelos de IA integrados en el dispositivo.

Como desarrollador de Android, puedes usar Vertex AI en Firebase para implementar rápidamente las capacidades de IA generativa en tu app para Android con los modelos Gemini Pro y Flash para tareas de generación de texto y con Imagen para tareas de generación de imágenes.

La familia de modelos de IA Gemini Pro y Flash son multimodales y pueden controlar una amplia variedad de tareas. Toman entradas de imagen, audio y video y generan salidas de texto que pueden tener formato JSON, XML y CSV. Además, los modelos de Gemini más recientes incluso pueden generar salidas multimodales, como audio e imágenes.

Por ejemplo, en una app de preparación de comidas, puedes usar un modelo de Gemini para crear una lista de compras con ingredientes para un tipo específico de cocina.

Además, puedes usar tus créditos de Google Cloud para cubrir los costos de estas llamadas a los modelos de Gemini.

Para aprender a usar modelos de Gemini alojados en la nube en tu app, revisa el paso de Gemini a través de Vertex AI en Firebase a continuación.
Imagen 3 es el modelo de generación de imágenes más reciente de Google. Además, puedes acceder a ella a través de Vertex AI in Firebase, lo que te permite agregar funciones de generación de imágenes a tu app para Android de forma rápida y sencilla.

Por ejemplo, en una app de preparación de comidas, puedes usar el modelo de Imagen 3 para generar ilustraciones de recetas.

Tu crédito de Google Cloud puede cubrir el costo.

Para aprender a usar Imagen 3 en tu app, lee el paso Imagen 3 para la generación de imágenes a continuación.
También puedes agregar capacidades de IA generativa a través de la integración del backend:

  • Genkit es un framework de código abierto que simplifica el desarrollo, la implementación y la supervisión de aplicaciones potenciadas por IA.
  • Para necesidades más avanzadas de operaciones de AA, Vertex AI de Google Cloud ofrecía servicios completamente administrados, así como una amplia oferta de modelos a través de Vertex AI Model Garden. También puedes usar tus créditos de Google Cloud para cubrir los costos de estos servicios.


Si quieres ejecutar inferencia de IA integrada en el dispositivo más allá de Gemini Nano, también puedes experimentar con LiteRT y MediaPipe:
  • LiteRT (anteriormente TFLite) es el entorno de ejecución de alto rendimiento de Google para la IA integrada en el dispositivo, diseñado para ejecutar modelos de aprendizaje automático de manera eficiente directamente en los dispositivos.
  • MediaPipe es un framework de código abierto que permite a los desarrolladores crear canalizaciones de aprendizaje automático para procesar datos multimedia, como video y audio, en tiempo real.


Para obtener más información sobre las ofertas de IA generativa de Android, visita la sección de IA de la documentación de Android.
El SDK de Google AI Edge permite que los desarrolladores de apps para Android integren y experimenten con las capacidades de IA generativa integrada en el dispositivo de Gemini Nano para mejorar sus aplicaciones. Sigue estos pasos para comenzar:
  • Sigue estos pasos para asegurarte de que los APK y los objetos binarios se descarguen correctamente en tu dispositivo.
  • Luego, agrega la siguiente dependencia para actualizar la configuración de Gradle de tu app: implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
    . Además, asegúrate de establecer el objetivo de SDK mínimo en 31.
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
A continuación, puedes configurar el modelo para controlar sus respuestas. Esto implica proporcionar el contexto y, de manera opcional, establecer los siguientes parámetros:

  • Temperatura: Controla el nivel de aleatoriedad. Los valores más altos generarán una mayor diversidad en el resultado.
  • Top-K: Especifica la cantidad de tokens con la clasificación más alta que se deben considerar para la generación de resultados.
  • Cantidad de candidatos: Establece la cantidad máxima de respuestas que se mostrarán.
  • Cantidad máxima de tokens de salida: Establece la longitud máxima de la respuesta.
val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext()
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}
Crea una función downloadCallback opcional. Esta función de devolución de llamada se usa para descargar modelos. También muestra mensajes que se pueden usar para depurar. Genera el objeto "GenerativeModel" con la configuración de generación y descarga opcional que creaste anteriormente.
val downloadConfig = DownloadConfig(downloadCallback)
val generativeModel = GenerativeModel(
  generationConfig = generationConfig,
  downloadConfig = downloadConfig // optional
)
Por último, pasa la instrucción al modelo para iniciar la inferencia. Asegúrate de que GenerativeModel.generateContent() esté dentro del alcance de corrutinas adecuado, ya que es una función de suspensión.

En el contexto de una aplicación de preparación de comidas de ejemplo, Gemini Nano puede proporcionar inspiración para las comidas sugiriendo varios tipos de cocina y comidas que son diferentes del historial de comidas.
scope.launch {
  val input = "Suggest different types of cuisines and easy to cook dishes that are not $recentMealList"
  val response = generativeModel.generateContent(input)
  print(response.text)
}
El modelo Gemini Nano tiene un límite máximo de tokens de entrada de 12,000. Para obtener más información sobre el acceso experimental a Gemini Nano, consulta la sección Gemini Nano de la documentación de Android.

Gemini a través de Vertex AI en Firebase

Aprovechar Vertex AI en Firebase te permite compilar funciones potenciadas por IA generativa con modelos de Gemini Cloud, todo con la implementación y administración sin problemas del ecosistema de Firebase.

dependencies {
...
// Import the BoM for the Firebase platform
implementation(platform("com.google.firebase:firebase-bom:"))

// Add the dependency for the Vertex AI in Firebase library
// When using the BoM, you don't specify versions in Firebase
// library dependencies
implementation("com.google.firebase:firebase-vertexai")
}
Para comenzar, experimenta con instrucciones en Vertex AI Studio. Es una interfaz interactiva para el diseño y el prototipado de instrucciones. Puedes subir archivos para probar instrucciones con texto e imágenes, y guardarlas para volver a verlas más tarde.

Cuando tengas todo listo para llamar a la API de Gemini desde tu app, configura Firebase y el SDK siguiendo las instrucciones de la guía de introducción a Vertex AI en Firebase.

Luego, agrega la dependencia de Gradle a tu proyecto:

val generativeModel = Firebase.vertexAI
  .generativeModel(
  "gemini-2.0-flash",
  generationConfig = generationConfig {
        responseMimeType = "application/json"
        responseSchema = jsonSchema
  }
    )
Ahora puedes llamar a la API de Gemini desde tu código de Kotlin. Primero, inicializa el servicio de Vertex AI y crea una instancia de "GenerativeModel":
scope.launch {
  val response = model.generateContent("
    Create a shopping list with $cuisineStyle ingredients")
}
En el caso de una app de recetas de ejemplo, Gemini 2.0 Flash puede crear una lista de compras de ingredientes para cocinar una comida en un estilo de cocina específico. Incluso puedes pedirle al modelo que genere una cadena JSON que se pueda analizar fácilmente en la app para renderizar en la IU. Para generar la lista, simplemente llama a la función "generateContent()" con una instrucción de texto.

Consulta la guía para desarrolladores de Android para obtener más información.

Imagen 3 para la generación de imágenes

Puedes acceder a Imagen 3 a través de Vertex AI in Firebase para integrar la generación de imágenes sin problemas en tus apps para Android. Como el modelo de generación de imágenes más avanzado de Google, Imagen 3 produce imágenes de alta calidad con detalles notables, artefactos mínimos y efectos de iluminación realistas, lo que establece un nuevo estándar en la generación de imágenes.

Por ejemplo, la imagen 3 podría permitir que tus usuarios generen sus propios avatares de perfil o creen recursos para ilustrar los flujos de pantallas existentes. En el caso de una app de preparación de comidas, puedes usar la Imagen 3 para generar imágenes para la pantalla de recetas.

Imagen generada por Imagen 3 con la instrucción: Una ilustración de estilo de caricatura de una vista general superior de la encimera de una cocina con ingredientes hermosos para una comida mediterránea.
dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.10.0"))

    implementation("com.google.firebase:firebase-vertexai")
}
La integración de Imagen 3 es similar a acceder a un modelo de Gemini a través de Vertex AI en Firebase.

Comienza por agregar las dependencias de Gradle a tu proyecto de Android:
val imageModel = Firebase.vertexAI.imagenModel(
modelName = "imagen-3.0-generate-001",
generationConfig = ImagenGenerationConfig(
  imageFormat = ImagenImageFormat.jpeg(compresssionQuality = 75),
  addWatermark = true,
  numberOfImages = 1,
  aspectRatio = ImagenAspectRatio.SQUARE_1x1
)
Luego, en tu código de Kotlin, crea una instancia de "ImageModel" pasando el nombre del modelo y, de manera opcional, una configuración del modelo:
val imageResponse = imageModel.generateImages(
prompt = "A cartoon style illustration of a top overview of a kitchen countertop
  with beautiful ingredients for a $cuisineStyle meal."
)
Por último, llama a "generateImages()" con una instrucción de texto para generar la imagen:
val image = imageResponse.images.first()
val uiImage = image.asBitmap()
Recupera la imagen generada de "imageResponse" y muéstrala como un mapa de bits:
Puedes obtener más información sobre el uso de Imagen 3 en el blog para desarrolladores de Android y en la documentación para desarrolladores de Android.

Prepárate para la producción con Firebase

Una vez que hayas implementado las funciones de IA generativa en tu app, estos son algunos de los próximos pasos fundamentales que debes seguir antes de implementarla en producción: Además, ten en cuenta la privacidad del usuario y el uso responsable de la IA, y sé transparente con los usuarios sobre el posible comportamiento inesperado de los modelos. Lee la siguiente entrada de blog para obtener más información sobre la preparación para la producción con Vertex AI en Firebase.