Solução Android com IA

Turbine seus apps Android com a IA generativa

Neste Programa de treinamentos, você vai descobrir como criar aplicativos Android mais envolventes com menos esforço usando as tecnologias do Google. Nas próximas seções, você vai criar e aprimorar um app hipotético de preparo de refeições, que é um substituto do tipo de app em que você pode estar trabalhando hoje como desenvolvedor Android.

Você vai aprender a usar o Gemini no Android Studio para aprender e desenvolver mais rápido, usar o Firebase para criar camadas de armazenamento e fazer login no app, usar o Gemini para criar recursos de IA generativa de última geração no aplicativo e usar ferramentas como a Configuração remota do Firebase, o Google Analytics e o Crashlytics para oferecer suporte ao app na produção.

Turbine o desenvolvimento do Android com o Gemini no Android Studio

Com a ajuda do Gemini no Android Studio, seu parceiro de programação com tecnologia de IA, ficou mais fácil do que nunca criar apps Android.

Com a integração da IA diretamente ao ambiente de desenvolvimento integrado que você usa diariamente, o Gemini no Android Studio foi criado para facilitar e acelerar a criação de apps Android de alta qualidade, ajudando você durante todo o ciclo de vida do desenvolvimento de software. Isso significa que você pode aprender novos conceitos mais rapidamente, criar protótipos com facilidade e passar mais tempo se concentrando nas partes importantes do seu aplicativo.

Ao começar seu app Android, confira como o Gemini no Android Studio pode turbinar sua jornada de desenvolvimento.
Se você é iniciante no Android ou em áreas específicas de desenvolvimento para Android, o Gemini no Android Studio pode ser uma ferramenta de aprendizado valiosa.

  • Receba respostas instantâneas para suas perguntas: você pode fazer perguntas ao Gemini sobre conceitos fundamentais do Android, APIs específicas ou práticas recomendadas diretamente na janela de chat do Android Studio. Por exemplo, você pode perguntar "O que é o tema escuro?" ou "Qual é a melhor maneira de receber a localização no Android?".
  • Receber exemplos e orientações sobre o código: o Gemini pode gerar snippets de código e fornecer orientações sobre a implementação de vários recursos, como adicionar suporte à câmera ou criar um banco de dados do Room. Você pode até pedir um código em Kotlin ou especificamente para o Jetpack Compose.
  • Entender erros e encontrar soluções: quando você encontrar erros de build ou sincronização, peça ao Gemini uma explicação e sugestões sobre como resolvê-los. O Gemini também pode ajudar a analisar relatórios de falhas nos Insights de qualidade do app, fornecendo resumos e recomendando as próximas etapas.
Por exemplo, no nosso app hipotético de preparação de refeições, você pode pedir ao Gemini para ajudar a criar um protótipo de um novo layout do Compose para mostrar um card de receita. Usando os recursos multimodais do Gemini, basta fornecer um modelo de wireframe e pedir que o Gemini desenhe o código da sua interface.
A versão individual do Gemini no Android Studio não tem custo financeiro durante a fase de visualização.

No entanto, para o desenvolvimento em ambientes de grandes equipes com requisitos de privacidade e gerenciamento mais exigentes, o Gemini in Studio para empresas oferece benefícios adicionais, incluindo recursos aprimorados de privacidade, segurança e personalização de código, e está disponível para uso com seus créditos do Google Cloud.

Com o Gemini Code Assist, essas ferramentas ajudam as equipes a aproveitar o poder da IA com confiança, atendendo às necessidades essenciais de privacidade, segurança e gerenciamento.

Elementos básicos do Firebase para seu app

Recursos comuns no desenvolvimento de apps, como armazenamento em nuvem, autenticação de usuários e relatórios de falhas, são componentes necessários para desenvolver e operar qualquer app.

O Firebase simplifica o processo de desenvolvimento de apps Android fornecendo esses blocos de construção essenciais, eliminando a necessidade de implementar seu próprio back-end.
Por exemplo, se você estiver criando um app de preparo de receitas, é necessário manter receitas, planos de refeições e listas de ingredientes além do dispositivo, caso o usuário troque de smartphone, por exemplo. É possível manter esses dados no Cloud Firestore.

O Cloud Firestore é um banco de dados NoSQL escalonável na nuvem oferecido pelo Firebase e pelo Google Cloud. Ele permite a sincronização de dados em tempo real em apps cliente usando listeners em tempo real e oferece suporte off-line para dispositivos móveis e Web, garantindo o desempenho responsivo do app, independentemente da disponibilidade da rede. Ele se integra perfeitamente a outros produtos do Firebase e do Google Cloud, incluindo o Cloud Functions.

A autenticação do usuário é essencial para permitir que os usuários que trocam de dispositivo acessem os dados deles e para garantir que outras pessoas não possam acessar esses dados.

O Firebase Authentication é uma ferramenta poderosa que simplifica o processo de adicionar a autenticação do usuário aos apps Android. Ele oferece serviços de back-end e um SDK com bibliotecas de interface prontas para uso que oferecem suporte a vários métodos de autenticação, incluindo login por e-mail/senha, autenticação por número de telefone e integração com provedores de identidade federados conhecidos, como Google, Facebook e Twitter.
Monitorar erros e falhas é essencial para garantir que seus apps sejam estáveis e bem-sucedidos. Um app com falhas vai frustrar os usuários e ser desinstalado.

O Firebase Crashlytics é um relatório de erros em tempo real que ajuda a monitorar, priorizar e corrigir problemas de estabilidade que comprometem a qualidade do seu app. Ele economiza tempo na solução de problemas com o agrupamento inteligente das falhas e o destaque das circunstâncias que levam a elas.

O Cloud Firestore e o Firebase Authentication oferecem níveis generosos sem custos. No entanto, se o app exigir mais cota ou recursos avançados desses serviços, você precisará estar em um plano pago. Mas não se preocupe, você pode usar seus créditos do Cloud para cobrir esses custos. O Crashlytics é sem custo financeiro, não importa o quanto você o usa.

Para saber mais sobre as outras soluções oferecidas pelo Firebase, acesse o site do Firebase.
scope.launch {
  val response = model.generateContent(
    "Create a shopping list with $cuisineStyle ingredients")
}
No caso de um app de receitas, o Gemini 2.0 Flash pode criar uma lista de compras de ingredientes para cozinhar uma refeição em um estilo culinário específico. Você pode até pedir ao modelo para gerar uma string JSON que possa ser facilmente analisada no app para renderização na IU. Para gerar a lista, basta chamar a função "generateContent()" com uma solicitação de texto.

Consulte o guia para desenvolvedores Android para saber mais.

IA generativa no Android

A integração da IA generativa no nosso aplicativo Android de preparo de refeições pode ser feita de várias maneiras. Confira uma breve descrição de cada opção:
O Gemini Nano é o modelo da família Gemini otimizado para execução no dispositivo. Ele é integrado diretamente ao SO Android pelo AICore. Você pode usá-lo para oferecer experiências de IA generativa sem precisar de conexão de rede ou enviar dados para a nuvem.

A IA no dispositivo é uma ótima opção para casos de uso em que a baixa latência, o baixo custo e as proteções de privacidade são as principais preocupações. Por exemplo, em um app de refeições, o Gemini Nano pode ser usado para sugerir ideias com base em diferentes culinárias e no histórico de refeições do usuário.

Saiba mais sobre a arquitetura técnica do Gemini Nano na documentação do Android.

Para testar o Gemini Nano no seu próprio app, consulte o Gemini Nano no dispositivo com a etapa experimental do SDK AI Edge do Google abaixo.
Os modelos de IA generativa otimizados para execução na nuvem geralmente são mais avançados do que os modelos de IA no dispositivo.

Como desenvolvedor Android, você pode usar a Vertex AI no Firebase para implementar rapidamente os recursos de IA generativa no seu app Android usando os modelos Gemini Pro e Flash para tarefas de geração de texto e o Imagen para tarefas de geração de imagem.

A família de modelos de IA Gemini Pro e Flash é multimodal e pode lidar com uma ampla gama de tarefas. Eles recebem entradas de imagem, áudio e vídeo e geram saídas de texto que podem ser formatadas como JSON, XML e CSV. E os modelos Gemini mais recentes podem até gerar saídas multimodais, como áudio e imagens.

Por exemplo, em um app de preparo de refeições, é possível usar um modelo do Gemini para criar uma lista de compras com ingredientes para um tipo específico de culinária.

Você pode usar seus créditos do Google Cloud para cobrir os custos dessas chamadas para os modelos Gemini.

Para saber como usar modelos do Gemini hospedados na nuvem no seu app, consulte a etapa "Gemini via Vertex AI no Firebase" abaixo.
O Imagen 3 é o modelo mais recente de geração de imagens do Google. E você pode acessá-lo pela Vertex AI no Firebase, adicionando recursos de geração de imagens ao seu app Android de forma rápida e fácil.

Por exemplo, em um app de preparação de refeições, é possível usar o modelo Imagen 3 para gerar ilustrações de receitas.

O custo pode ser coberto pelo seu crédito do Google Cloud.

Para saber como usar o Imagen 3 no seu app, leia a etapa Imagen 3 para geração de imagem abaixo.
Também é possível adicionar recursos de IA generativa pela integração de back-end:

  • O Genkit é um framework de código aberto que simplifica o desenvolvimento, a implantação e o monitoramento de aplicativos com tecnologia de IA.
  • Para necessidades mais avançadas de MLOps, a Vertex AI do Google Cloud oferecia serviços totalmente gerenciados e uma variedade de modelos no Model Garden da Vertex AI. Você também pode usar seus créditos do Google Cloud para cobrir os custos desses serviços.


Se você quiser executar a inferência de IA no dispositivo além do Gemini Nano, também poderá testar o LiteRT e o MediaPipe:
  • O LiteRT (antigo TFLite) é o ambiente de execução de alto desempenho do Google para IA no dispositivo, projetado para executar modelos de aprendizado de máquina de forma eficiente diretamente nos dispositivos.
  • O MediaPipe é um framework de código aberto que permite que os desenvolvedores criem pipelines de machine learning para processar dados multimídia, como vídeo e áudio, em tempo real.


Para saber mais sobre as ofertas de IA Gen do Android, acesse a seção de IA da documentação do Android.
O SDK AI Edge do Google permite que desenvolvedores de apps Android integrem e experimentem os recursos de IA generativa no dispositivo do Gemini Nano para aprimorar os aplicativos. Saiba como começar:
  • Siga estas etapas para garantir que os APKs e binários sejam transferidos corretamente para o dispositivo.
  • Em seguida, atualize a configuração do Gradle do app adicionando a seguinte dependência: implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
    E defina o SDK mínimo de destino como 31.
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
Em seguida, você pode configurar o modelo para controlar as respostas. Isso envolve fornecer o contexto e definir os seguintes parâmetros, se necessário:

  • Temperatura: controla o nível de aleatoriedade. Valores mais altos resultam em maior diversidade na saída.
  • Top K: especifica o número de tokens de classificação mais alta a serem considerados para a geração de saída.
  • Contagem de candidatos: define o número máximo de respostas a serem retornadas.
  • Max Output Tokens: define o comprimento máximo da resposta.
val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext()
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}
Crie uma função downloadCallback opcional. Essa função de callback é usada para fazer o download do modelo. Ele também retorna mensagens que podem ser usadas para depuração. Gere o objeto "GenerativeModel" usando as configurações de geração e de download opcionais que você criou anteriormente.
val downloadConfig = DownloadConfig(downloadCallback)
val generativeModel = GenerativeModel(
  generationConfig = generationConfig,
  downloadConfig = downloadConfig // optional
)
Por fim, inicie a inferência transmitindo o comando para o modelo. Verifique se GenerativeModel.generateContent() está dentro do escopo de corrotina adequado, já que é uma função de suspensão.

No contexto de um aplicativo de preparação de refeições, o Gemini Nano pode dar ideias de refeições sugerindo vários tipos de culinária e refeições diferentes do histórico de refeições.
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)
}
O modelo Gemini Nano tem um limite máximo de 12.000 tokens de entrada. Para saber mais sobre o acesso experimental ao Gemini Nano, acesse a seção Gemini Nano da documentação do Android.

Gemini usando a Vertex AI no Firebase

Com a Vertex AI no Firebase, você pode criar recursos com IA generativa usando modelos do Gemini Cloud, tudo com a implantação e o gerenciamento perfeitos do ecossistema do 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")
}
Comece testando comandos no Vertex AI Studio. É uma interface interativa para design de comando e prototipagem. Você pode fazer upload de arquivos para testar comandos com texto e imagens e salvar um comando para consultar mais tarde.

Quando estiver tudo pronto para chamar a API Gemini do seu app, configure o Firebase e o SDK seguindo as instruções no Guia de início da Vertex AI no Firebase.

Em seguida, adicione a dependência do Gradle ao projeto:

val generativeModel = Firebase.vertexAI
  .generativeModel(
  "gemini-2.0-flash",
  generationConfig = generationConfig {
        responseMimeType = "application/json"
        responseSchema = jsonSchema
  }
    )
Agora é possível chamar a API Gemini no código Kotlin. Primeiro, inicialize o serviço da Vertex AI e crie uma instância do "GenerativeModel":
scope.launch {
  val response = model.generateContent("
    Create a shopping list with $cuisineStyle ingredients")
}
No caso de um app de receitas, o Gemini 2.0 Flash pode criar uma lista de compras de ingredientes para cozinhar uma refeição em um estilo culinário específico. Você pode até pedir ao modelo para gerar uma string JSON que possa ser facilmente analisada no app para renderização na IU. Para gerar a lista, basta chamar a função "generateContent()" com uma solicitação de texto.

Consulte o guia para desenvolvedores Android para saber mais.

Imagen 3 para geração de imagens

O Imagen 3 pode ser acessado pela Vertex AI no Firebase para que você possa integrar facilmente a geração de imagens aos seus apps Android. Como o modelo de geração de imagens mais avançado do Google, o Imagen 3 produz imagens de alta qualidade com detalhes notáveis, artefatos mínimos e efeitos de iluminação realistas, definindo um novo padrão na geração de imagens.

Por exemplo, a imagem 3 permite que os usuários gerem os próprios avatares de perfil ou criem recursos para ilustrar os fluxos de tela atuais. Para um exemplo de app de preparação de refeições, use a Imagem 3 para gerar imagens para a tela de receitas.

Imagem gerada pelo Imagen 3 com o comando: uma ilustração em estilo cartoon de uma visão geral de cima de uma bancada de cozinha com ingredientes bonitos para uma refeição mediterrânea.
dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.10.0"))

    implementation("com.google.firebase:firebase-vertexai")
}
A integração do Imagen 3 é semelhante ao acesso a um modelo Gemini pela Vertex AI no Firebase.

Comece adicionando as dependências do Gradle ao projeto 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
)
Em seguida, no código Kotlin, crie uma instância do ImageModel transmitindo o nome do modelo e, opcionalmente, uma configuração do 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 fim, gere a imagem chamando "generateImages()" com uma solicitação de texto:
val image = imageResponse.images.first()
val uiImage = image.asBitmap()
Extraia a imagem gerada da "imageResponse" e a mostre como um bitmap:

Prepare-se para a produção com o Firebase

Depois de implementar os recursos de IA generativa no app, siga estas etapas importantes antes de implantar o app na produção: Além disso, considere a privacidade do usuário e o uso responsável da IA e seja transparente com seus usuários sobre possíveis comportamentos inesperados do modelo. Leia a postagem do blog a seguir para saber mais sobre a prontidão para produção com a Vertex AI no Firebase.