Android uygulamasında Google API'leri nasıl kullanılır
Kısa cevap: Google Play Services, haritalar, kimlik doğrulama, bildirimler ve makine öğrenimi için API'ler sunan, bağımsız olarak güncellenebilen bir çerçevedir; depolar — Google Maven ve Maven Central'dır; kaynak kodları kısmen AOSP ve GitHub'da açık kaynaklıdır, tescilli modüller yalnızca ikili dosya olarak mevcuttur.
Google Play Services nedir ve neden gereklidir
Google Play Services (GPS), işletim sistemi sürümünden bağımsız olarak uygulama mağazası üzerinden güncellenen kütüphaneler ve hizmetlerden oluşan bir pakettir. Bu sayede aşağıdakiler için kararlı API'ler elde edersiniz:
- haritalar ve navigasyon (Maps),
- kimlik doğrulama ve hesaplar (Sign-In, Firebase Auth),
- anlık bildirimler (FCM),
- cihaz bütünlüğünün korunması (Play Integrity/SafetyNet),
- ML işlevleri ve yeni AI API'leri.
Pratik faydası: GPS modülünü bağlayarak karmaşık mantığı kendiniz uygulamak zorunda kalmazsınız ve farklı cihazlardaki davranış farklılıklarını azaltırsınız.
Fonksiyonları çağırmadan önce Play Services'in kullanılabilirliğini kontrol edin: GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context) ve temel işlevlere geri dönüş (fallback) yapın.
Depolar ve modüllerin nasıl bağlanacağı
Android için başlıca yapıtların kaynakları şunlardır:
- Google Maven — Play Services ve Firebase için ana depo.
- Maven Central — genel kütüphaneler ve üçüncü taraf bağımlılıklar.
- Jetpack modülleri, Google Maven üzerinden androidx ile sunulur.
Proje yapılandırma örneği (Project-level build.gradle):
buildscript {
repositories { google(); mavenCentral() }
dependencies { classpath 'com.android.tools.build:gradle:8.1.0' }
}
allprojects {
repositories { google(); mavenCentral() }
}
Bağımlılık örneği (Module: app):
dependencies {
implementation 'com.google.android.gms:play-services-maps:18.2.0'
implementation platform('com.google.firebase:firebase-bom:33.1.0') // Firebase için BOM
}
Temel depolar tablosu
| Depo | İçerdikleri | Modül örnekleri |
|---|---|---|
| Google Maven | Play Services, Firebase, Jetpack | play-services-maps, firebase-auth, androidx.compose:ui |
| Maven Central | Genel Android kütüphaneleri | Retrofit, OkHttp, Gson |
İpucu: Firebase sürümlerini uyumlu hale getirmek için BOM kullanın ve bağlanan modülleri en aza indirin — bu, APK/AAB boyutunu küçültür.
Kaynak kodları: neler açık, neler ikili dosya
- AOSP (Android Open Source Project), Android çekirdeğini ve bazı entegrasyonları içerir. Platformun tam kaynak kodu klonlama ve derleme için mevcuttur.
- Google'ın GitHub hesabı birçok örnek ve SDK barındırır (örneğin, Firebase için quickstart depoları).
- Pek çok Play Services modülü tescillidir: işlevsellikleri ikili kütüphaneler (AAR/APK) olarak sunulur. Bu tür modüllerin tam kaynak kodları genellikle mevcut değildir.
Analiz ve hata ayıklama için pratik öneriler:
- Açık kaynaklı depoları ve resmi örnekleri temel alın.
- İkili yapıtları incelemek için yerel olarak tersine mühendislik araçlarını kullanın, ancak değiştirilmiş ikili dosyaları değiştirmeyin veya dağıtmayın — bu, kullanım koşullarını ihlal eder.
Play Services APK'sını değiştirmeyin ve değiştirilmiş sürümleri dağıtmayın — bu, uyumluluk sorunlarına ve olası yaptırımlara yol açar.
Sık yapılan hatalar
- Tek tek modüller yerine tüm play-services paketinin bağlanması → uygulamanın gereksiz yere şişmesi.
- Play Services varlığının kontrol edilmemesi → servisleri olmayan cihazlarda çökmeler.
- Uyumsuz Firebase sürümleri (BOM olmadan) → bağımlılık çatışmaları.
SSS
- Haritalar için API anahtarı kaydetmek gerekir mi? — Evet, Maps bir API anahtarı ve bulut hizmetleri konsolunda ilgili API'lerin etkinleştirilmesini gerektirir.
- Kod örneklerini nereden alabilirim? — Resmi SDK quickstart depolarında ve GitHub'daki örneklerde.
- Play Services'i atlamak mümkün mü? — Kısmen: birçok işlev üçüncü taraf çözümlerle uygulanabilir, ancak bu ek destek ve test gerektirir.
Gerekli modülleri Google Maven üzerinden bağlayarak başlayın, Firebase için BOM kullanın, Play Services'in kullanılabilirliğini kontrol edin ve Google API'leri içeren emülatör ile gerçek cihazlarda test edin. Bu, geliştirmeyi hızlandırır ve uygulamanın güvenilirliğini artırır.