Soluzione Android con IA

Potenzia le tue app per Android con l'IA generativa

In questo percorso di apprendimento scoprirai come creare applicazioni Android più coinvolgenti con meno sforzo utilizzando le tecnologie Google. Nelle sezioni seguenti, creerai e migliorerai un'ipotetica app per la preparazione dei pasti, un sostituto del tipo di app su cui potresti lavorare oggi come sviluppatore Android.

Scoprirai come utilizzare Gemini in Android Studio per imparare e sviluppare più velocemente, come utilizzare Firebase per creare i livelli di archiviazione e l'accesso della tua app, come utilizzare Gemini per integrare funzionalità di IA generativa all'avanguardia nella tua applicazione e come utilizzare strumenti come Firebase Remote Config, Google Analytics e Crashlytics per supportare la tua app in produzione.

Potenzia lo sviluppo di Android con Gemini in Android Studio

Creare applicazioni per Android non è mai stato così facile con l'aiuto di Gemini in Android Studio, il tuo compagno di programmazione basato sull'IA.

Integrando l'IA direttamente nell'IDE che utilizzi quotidianamente, Gemini in Android Studio è progettato per semplificare e velocizzare la creazione di app per Android di alta qualità, fornendoti assistenza per tutto il ciclo di vita dello sviluppo software. Ciò significa che puoi apprendere nuovi concetti più velocemente, creare prototipi con facilità e dedicare più tempo alle parti importanti della tua applicazione.

Quando inizi a utilizzare la tua app per Android, scopri come Gemini in Android Studio può potenziare il tuo percorso di sviluppo.
Se non hai mai utilizzato Android o aree specifiche di sviluppo Android, Gemini in Android Studio può essere uno strumento di apprendimento inestimabile.

  • Ricevi risposte immediate alle tue domande: puoi chiedere a Gemini informazioni su concetti Android fondamentali, API specifiche o best practice direttamente nella finestra della chat di Android Studio. Ad esempio, puoi chiedere "Che cos'è il tema scuro?" o "Qual è il modo migliore per ottenere la posizione su Android?".
  • Ricevere esempi di codice e indicazioni: Gemini può generare snippet di codice e fornire indicazioni per l'implementazione di varie funzionalità, ad esempio l'aggiunta del supporto della fotocamera o la creazione di un database Room. Puoi anche chiedere codice in Kotlin o specificamente per Jetpack Compose.
  • Comprendere gli errori e trovare soluzioni: quando si verificano errori di compilazione o sincronizzazione, puoi chiedere a Gemini una spiegazione e suggerimenti su come risolverli. Gemini può anche aiutarti ad analizzare i report sugli arresti anomali di App Quality Insights, fornendo riepiloghi e suggerendo i passaggi successivi.
Ad esempio, per la nostra ipotetica app di preparazione dei pasti, puoi chiedere a Gemini di aiutarti a creare il prototipo di un nuovo layout di Scrivi per mostrare una scheda della ricetta. Utilizzando le funzionalità multimodali di Gemini, ti basta fornire un mockup del wireframe e chiedere a Gemini di abbozzare il codice per la tua UI.
La versione individuale di Gemini in Android Studio è senza costi durante la fase di anteprima.

Tuttavia, per lo sviluppo in ambienti di team di grandi dimensioni con requisiti di privacy e gestione più esigenti, Gemini in Studio per le aziende offre ulteriori vantaggi importanti, tra cui privacy e sicurezza avanzate, funzionalità di personalizzazione del codice e può essere utilizzato con i tuoi crediti Google Cloud.

Insieme a Gemini Code Assist, questi strumenti consentono ai team di sfruttare la potenza dell'IA in tutta sicurezza, soddisfacendo esigenze fondamentali di privacy, sicurezza e gestione.

Componenti di base di Firebase per la tua app

Le funzionalità comuni nello sviluppo di applicazioni, come lo spazio di archiviazione sul cloud, l'autenticazione utente e i report sugli arresti anomali, sono componenti necessari per lo sviluppo e il funzionamento di qualsiasi app.

Firebase semplifica il processo di sviluppo di app per Android fornendo questi componenti di base essenziali, eliminando la necessità di implementare il tuo backend.
Ad esempio, se stai creando un'app per la preparazione di ricette, devi conservare le ricette, i piani dei pasti e gli elenchi di ingredienti oltre il dispositivo (ad esempio nel caso in cui l'utente cambi smartphone). Puoi rendere persistenti questi dati in Cloud Firestore.

Cloud Firestore è un database cloud NoSQL scalabile offerto da Firebase e Google Cloud. Consente la sincronizzazione dei dati in tempo reale tra le app client tramite ascoltatori in tempo reale e offre il supporto offline per dispositivi mobili e web, garantendo prestazioni delle app reattive indipendentemente dalla disponibilità della rete. Si integra perfettamente con altri prodotti Firebase e Google Cloud, tra cui Cloud Functions.

L'autenticazione utente è essenziale per consentire agli utenti che cambiano dispositivo di accedere ai propri dati e per assicurarsi che altri non possano farlo.

Firebase Authentication è un potente strumento che semplifica il processo di aggiunta dell'autenticazione utente alle app per Android. Fornisce servizi di backend e un SDK con librerie UI pronte all'uso che supportano vari metodi di autenticazione, tra cui l'accesso tramite email/password, l'autenticazione tramite numero di telefono e l'integrazione con noti provider di identità federati come Google, Facebook e Twitter.
Il monitoraggio di errori e arresti anomali è essenziale per garantire la stabilità e il successo delle tue app: un'app che si arresta in modo anomalo frustrerà gli utenti e verrà disinstallata.

Firebase Crashlytics è uno strumento di generazione di report sugli arresti anomali in tempo reale che ti aiuta a monitorare, dare la priorità e risolvere i problemi di stabilità che compromettono la qualità della tua app. Ti fa risparmiare tempo nella risoluzione dei problemi raggruppando in modo intelligente gli arresti anomali ed evidenziando le circostanze che li hanno causati.

Cloud Firestore e Firebase Authentication offrono generosi livelli senza costi aggiuntivi. Tuttavia, se la tua app richiede una quota maggiore o funzionalità avanzate di questi servizi, dovrai avere un piano a pagamento. Ma non preoccuparti: puoi utilizzare i tuoi crediti Cloud per coprire questi costi. Inoltre, Crashlytics è senza costi, indipendentemente dall'utilizzo.

Per scoprire le altre soluzioni fornite da Firebase, visita il sito web di Firebase.
scope.launch {
  val response = model.generateContent(
    "Create a shopping list with $cuisineStyle ingredients")
}
Nel caso di un'app di ricette di esempio, Gemini 2.0 Flash può creare una lista della spesa degli ingredienti per cucinare un pasto in uno stile culinario specifico. Puoi anche chiedere al modello di generare una stringa JSON che può essere facilmente analizzata nell'app per il rendering nell'interfaccia utente. Per generare l'elenco, basta chiamare la funzione "generateContent()" con un prompt di testo.

Per scoprire di più, consulta la guida per gli sviluppatori Android.

IA generativa su Android

L'integrazione dell'IA generativa nella nostra applicazione per la preparazione dei pasti per Android può essere eseguita in vari modi. Ecco una breve panoramica di ogni opzione:
Gemini Nano è il modello della famiglia Gemini ottimizzato per l'esecuzione sul dispositivo. È integrato direttamente nel sistema operativo Android tramite AICore. Puoi utilizzarlo per offrire esperienze di IA generativa senza doverti connettere alla rete o inviare dati al cloud.

L'IA on-device è un'ottima opzione per i casi d'uso in cui la bassa latenza, il basso costo e le misure di salvaguardia della privacy sono le tue principali preoccupazioni. Ad esempio, in un'app per la prenotazione di pasti, Gemini Nano potrebbe essere utilizzato per suggerire idee per i pasti in base a cucine diverse e alla cronologia dei pasti dell'utente.

Per scoprire di più sull'architettura tecnica di Gemini Nano, consulta la documentazione di Android.

Per eseguire esperimenti con Gemini Nano nella tua applicazione, consulta il passaggio di seguito su come eseguire esperimenti con Gemini Nano on-device con l'SDK di IA di Google Edge sperimentale.
I modelli di IA generativa ottimizzati per l'esecuzione sul cloud sono generalmente più efficaci dei modelli di IA on-device.

In qualità di sviluppatore Android, puoi utilizzare Vertex AI in Firebase per implementare rapidamente le funzionalità di IA generativa nella tua app per Android utilizzando i modelli Gemini Pro e Flash per le attività di generazione di testo e Imagen per le attività di generazione di immagini.

La famiglia di modelli di AI Gemini Pro e Flash è multimodale e può gestire un'ampia gamma di attività. Ricevono input di immagini, audio e video e generano output di testo che può essere formattato come JSON, XML e CSV. Inoltre, i modelli Gemini più recenti possono persino generare output multimodali, come audio e immagini.

Ad esempio, in un'app per la preparazione dei pasti, puoi utilizzare un modello Gemini per creare una lista della spesa con gli ingredienti per un tipo specifico di cucina.

Inoltre, puoi utilizzare i tuoi crediti Google Cloud per coprire i costi di queste chiamate ai modelli Gemini.

Per scoprire come utilizzare i modelli Gemini ospitati sul cloud nella tua app, consulta il passaggio successivo su Gemini tramite Vertex AI in Firebase.
Imagen 3 è l'ultimo modello di generazione di immagini di Google. Inoltre, puoi accedervi tramite Vertex AI in Firebase, aggiungendo così facilmente funzionalità di generazione di immagini alla tua app per Android.

Ad esempio, in un'app per la preparazione dei pasti, puoi utilizzare il modello Imagen 3 per generare illustrazioni delle ricette.

Il costo può essere coperto dal tuo credito Google Cloud.

Per scoprire come utilizzare Imagen 3 nella tua app, leggi il passaggio seguente su Imagen 3 per la generazione di immagini.
Puoi anche aggiungere funzionalità di IA generativa tramite l'integrazione di backend:

  • Genkit è un framework open source che semplifica lo sviluppo, il deployment e il monitoraggio di applicazioni basate sull'IA.
  • Per esigenze di MLOps più avanzate, Vertex AI di Google Cloud offriva servizi completamente gestiti e una vasta gamma di modelli tramite Model Garden di Vertex AI. Puoi utilizzare i tuoi crediti Google Cloud anche per coprire eventuali costi per questi servizi.


Se vuoi eseguire l'inferenza AI on-device oltre a Gemini Nano, puoi anche fare esperimenti con LiteRT e MediaPipe:
  • LiteRT (in precedenza TFLite) è il runtime ad alte prestazioni di Google per l'AI on-device, progettato per eseguire in modo efficiente i modelli di machine learning direttamente sui dispositivi.
  • MediaPipe è un framework open source che consente agli sviluppatori di creare pipeline di machine learning per l'elaborazione in tempo reale di dati multimediali, come video e audio.


Per scoprire di più sulle offerte di IA generativa per Android, consulta la sezione IA della documentazione di Android.
L'SDK Google AI Edge consente agli sviluppatori di app per Android di integrare e sperimentare le funzionalità di AI generativa on-device di Gemini Nano per migliorare le loro applicazioni. Ecco come iniziare:
  • Segui questi passaggi per assicurarti che gli APK e i file binari vengano scaricati correttamente sul tuo dispositivo.
  • Aggiorna quindi la configurazione di Gradle della tua app aggiungendo la seguente dipendenza: implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
    e assicurati di impostare l'SDK target minimo su 31.
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
Successivamente, puoi configurare il modello per controllarne le risposte. Ciò comporta l'indicazione del contesto e, facoltativamente, l'impostazione dei seguenti parametri:

  • Temperatura: controlla il livello di casualità. Valori più elevati comportano una maggiore diversità nell'output.
  • Top K: specifica il numero di token con il ranking più alto da considerare per la generazione dell'output.
  • Numero candidati: imposta il numero massimo di risposte da restituire.
  • Token di output massimi: imposta la lunghezza massima della risposta.
val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext()
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}
Crea una funzione downloadCallback facoltativa. Questa funzione di callback viene utilizzata per il download del modello. Restituisce anche messaggi che possono essere utilizzati per scopi di debug. Genera l'oggetto "GenerativeModel" utilizzando le configurazioni di generazione e download facoltative che hai creato in precedenza.
val downloadConfig = DownloadConfig(downloadCallback)
val generativeModel = GenerativeModel(
  generationConfig = generationConfig,
  downloadConfig = downloadConfig // optional
)
Infine, avvia l'inferenza passando il prompt al modello. Assicurati che GenerativeModel.generateContent() rientri nell'ambito della coroutine appropriata, in quanto è una funzione di sospensione.

Nell'ambito di un'applicazione di preparazione dei pasti di esempio, Gemini Nano può fornire ispirazione per i pasti suggerendo vari tipi di cucina e pasti diversi da quelli della cronologia dei pasti.
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)
}
Il modello Gemini Nano ha un limite massimo di token di input pari a 12.000. Per saperne di più sull'accesso sperimentale a Gemini Nano, vai alla sezione Gemini Nano della documentazione di Android.

Gemini tramite Vertex AI in Firebase

L'utilizzo di Vertex AI in Firebase ti consente di creare funzionalità basate sull'IA generativa utilizzando i modelli Gemini Cloud, il tutto con il deployment e la gestione senza problemi dell'ecosistema 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")
}
Per iniziare, prova i prompt in Vertex AI Studio. Si tratta di un'interfaccia interattiva per la progettazione e la prototipazione dei prompt. Puoi caricare file per testare i prompt con testo e immagini e salvare un prompt per rivisitarlo in un secondo momento.

Quando è tutto pronto per chiamare l'API Gemini dalla tua app, configura Firebase e l'SDK seguendo le istruzioni riportate nella guida introduttiva a Vertex AI in Firebase.

Aggiungi poi la dipendenza Gradle al progetto:

val generativeModel = Firebase.vertexAI
  .generativeModel(
  "gemini-2.0-flash",
  generationConfig = generationConfig {
        responseMimeType = "application/json"
        responseSchema = jsonSchema
  }
    )
Ora puoi chiamare l'API Gemini dal codice Kotlin. Per prima cosa, inizializza il servizio Vertex AI e crea un'istanza di "GenerativeModel":
scope.launch {
  val response = model.generateContent("
    Create a shopping list with $cuisineStyle ingredients")
}
Nel caso di un'app di ricette di esempio, Gemini 2.0 Flash può creare una lista della spesa degli ingredienti per cucinare un pasto in uno stile culinario specifico. Puoi anche chiedere al modello di generare una stringa JSON che può essere facilmente analizzata nell'app per il rendering nell'interfaccia utente. Per generare l'elenco, basta chiamare la funzione "generateContent()" con un prompt di testo.

Per scoprire di più, consulta la guida per gli sviluppatori Android.

Imagen 3 per la generazione di immagini

Imagen 3 è accessibile tramite Vertex AI in Firebase, in modo da poter integrare facilmente la generazione di immagini nelle tue app per Android. In qualità di modello di generazione di immagini più avanzato di Google, Imagen 3 produce immagini di alta qualità con dettagli straordinari, artefatti minimi ed effetti di illuminazione realistici, stabilendo un nuovo standard nella generazione di immagini.

Ad esempio, Imagen 3 potrebbe consentire agli utenti di generare i propri avatar del profilo o creare asset per illustrare i flussi di schermata esistenti. Ad esempio, per un'app di preparazione dei pasti, puoi utilizzare Imagen 3 per generare immagini per la schermata della ricetta.

Immagine generata da Imagen 3 con il prompt: un'illustrazione in stile cartone animato di una vista dall'alto di un piano di lavoro della cucina con bellissimi ingredienti per un pasto mediterraneo.
dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.10.0"))

    implementation("com.google.firebase:firebase-vertexai")
}
L'integrazione di Imagen 3 è simile all'accesso a un modello Gemini tramite Vertex AI in Firebase.

Inizia aggiungendo le dipendenze Gradle al progetto 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
)
Poi, nel codice Kotlin, crea un'istanza di "ImageModel" passando il nome del modello e, facoltativamente, una configurazione del modello:
val imageResponse = imageModel.generateImages(
prompt = "A cartoon style illustration of a top overview of a kitchen countertop
  with beautiful ingredients for a $cuisineStyle meal."
)
Infine, genera l'immagine chiamando "generateImages()" con un prompt di testo:
val image = imageResponse.images.first()
val uiImage = image.asBitmap()
Recupera l'immagine generata da "imageResponse" e visualizzala come bitmap:
Puoi scoprire di più sull'utilizzo di Imagen 3 nel Blog per sviluppatori Android e nella documentazione per sviluppatori Android.

Prepararsi alla produzione con Firebase

Dopo aver implementato le funzionalità di IA generativa nella tua app, ecco alcuni passaggi successivi fondamentali prima di eseguire il deployment dell'app in produzione: Tieni inoltre presente la privacy degli utenti e l'uso responsabile dell'IA e sii trasparente con gli utenti in merito a potenziali comportamenti imprevisti del modello. Leggi il seguente post del blog per scoprire di più sull'idoneità alla produzione con Vertex AI in Firebase.