Android with AI Solution

Üretken yapay zeka ile Android uygulamalarınızı güçlendirin

Bu öğrenme yolunda, Google teknolojilerini kullanarak daha az çabayla daha ilgi çekici Android uygulamaları oluşturmayı öğreneceksiniz. Sonraki bölümlerde, Android geliştiricisi olarak şu anda üzerinde çalışıyor olabileceğiniz uygulama türünü temsil eden varsayımsal bir yemek hazırlama uygulaması oluşturup geliştireceksiniz.

Daha hızlı öğrenmek ve geliştirme yapmak için Android Studio'da Gemini'yi nasıl kullanacağınızı, uygulamanızın depolama katmanlarını oluşturmak ve oturum açmak için Firebase'i nasıl kullanacağınızı, uygulamanıza en son teknoloji üretken yapay zeka özelliklerini eklemek için Gemini'yi nasıl kullanacağınızı ve uygulamanızı üretimde desteklemek için Firebase Remote Config, Google Analytics ve Crashlytics gibi araçları nasıl kullanacağınızı öğreneceksiniz.

Android Studio'daki Gemini ile Android Geliştirme Sürecini Geliştirme

Yapay zeka destekli kodlama asistanınız Android Studio'daki Gemini'nin yardımıyla Android uygulamaları oluşturmak artık her zamankinden daha kolay.

Android Studio'daki Gemini, yapay zekayı doğrudan günlük kullandığınız IDE'ye entegre ederek yazılım geliştirme yaşam döngüsünün tamamında size yardımcı olarak yüksek kaliteli Android uygulamalarını daha hızlı ve kolay bir şekilde oluşturmanızı sağlar. Bu sayede yeni kavramları daha hızlı öğrenebilir, prototipleri kolayca oluşturabilir ve uygulamanızın önemli kısımlarına odaklanmak için daha fazla zaman ayırabilirsiniz.

Android uygulamanızı geliştirmeye başlarken Android Studio'daki Gemini'nin geliştirme yolculuğunuzu nasıl hızlandırabileceğini öğrenin.
Android'de veya belirli Android geliştirme alanlarında yeniyseniz Android Studio'daki Gemini, paha biçilmez bir öğrenme aracı olabilir.

  • Sorularınızın anında yanıtını alın: Temel Android kavramları, belirli API'ler veya en iyi uygulamalar hakkında doğrudan Android Studio'nun sohbet penceresinden Gemini'ye soru sorabilirsiniz. Örneğin, "Koyu tema nedir?" veya "Android'de konum bilgisini almayla ilgili en iyi yöntem nedir?" gibi sorular sorabilirsiniz.
  • Kod örnekleri ve rehberlik alın: Gemini, kod snippet'leri oluşturabilir ve kamera desteği ekleme veya Room veritabanı oluşturma gibi çeşitli özellikleri uygulama konusunda rehberlik sağlayabilir. Kotlin veya Jetpack Compose için kod isteğinde de bulunabilirsiniz.
  • Hataları anlayın ve çözümler bulun: Derleme veya senkronizasyon hatalarıyla karşılaşırsanız Gemini'den bu hataların nasıl çözüleceğine dair açıklama ve öneriler isteyebilirsiniz. Gemini, App Quality Insights'taki kilitlenme raporlarını analiz etmenize de yardımcı olabilir. Bunun için özetler sunar ve sonraki adımlar için öneriler verir.
Örneğin, varsayımsal yemek hazırlama uygulamamız için Gemini'den yemek tarifi kartı göstermek üzere yeni bir Oluştur düzeni prototipi oluşturmasına yardımcı olmasını isteyebilirsiniz. Gemini'nin çok formatlı özelliklerini kullanarak bir taslak şeması sağlayın ve Gemini'den kullanıcı arayüzünüzün kodunu çizmesini isteyin.
Android Studio'daki Gemini'nin bireysel sürümü, önizleme aşamasındayken ücretsizdir.

Ancak daha zorlu gizlilik ve yönetim koşullarına sahip büyük ekip ortamlarında geliştirme yapmak isteyen işletmeler için Studio'daki Gemini, gelişmiş gizlilik, güvenlik ve kod özelleştirme özellikleri gibi ek değerli avantajlar sunar. Ayrıca Google Cloud kredilerinizle kullanılabilir.

Bu araçlar, Gemini Code Assist ile birlikte ekiplere önemli gizlilik, güvenlik ve yönetim ihtiyaçlarını gidererek yapay zekanın gücünden güvenle yararlanma olanağı sunar.

Uygulamanız için Firebase yapı taşları

Uygulama geliştirmede bulut depolama, kullanıcı kimlik doğrulaması ve kilitlenme raporlama gibi yaygın özellikler, herhangi bir uygulamayı geliştirip çalıştırırken gerekli bileşenlerdir.

Firebase, bu temel yapı taşlarını sağlayarak Android uygulama geliştirme sürecini basitleştirir ve kendi arka uç uygulamanızı uygulamanız gerekmez.
Örneğin, yemek tarifi hazırlama uygulaması geliştiriyorsanız tarifleri, yemek planlarını ve malzeme listelerini cihazın ötesinde tutmanız gerekir (örneğin, kullanıcının telefon değiştirmesi ihtimaline karşı). Bu verileri Cloud Firestore'da kalıcı hale getirebilirsiniz.

Cloud Firestore, Firebase ve Google Cloud tarafından sunulan ölçeklenebilir bir NoSQL bulut veritabanıdır. Gerçek zamanlı dinleyiciler aracılığıyla istemci uygulamaları arasında gerçek zamanlı veri senkronizasyonu sağlar. Mobil ve web için çevrimdışı destek sunar. Böylece ağ kullanılabilirliğinden bağımsız olarak duyarlı uygulama performansı sağlar. Cloud Functions dahil olmak üzere diğer Firebase ve Google Cloud ürünleriyle sorunsuz şekilde entegre olur.

Kullanıcı kimlik doğrulaması, cihaz değiştiren kullanıcıların verilerine erişmesine izin vermek ve başkalarının verilerine erişememesini sağlamak için gereklidir.

Firebase Authentication, Android uygulamalarına kullanıcı kimlik doğrulaması ekleme işlemini basitleştiren güçlü bir araçtır. Arka uç hizmetleri ve e-posta/şifre girişi, telefon numarası kimlik doğrulaması ve Google, Facebook ve Twitter gibi popüler birleşik kimlik sağlayıcılarla entegrasyon da dahil olmak üzere çeşitli kimlik doğrulama yöntemlerini destekleyen hazır kullanıcı arayüzü kitaplıklarını içeren bir SDK sağlar.
Uygulamalarınızın kararlı ve başarılı olması için hataları ve kilitlenmeleri izlemek çok önemlidir. Kilitlenen bir uygulama, kullanıcılarınızın canını sıkar ve uygulamanın kaldırılmasına neden olur.

Firebase Crashlytics, uygulamanızın kalitesini düşüren kararlılık sorunlarını izlemenize, önceliklerini belirlemenize ve düzeltmenize yardımcı olan gerçek zamanlı bir kilitlenme raporlama aracıdır. Kilitlenmeleri akıllı bir şekilde gruplandırarak ve kilitlenmelere yol açan koşulları vurgulayarak sorun giderme süresinden tasarruf etmenizi sağlar.

Cloud Firestore ve Firebase Authentication, ücretsiz olarak sunulan geniş kapsamlı katmanlar sunar. Ancak uygulamanız bu hizmetlerden daha fazla kota veya gelişmiş özellikler gerektiriyorsa ücretli bir plan kullanmanız gerekir. Ancak endişelenmeyin. Bu maliyetleri karşılamak için Cloud kredilerinizi kullanabilirsiniz. Crashlytics, ne kadar kullanırsanız kullanın ücretsizdir.

Firebase tarafından sunulan diğer çözümler hakkında bilgi edinmek için Firebase web sitesini ziyaret edin.
scope.launch {
  val response = model.generateContent(
    "Create a shopping list with $cuisineStyle ingredients")
}
Örneğin, yemek tarifi uygulaması söz konusu olduğunda Gemini 2.0 Flash, belirli bir mutfak tarzında yemek pişirmek için gerekli malzemelerin alışveriş listesini oluşturabilir. Hatta modelden, kullanıcı arayüzünde oluşturulmak üzere uygulamada kolayca ayrıştırılabilen bir JSON dizesi oluşturmasını isteyebilirsiniz. Listeyi oluşturmak için "generateContent" işlevini bir metin istemiyle çağırmanız yeterlidir.

Bu konu hakkında daha fazla bilgi edinmek için Android geliştirici kılavuzunu inceleyin.

Android'de üretken yapay zeka

Üretken yapay zekayı yemek hazırlama Android uygulamamıza entegre etmek için çeşitli yöntemler kullanılabilir. Her bir seçeneğe kısaca göz atın:
Gemini Nano, Gemini ailesinin cihaz üzerinde çalışacak şekilde optimize edilmiş modelidir. AICore aracılığıyla doğrudan Android OS'e entegre edilmiştir. Ağ bağlantısına veya buluta veri göndermeye gerek kalmadan üretken yapay zeka deneyimleri sunmak için bu modeli kullanabilirsiniz.

Cihaz üzerinde yapay zeka, düşük gecikmenin, düşük maliyetin ve gizlilik önlemlerinin birincil endişeleriniz olduğu kullanım alanları için mükemmel bir seçenektir. Örneğin, bir yemek planlama uygulamasında Gemini Nano, farklı mutfaklara ve kullanıcının yemek geçmişine göre yemek fikirleri önermek için kullanılabilir.

Gemini Nano'nun teknik mimarisi hakkında daha fazla bilgiyi Android dokümanlarında bulabilirsiniz.

Kendi uygulamanızda Gemini Nano'yu denemek için aşağıdaki deneysel Google AI Edge SDK'sı ile cihaz üzerinde Gemini Nano adımını inceleyin.
Bulutta çalışacak şekilde optimize edilmiş üretken yapay zeka modelleri genellikle cihaz üzerinde çalışan yapay zeka modellerinden daha yeteneklidir.

Android geliştirici olarak, metin oluşturma görevleri için Gemini Pro ve Flash modellerini, resim oluşturma görevleri için de Imagen'i kullanarak Android uygulamanıza üretken yapay zeka özelliklerini hızlı bir şekilde uygulamak için Firebase'deki Vertex AI'ı kullanabilirsiniz.

Gemini Pro ve Flash yapay zeka modelleri çok formatlıdır ve çeşitli görevleri yerine getirebilir. Bu API'ler, resim, ses ve video girişi alır ve JSON, XML ve CSV olarak biçimlendirilebilecek metin çıkışı oluşturur. En yeni Gemini modelleri, ses ve resim gibi çok formatlı çıkışlar bile oluşturabilir.

Örneğin, yemek hazırlama uygulamasında belirli bir mutfak türüne ait malzemelerin yer aldığı bir alışveriş listesi oluşturmak için bir Gemini modelini kullanabilirsiniz.

Ayrıca, Gemini modellerine yapılan bu çağrıların maliyetlerini karşılamak için Google Cloud kredilerinizi kullanabilirsiniz.

Bulutta barındırılan Gemini modellerini uygulamanızda nasıl kullanacağınızı öğrenmek için aşağıdaki Firebase'de Vertex AI üzerinden Gemini adımını inceleyin.
Imagen 3, Google'ın en yeni görüntü üretme modelidir. Ayrıca Firebase'deki Vertex AI üzerinden erişerek Android uygulamanıza resim oluşturma özelliklerini hızlı ve sorunsuz bir şekilde ekleyebilirsiniz.

Örneğin, yemek hazırlama uygulamasında yemek tarifi resimleri oluşturmak için Imagen 3 modelini kullanabilirsiniz.

Maliyet, Google Cloud Kredinizle karşılanabilir.

Uygulamanızda Imagen 3'ü nasıl kullanacağınızı öğrenmek için aşağıdaki "Görüntü oluşturma için Imagen 3" adımını okuyun.
Üretken yapay zeka özelliklerini arka uç entegrasyonu aracılığıyla da ekleyebilirsiniz:

  • Genkit, yapay zeka destekli uygulamaların geliştirilmesini, dağıtılmasını ve izlenmesini kolaylaştıran açık kaynak bir çerçevedir.
  • Google Cloud'un Vertex AI, daha gelişmiş MLOps ihtiyaçları için Vertex AI model bahçesi aracılığıyla tam yönetilen hizmetler ve zengin bir model yelpazesi sunuyordu. Bu hizmetlerin maliyetlerini karşılamak için Google Cloud kredilerinizi de kullanabilirsiniz.


Gemini Nano'nun ötesinde cihaz üzerinde yapay zeka çıkarım çalıştırmak istiyorsanız LiteRT ve MediaPipe'i de deneyebilirsiniz:
  • LiteRT (eski adıyla TFLite), Google'ın cihaz üzerinde yapay zeka için yüksek performanslı çalışma zamanı ortamıdır. Makine öğrenimi modellerini doğrudan cihazlarda verimli bir şekilde çalıştırmak için tasarlanmıştır.
  • MediaPipe, geliştiricilerin video ve ses gibi multimedya verilerini gerçek zamanlı olarak işlemek için makine öğrenimi ardışık düzenleri oluşturmasını sağlayan açık kaynak bir çerçevedir.


Android üretken yapay zeka teklifleri hakkında daha fazla bilgi edinmek için Android belgelerinin yapay zeka bölümünü ziyaret edin.
Google AI Edge SDK'sı, Android uygulama geliştiricilerin uygulamalarını geliştirmek için Gemini Nano'nun cihaz üzerinde üretken yapay zeka özelliklerini entegre etmelerine ve denemelerine olanak tanır. Nasıl başlayacağınızı buradan öğrenebilirsiniz:
  • aicore-experimental Google grubuna katılın
  • Android AICore test programına kaydolun
    Bu adımları tamamladıktan sonra Play Store'daki AICore uygulama adı (uygulama ve cihazı yönet bölümünde), "Android AICore" yerine "Android AICore (Beta)" olarak değişir.
  • APK'ların ve ikili dosyaların cihazınıza düzgün şekilde indirildiğinden emin olmak için bu adımları uygulayın.
  • Ardından aşağıdaki bağımlılığı ekleyerek uygulamanızın Gradle yapılandırmasını güncelleyin: implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
    Minimum SDK hedefini 31 olarak ayarladığınızdan emin olun.
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
Ardından, yanıtlarını kontrol etmek için modeli yapılandırabilirsiniz. Bu işlem, bağlamı sağlama ve isteğe bağlı olarak aşağıdaki parametreleri ayarlamayı içerir:

  • Sıcaklık: Rastgelelik düzeyini kontrol eder. Daha yüksek değerler, çıkışta daha fazla çeşitlilik elde etmenizi sağlar.
  • En iyi K: Çıktı oluşturma işleminde dikkate alınacak en yüksek puanlı jetonların sayısını belirtir.
  • Aday sayısı: Döndürülecek maksimum yanıt sayısını belirler.
  • Maksimum Çıkış Jetonu Sayısı: Yanıtın maksimum uzunluğunu ayarlar.
val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext()
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}
İsteğe bağlı bir downloadCallback işlevi oluşturun. Bu geri çağırma işlevi, model indirme için kullanılır. Ayrıca, hata ayıklama amacıyla kullanılabilecek mesajlar da döndürür. Daha önce oluşturduğunuz oluşturma ve isteğe bağlı indirme yapılandırmalarını kullanarak "GenerativeModel" nesnesini oluşturun.
val downloadConfig = DownloadConfig(downloadCallback)
val generativeModel = GenerativeModel(
  generationConfig = generationConfig,
  downloadConfig = downloadConfig // optional
)
Son olarak, isteminizi modele ileterek çıkarım işlemini başlatın. GenerativeModel.generateContent(), askıya alma işlevi olduğundan uygun coroutine kapsamında olduğundan emin olun.

Yemek hazırlama uygulaması örneği bağlamında Gemini Nano, yemek geçmişinden farklı çeşitli mutfak türleri ve yemekler önererek yemek için ilham verebilir.
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)
}
Gemini Nano modelinin maksimum giriş jetonu sınırı 12.000'dir. Gemini Nano deneysel erişimi hakkında daha fazla bilgi edinmek için Android dokümanlarının Gemini Nano bölümüne gidin.

Firebase'de Vertex AI aracılığıyla Gemini

Firebase'de Vertex AI'dan yararlanmak, Gemini Cloud modellerini kullanarak üretken yapay zeka destekli özellikler oluşturmanıza olanak tanır. Tüm bunları Firebase ekosisteminin sorunsuz dağıtımı ve yönetimiyle yapabilirsiniz.

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")
}
Vertex AI Studio'da istemleri deneyerek başlayın. İstem tasarımı ve prototip oluşturma için etkileşimli bir arayüzdür. Metin ve resim içeren istemleri test etmek için dosya yükleyebilir ve daha sonra tekrar göz atmak üzere istemleri kaydedebilirsiniz.

Uygulamanızdan Gemini API'yi çağırmaya hazır olduğunuzda Firebase'de Vertex AI başlangıç kılavuzundaki talimatları uygulayarak Firebase'i ve SDK'yı kurun.

Ardından, Gradle bağımlılığını projenize ekleyin:

val generativeModel = Firebase.vertexAI
  .generativeModel(
  "gemini-2.0-flash",
  generationConfig = generationConfig {
        responseMimeType = "application/json"
        responseSchema = jsonSchema
  }
    )
Artık Kotlin kodunuzdan Gemini API'yi çağırabilirsiniz. Öncelikle Vertex AI hizmetini başlatın ve bir "GenerativeModel" örneği oluşturun:
scope.launch {
  val response = model.generateContent("
    Create a shopping list with $cuisineStyle ingredients")
}
Örneğin, yemek tarifi uygulaması söz konusu olduğunda Gemini 2.0 Flash, belirli bir mutfak tarzında yemek pişirmek için gerekli malzemelerin alışveriş listesini oluşturabilir. Hatta modelden, kullanıcı arayüzünde oluşturulmak üzere uygulamada kolayca ayrıştırılabilen bir JSON dizesi oluşturmasını isteyebilirsiniz. Listeyi oluşturmak için "generateContent" işlevini bir metin istemiyle çağırmanız yeterlidir.

Bu konu hakkında daha fazla bilgi edinmek için Android geliştirici kılavuzunu inceleyin.

Görüntü oluşturma için Imagen 3

Imagen 3'e Firebase'deki Vertex AI üzerinden erişebilirsiniz. Böylece, resim oluşturma özelliğini Android uygulamalarınıza sorunsuz bir şekilde entegre edebilirsiniz. Google'ın en gelişmiş görüntü üretme modeli olan Imagen 3, dikkate değer ayrıntılara, minimum düzeyde kusurlara ve gerçekçi ışıklandırma efektlerine sahip yüksek kaliteli görüntüler üreterek görüntü oluşturma alanında yeni bir standart belirledi.

Örneğin, Imagen 3, kullanıcılarınızın kendi profil avatarlarını oluşturmasına veya mevcut ekran akışlarını göstermek için öğeler oluşturmasına olanak tanıyabilir. Yemek hazırlama uygulaması örneğinde, yemek tarifi ekranı için resim oluşturmak üzere Imagen 3'ü kullanabilirsiniz.

Söz konusu istemle Imagen 3 tarafından oluşturulan resim: Akdeniz yemeği için güzel malzemelerin bulunduğu bir mutfak tezgahının üstten görünümünü gösteren çizgi film tarzı bir resim.
dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.10.0"))

    implementation("com.google.firebase:firebase-vertexai")
}
Imagen 3 entegrasyonu, Firebase'deki Vertex AI üzerinden bir Gemini modeline erişmeye benzer.

Android projenize Gradle bağımlılıklarını ekleyerek başlayın:
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
)
Ardından, Kotlin kodunuzda model adını ve isteğe bağlı olarak bir model yapılandırmasını ileterek bir "ImageModel" örneği oluşturun:
val imageResponse = imageModel.generateImages(
prompt = "A cartoon style illustration of a top overview of a kitchen countertop
  with beautiful ingredients for a $cuisineStyle meal."
)
Son olarak, metin istemiyle "generateImages" işlevini çağırarak resmi oluşturun:
val image = imageResponse.images.first()
val uiImage = image.asBitmap()
Oluşturulan resmi "imageResponse"dan alın ve bitmap olarak görüntüleyin:
Imagen 3'ü kullanma hakkında daha fazla bilgiyi Android Geliştiricileri Blogu'nda ve Android Geliştirici belgeleri'nde bulabilirsiniz.

Firebase ile üretime hazırlanma

Uygulamanızda genel yapay zeka özelliklerini uyguladıktan sonra, uygulamanızı üretime dağıtmadan önce uygulamanız için atmanız gereken bazı kritik adımlar şunlardır: Ayrıca kullanıcı gizliliğini ve sorumlu yapay zeka kullanımını göz önünde bulundurun ve beklenmedik model davranışları konusunda kullanıcılarınıza karşı şeffaf olun. Firebase'da Vertex AI ile üretime hazırlık hakkında daha fazla bilgi edinmek için aşağıdaki blog yayınını okuyun.