Best practice

Gemini in Android Studio funge da collaboratore di programmazione, accelerando il tuo flusso di lavoro di sviluppo generando codice, riepilogando argomenti complessi, trovando risorse specifiche e altro ancora. Una comunicazione efficace è la chiave per sfruttare appieno il potenziale di Gemini.

Questa guida illustra le strategie per configurare l'ambiente di sviluppo e scrivere prompt che generino risposte utili e affidabili. Per più strategie, abbiamo fornito prompt di esempio per diversi casi d'uso. Per altri esempi di prompt, consulta la galleria dei prompt.

Utilizzare la modalità Agent

La modalità Agente di Gemini in Android Studio va oltre ciò che puoi sperimentare semplicemente chattando con Gemini. Puoi fornire all'agente un obiettivo di alto livello e l'agente suddivide il problema e crea un piano per risolverlo. L'agente richiama strumenti, modifica più file e corregge gli errori man mano che procede. La modalità Agente ti aiuta a gestire attività complesse in modo più efficiente, velocizzando l'intero processo di sviluppo.

Fornisci informazioni specifiche

Gemini in Android Studio funziona al meglio con istruzioni chiare e specifiche. Se ci sono determinate librerie, API o approcci che vorresti utilizzare, includili nella tua domanda o nel file AGENTS.md principale del progetto per mantenerli durante le interazioni. Consideralo come la segnalazione di un bug: più informazioni fornisci, più rapidamente ed efficacemente il problema può essere risolto.

Implementazione di nuove funzionalità:

Come faccio ad aggiungere il supporto della fotocamera alla mia app utilizzando CameraX? Assicurati di includere tutte le dipendenze e le autorizzazioni necessarie per utilizzare la libreria.
Come faccio ad aggiungere il supporto della fotocamera alla mia app?

Generazione del codice:

Scrivi una funzione di sospensione Kotlin che utilizza la libreria Coil per scaricare un'immagine da una determinata stringa URL.

La funzione deve essere denominata fetchImageAsBitmap. Deve accettare un Context e un URL String come argomenti e restituire un Bitmap nullable. Se si verifica un errore di rete o di decodifica, deve rilevare l'eccezione, registrarla e restituire null.

Scrivi una funzione per scaricare un'immagine.

Spiegare un concetto:

Sto creando un'app di riproduzione musicale e devo continuare la riproduzione quando l'app è in background.

Quali sono le mie opzioni per mantenere la mia app in esecuzione mentre l'utente fa altre cose sul dispositivo? Quali sono i requisiti a livello di API e le implicazioni per la durata della batteria per ciascun approccio?

Spiega i servizi Android.

Descrivere la struttura della risposta

Per impostazione predefinita, Gemini fornisce risposte in un formato conversazionale basato su paragrafi. Sebbene questo approccio sia spesso utile per le spiegazioni, puoi ottenere risultati più efficaci e immediatamente utilizzabili indicando a Gemini come strutturare la risposta. La specifica del formato di output indica al modello di organizzare le informazioni in un modo chiaro e prevedibile, risparmiando il tempo necessario per riformattarle manualmente.

Se vuoi inserire il codice generato da Gemini nella tua app e ti serve in un determinato formato per poterlo utilizzare immediatamente, fornisci a Gemini istruzioni chiare sulla generazione e la formattazione del codice.

Strutturare la risposta:

Crea un'entità Stanza per un profilo utente. Deve contenere i campi id, userName, email e memberSince. Il campo id deve essere generato automaticamente. Il campo memberSince deve rappresentare un timestamp.

Crea un'entità Stanza per un profilo utente.

Se poni una domanda più aperta, chiedi x opzioni.

Limitare la risposta:

Quali strumenti sono disponibili per l'ottimizzazione del rendimento delle app? Forniscimi un elenco dei primi tre.
Quali strumenti sono disponibili per l'ottimizzazione del rendimento delle app?

Suddividi le richieste complesse in attività più piccole

Per richieste complesse in più passaggi, assicurati di provare la modalità Agente. Tuttavia, se l'approccio dell'agente non è quello che ti aspetti, potrebbe essere utile guidare Gemini attraverso una serie di prompt più piccoli e sequenziali, anziché chiedere tutto in una volta. Questo approccio ti offre un maggiore controllo e ti consente di verificare ogni passaggio prima di procedere al successivo.

Applicare prompt sequenziali:

Prompt 1: il modello di dati
Innanzitutto, crea una classe di dati Kotlin denominata User. Deve avere tre proprietà: id (un numero intero), name (una stringa) e email (una stringa).

Prompt 2: il livello di rete
Ora crea un'interfaccia API Retrofit chiamata ApiService. Ha bisogno di un singolo suspend fun chiamato getUsers() che restituisce un List<User>.

Prompt 3: The state management
Next, write a UsersViewModel that takes the ApiService as a dependency. UsersViewModel deve esporre un StateFlow di una classe UiState sigillata che può rappresentare gli stati Loading, Success(users: List) e Error(message: String). Crea una funzione in ViewModel per recuperare gli utenti e aggiornare lo stato. Scrivere test delle unità per le nuove funzionalità

Prompt 4: Il livello UI
Infine, scrivi una funzione Jetpack Compose denominata UserListScreen che accetta UiState come parametro. Utilizza un'istruzione when per visualizzare un CircularProgressIndicator per lo stato di caricamento, un LazyColumn di nomi utente per lo stato di successo e un elemento Text con il messaggio di errore per lo stato di errore. Aggiungi test che verifichino la nuova funzionalità.

Crea una schermata Jetpack Compose che recupera un elenco di utenti da un'API JSON e li visualizza in un elenco. Deve avere un ViewModel che utilizza Retrofit e le coroutine, un repository per gestire la logica dei dati, una classe di dati User e deve mostrare gli stati di caricamento ed errore.

Gestisci contesto

Una parte importante dell'utilizzo di Gemini in Android Studio è fornire il contesto giusto. Fornisci snippet di codice, contenuti dei file e informazioni sulla struttura del progetto pertinenti per ottenere le risposte più utili. Potresti dover fare più tentativi per trovare il giusto equilibrio: troppe informazioni potrebbero fuorviare Gemini, mentre troppo poche non forniranno il contesto sufficiente per aiutarlo. Utilizza le funzionalità disponibili per fornire a Gemini l'accesso al contesto necessario:

  • Allega immagini per fornire una rappresentazione visiva della UI che stai immaginando o dell'architettura dell'app che stai cercando di comprendere.
  • Allega file per evidenziare le parti pertinenti della base di codice.
  • Utilizza i file .aiexclude per fare in modo che Gemini ignori determinate parti del codice.
  • Utilizza i file AGENTS.md per fornire istruzioni specifiche per il progetto e condividerle con il tuo team. Quando utilizzi i file AGENTS.md, utilizza le intestazioni e la formattazione Markdown per rendere chiare le istruzioni.
  • Quando utilizzi la modalità Agente, configura i server MCP per estendere le conoscenze e le funzionalità di Gemini con l'ambiente esterno.

Chiedere spiegazioni

Se non capisci la risposta di Gemini in Android Studio, chiedi una spiegazione. Questo è un ottimo modo per imparare e verificare che la soluzione proposta sia adatta al tuo caso d'uso. Se la risposta non è quella che ti aspettavi, potrebbe essere che Gemini abbia commesso un errore e chiedere una spiegazione gli darà l'opportunità di correggersi.

Migliorare le istruzioni

Come quando lavori con un collega, lavorare con Gemini in Android Studio a volte richiede un po' di comunicazione avanti e indietro per chiarire l'attività e il risultato previsto. Se la risposta iniziale di Gemini non è sufficiente, rispondi con feedback e suggerimenti su come migliorare. Se la risposta migliora in base ai tuoi suggerimenti, incorporali nel prompt originale aggiornando la voce nella libreria dei prompt o aggiornando i file AGENTS.md.