En iyi uygulamalar

Android Studio'da Gemini, kod oluşturma, karmaşık konuları özetleme ve belirli kaynakları bulma gibi işlemler yaparak geliştirme iş akışınızı hızlandıran bir kodlama iş arkadaşı gibi çalışır. Gemini'ın tüm potansiyelinden yararlanmak için etkili iletişim kurmak gerekir.

Bu kılavuzda, geliştirme ortamınızı kurma ve yararlı ve güvenilir yanıtlar veren istemler yazma stratejileri özetlenmektedir. Birden fazla strateji için farklı kullanım alanlarına yönelik örnek istemler sağladık. Daha fazla örnek istem için İstem galerisi'ne bakın.

Temsilci Modu'nu kullanma

Android Studio'daki Gemini'ın Temsilci Modu, Gemini ile sohbet ederek elde edebileceğiniz deneyimin ötesine geçer. Temsilciye üst düzey bir hedef verebilirsiniz. Temsilci, sorunu parçalara ayırır ve çözmek için bir plan oluşturur. Temsilci, araçları çağırır, birden fazla dosyayı düzenler ve hataları düzeltir. Agent Mode, karmaşık görevleri daha verimli bir şekilde ele almanıza yardımcı olarak tüm geliştirme sürecinizi hızlandırır.

Spesifik olun

Android Studio'da Gemini, net ve spesifik talimatlarla en iyi performansı gösterir. Kullanmak istediğiniz belirli kitaplıklar, API'ler veya yaklaşımlar varsa bunları sorunuza ekleyin ya da etkileşimlerde kalıcı olmaları için projenizin kök AGENTS.md dosyasına ekleyin. Bunu hata raporu göndermeye benzetebiliriz: Ne kadar çok bilgi verirseniz sorun o kadar hızlı ve etkili bir şekilde çözülebilir.

Yeni işlevleri uygulama:

CameraX kullanarak uygulamama nasıl kamera desteği ekleyebilirim? Kitaplığı kullanmak için gereken tüm bağımlılıkları ve izinleri eklediğinden emin ol.
Uygulamama nasıl kamera desteği ekleyebilirim?

Kod oluşturma:

Belirli bir URL dizesinden resim indirmek için Coil kitaplığını kullanan bir Kotlin suspend işlevi yazın.

İşlev fetchImageAsBitmap olarak adlandırılmalıdır. Context ve String URL'sini bağımsız değişken olarak almalı ve boş değer atanabilir bir Bitmap döndürmelidir. Ağ veya kod çözme hatası varsa istisnayı yakalamalı, günlüğe kaydetmeli ve null değerini döndürmelidir.

Resim indirmek için bir işlev yaz.

Bir kavramı açıklama:

Bir müzik çalar uygulaması geliştiriyorum ve uygulama arka plandayken oynatmaya devam etmem gerekiyor.

Kullanıcı cihazda başka işlemler yaparken uygulamamın çalışmaya devam etmesini sağlamak için hangi seçeneklerim var? Her yaklaşım için API düzeyi şartları ve pil ömrüyle ilgili sonuçlar nelerdir?

Android Hizmetleri'ni açıklayın.

Yanıtın yapısını açıklama

Gemini, varsayılan olarak yanıtları etkileşimli ve paragrafa dayalı bir biçimde sunar. Bu yöntem genellikle açıklamalar için faydalı olsa da yanıtı nasıl yapılandıracağını söyleyerek daha etkili ve hemen kullanılabilir sonuçlar elde edebilirsiniz. Çıkış biçimini belirtmek, modeli bilgileri net ve tahmin edilebilir bir şekilde düzenlemeye yönlendirir. Böylece, bilgileri kendiniz yeniden biçimlendirmek için harcayacağınız zamandan tasarruf edersiniz.

Gemini tarafından oluşturulan kodu uygulamanıza eklemek istiyorsanız ve kodu anında kullanabilmek için belirli bir biçimde istiyorsanız Gemini'a kodu oluşturma ve biçimlendirme konusunda net talimatlar verin.

Yanıtı yapılandırma:

Kullanıcı profili için bir oda öğesi oluşturun. id, userName, email ve memberSince alanlarını içermelidir. id alanı otomatik olarak oluşturulmalıdır. memberSince alanı bir zaman damgasını temsil etmelidir.

Kullanıcı profili için bir oda öğesi oluşturun.

Daha açık uçlu bir soru soruyorsanız x seçenekli olarak sorun.

Yanıtı sınırlama:

Uygulama performansı optimizasyonu için hangi araçlar kullanılabilir? En iyi üç seçeneğin listesini ver.
Uygulama performansı optimizasyonu için hangi araçlar kullanılabilir?

Karmaşık istekleri daha küçük görevlere ayırın

Karmaşık ve çok adımlı istekler için Agent Mode'u (Aracı Modu) deneyin. Ancak aracının yaklaşımı beklentilerinizi karşılamıyorsa Gemini'a her şeyi tek seferde sormak yerine bir dizi küçük ve sıralı istemle yol göstermek faydalı olabilir. Bu yaklaşım, size daha fazla kontrol sağlar ve bir sonraki adıma geçmeden önce her adımı doğrulamanıza olanak tanır.

Sıralı istemleri uygulama:

1. istem: Veri modeli
Öncelikle User adlı bir Kotlin veri sınıfı oluşturun. Üç özelliği olmalıdır: id (Int), name (String) ve email (String).

İstem 2: Ağ katmanı
Şimdi ApiService adlı bir Retrofit API arayüzü oluşturun. suspend fun adlı tek bir getUsers() işlevi gerekir. Bu işlev, List<User> değerini döndürür.

İstem 3: Durum yönetimi
Ardından, ApiService öğesini bağımlılık olarak kullanan bir UsersViewModel yazın. UsersViewModel, Loading, Success(users: List) ve Error(message: String) durumlarını temsil edebilen kapalı bir UiState sınıfının StateFlow öğesini kullanıma sunmalıdır. Kullanıcıları getirmek ve durumu güncellemek için ViewModel içinde bir işlev oluşturun. Yeni işlev için birim testleri yazın.

İstem 4: Kullanıcı arayüzü katmanı
Son olarak, UiState öğesini parametre olarak kabul eden UserListScreen adlı bir Jetpack Compose işlevi yazın. Yükleme durumu için when ifadesini kullanarak CircularProgressIndicator, başarı durumu için kullanıcı adlarının LazyColumn, hata durumu için ise hata mesajını içeren bir Text öğesi görüntüleyin. Yeni işlevin doğrulandığı testler ekleyin.

Bir JSON API'den kullanıcı listesi getiren ve bunları listede görüntüleyen bir Jetpack Compose ekranı oluşturun. Retrofit ve coroutine'leri kullanan bir ViewModel, veri mantığını işleyen bir depo, User veri sınıfı olmalı ve yükleme ile hata durumlarını göstermelidir.

Bağlamı yönetme

Android Studio'da Gemini ile çalışmanın önemli bir parçası doğru bağlamı sağlamaktır. En faydalı yanıtları almak için alakalı kod snippet'leri, dosya içerikleri ve proje yapısı bilgilerini sağlayın. Doğru dengeyi bulmak için yineleme yapmanız gerekebilir: Çok fazla bilgi Gemini'ı yanıltabilirken çok az bilgi, Gemini'ın size yardımcı olabilmesi için yeterli bağlamı sağlamaz. Gemini'ın gerekli bağlama erişmesini sağlamak için mevcut özellikleri kullanın:

  • Öngördüğünüz kullanıcı arayüzünün veya anlamaya çalıştığınız uygulama mimarisinin görselini sağlamak için resim ekleyin.
  • Kod tabanının ilgili bölümlerini vurgulamak için dosyalar ekleyin.
  • Gemini'ın kod tabanının belirli kısımlarını yoksaymasını sağlamak için .aiexclude dosyalarını kullanın.
  • Projeye özel talimatlar vermek ve bunları ekibinizle paylaşmak için AGENTS.md dosyalarını kullanın. AGENTS.md dosyalarını kullanırken talimatlarınızı netleştirmek için Markdown üstbilgilerini ve biçimlendirmesini kullanın.
  • Aracı Modu'nu kullanırken Gemini'ın bilgi ve yeteneklerini harici ortamla genişletmek için MCP sunucularını yapılandırın.

Açıklama isteme

Android Studio'da Gemini'ın yanıtını anlamıyorsanız açıklama isteyin. Bu, önerilen çözümün kullanım alanınıza uygun olup olmadığını öğrenmek ve doğrulamak için harika bir yöntemdir. Yanıt beklentilerinizi karşılamadıysa Gemini'ın hatalı olması mümkündür. Açıklama istemek, Gemini'ın kendini düzeltmesine olanak tanır.

Talimatlarınızı yineleme

Android Studio'da Gemini ile çalışırken, iş arkadaşınızla çalışırken olduğu gibi bazen görev ve beklenen sonuç hakkında netlik kazanmak için birkaç kez iletişim kurmanız gerekir. Gemini'ın ilk yanıtı yeterli değilse yanıtı geri bildirim ve iyileştirme önerileriyle birlikte gönderin. Yanıtı, önerileriniz doğrultusunda iyileşirse İstem Kitaplığı'ndaki girişi veya AGENTS.md dosyalarınızı güncelleyerek bu öneriyi orijinal isteme dahil edin.