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ş ortağı gibi çalışır. Gemini'ın tüm potansiyelinden yararlanmak için etkili iletişim kurmak gerekir.

Bu rehberde, 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. Aracıya üst düzey bir hedef verebilirsiniz. Aracı, sorunu parçalara ayırır ve çözmek için bir plan oluşturur. Aracı, 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şimler arasında kalıcı olmaları için projenizin kök AGENTS.md dosyasına ekleyin. Bunu bir hata raporu gönderme gibi düşünebilirsiniz: 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 etmesi 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 sohbet tarzında ve paragraflara dayalı bir biçimde yanıt verir. 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 Aracı Modu'nu 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şlevler için birim testleri yazma

İ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 kısmı 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 isteminizi yinelemeniz gerekebilir. Çok fazla bilgi, Gemini'ı yanıltabilir. Çok az bilgi ise Gemini'ın size yardımcı olabilmesi için yeterli bağlamı sağlamaz. Gemini'a gerekli bağlama erişim izni vermek için mevcut özellikleri kullanın:

  • Resim ekleyerek tasarladığınız kullanıcı arayüzünün veya anlamaya çalıştığınız uygulama mimarisinin görselini paylaşın.
  • Kod tabanının ilgili bölümlerini vurgulamak için dosya 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ın net olması 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'daki 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ışmak, iş arkadaşınızla çalışmaya benzer şekilde bazen görev ve beklenen sonuç hakkında netlik kazanmak için karşılıklı iletişim gerektirir. 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.