CMS DEMO’yu Keşfedin: Android’de Harita, Konum ve Reklam Kiti Örnekleri

Emine İNAN
Huawei Developers - Türkiye
5 min readAug 22, 2024
Photo by Solen Feyissa on Unsplash

Giriş🌌

Common Mobile Services (CMS) kütüphanesi, Huawei ve Google Mobil Servislerinin tek bir çözüm aracılığıyla entegrasyonunu basitleştirirken CMS DEMO projesi, geliştiricilerin CMS kütüphanesini projelerine kolayca entegre etmelerine yardımcı olacak pratik örnekler sunar.

Bu makalede, CMS DEMO projesini keşfedeceğiz ve Android’deki Harita, Konum ve Reklam Kiti örneklerine odaklanacağız.

CMS kütüphanesi hakkında daha ayrıntılı bilgi için bu makaleyi inceleyebilirsiniz:

CMS DEMO Projesine Hızlı Bir Genel Bakış

Sorunsuz bir entegrasyonu kolaylaştırmak için CMS DEMO projesi, Common Mobile Services kütüphanesinin yeteneklerini ve işlevselliklerini sergileyen canlı bir demo sunar. Bu demo uygulaması, geliştiricilerin en son özelliklere ve iyileştirmelere erişimini sağlamak için sürekli olarak yeni kit demolarıyla güncellenmektedir.

Bir sonraki bölümde, Android’deki Harita, Konum ve Reklam Kiti örneklerine odaklanarak CMS DEMO projesini ayrıntılı olarak inceleyeceğiz.

Harita ve Konum Kitleri: Konum Verilerini Haritalara Entegre Etme ve Görüntüleme

Bu bölümde, Harita Kiti ve Konum Kiti’nin Android uygulamanıza nasıl entegre edileceğini keşfedeceğiz. CMS DEMO projesinden alınan örnekle, ortamın nasıl kurulacağını, kullanıcının mevcut konumunun nasıl alınacağını ve bu konumun bir haritada nasıl görüntüleneceğini öğreneceğiz.

MapScreen

🚩 Adım 1: MapScreen için XML Düzeninin Oluşturulması

Öncelikle MapScreen için bir fragment dosyası oluşturun ve XML dosyasındaki düzenini tanımlayın.

Kullanıcı arayüzü öğelerinin konumlarını yönetmek için ConstraintLayout'u kullanın; harita ekranı başlığını görüntülemek için en üste bir TextView ve bir API anahtarıyla başlatılan haritayı görüntülemek için altına CommonMapView yerleştirin.

fragment_map_screen.xml

🚩 Adım 2: MapScreen Fragment’ını Uygulama

Harita ve konum verilerini yönetmek için MapScreen fragment dosyasını açın.

💠 onCreateView()
Bu fonksiyon, fragment’ın görünümünü başlatmaktan sorumludur. FragmentMapScreenBinding kullanarak düzeni yükler, mapView’ı başlatır ve showAlertDialog() ile initLocation()’ı çağırır.

MapScreen.kt

💠 showAlertDialog()
Bu fonksiyon, kullanıcıyı kullanılan Harita ve Konum Kiti servisleri hakkında bilgilendiren bir uyarı diyalog penceresi sunar. Servis bilgilerini önceden tanımlanmış bir listeden alır ve görüntüler.

MapScreen.kt

💠 initLocation()
Bu fonksiyon, kullanıcının konumunu izlemek için gerekli olan LocationClient'i başlatır. Ayrıca, GPS açık değilse bunu etkinleştirir ve başarılı olursa, requestLocationUpdates() metodunu çağırarak konum güncellemeleri talep eder.

MapScreen.kt

💠 requestLocationUpdates()
Bu fonksiyon, LocationClient'ten sürekli konum güncellemeleri talep eder. Talebin başarılı ya da başarısız olmasına bağlı olarak, kullanıcıya uygun geri bildirim sağlar. Başarılı olursa, son bilinen konumu almaya devam eder.

MapScreen.kt

💠 getLastLocation()
Bu fonksiyon, kullanıcının son bilinen konumunu alır. Başarılı olursa, haritayı kullanıcının mevcut enlem ve boylamıyla başlatır ve konumunu haritada görüntüler.

MapScreen.kt

💠 initMap()
Kullanıcının konumu alındıktan sonra, initMap() çağrılır ve harita görünümünü kurar. Kullanıcının konumuna bir işaretçi ekler ve kamerayı bu noktaya odaklanacak şekilde animasyonla hareket ettirir.

MapScreen.kt

💠 removeLocationUpdates()
Son olarak, bu fonksiyon, konum güncellemeleri artık gerekli olmadığında kaynakları korumak için bu güncellemeleri durdurur.

MapScreen.kt

Reklam Kiti: Uygulamanıza Reklam Entegre Etme

Bu bölümde, Reklam Kiti’ni Android uygulamanıza nasıl entegre edeceğimizi keşfedeceğiz. CMS DEMO projesinden alınan örnekle, ortamın nasıl kurulacağını, banner, geçiş ve ödüllü reklamlar gibi çeşitli reklam formatlarını nasıl yükleneceğini ve bunların uygulamada nasıl görüntüleneceğini öğreneceğiz.

AdsScreen
AdsScreen

🚩 Adım 1: AdsScreen için XML Düzeninin Oluşturulması

Öncelikle AdsScreen için bir fragment dosyası oluşturun ve XML dosyasındaki düzenini tanımlayın.

Splash reklamlar için CommonSplashAdView, banner reklamlar için CommonBannerAdView, çeşitli reklam türleri için TextView ve Button öğeleri içeren bir ConstraintLayout, ve yükleme göstergeleri için bir ProgressBar içermelidir.

fragment_ads_screen.xml

🚩 Adım 2: AdsScreen Fragment’ını Uygulama

Çeşitli reklam formatlarını uygulayıp yüklemek için AdsScreen fragment dosyasını açın.

💠 onCreateView()
Bu fonksiyon, fragment’ın görünümünü başlatmaktan sorumludur. FragmentMapScreenBinding kullanarak düzeni yükler ve showAlertDialog() ile initUI()’ı çağırır.

AdsScreen.kt

💠 showAlertDialog()
Bu fonksiyon, kullanıcıyı kullanılan Ads Kit servisi hakkında bilgilendiren bir uyarı diyalog penceresi sunar. Servis bilgilerini önceden tanımlanmış bir listeden alır ve görüntüler.

AdsScreen.kt

💠 initUI()
Bu fonksiyon, kullanıcı arayüzündeki (UI) butonlar için tıklama dinleyicilerini ayarlar, böylece farklı türdeki reklamları tetikler. Her butonun tıklama olayını ilgili reklam gösterme fonksiyonuna bağlar.

AdsScreen.kt

💠 showSplashAd()
Bu fonksiyon, bir splash reklamı gösterir. Öncelikle bir ilerleme göstergesi (progress indicator) gösterir, splash reklamı yükler ve reklam yükleme geri çağrılarını (callback) işler. Reklam yükleme durumu hakkında bir toast mesajı gösterir ve reklam görüntülendikten sonra reklamın kapanmasını simüle eder.

AdsScreen.kt

💠 showBannnerAd()
Bu fonksiyon, bir banner reklamı görüntüler. Banner reklam görünümünü (view) başlatır, reklamın yükleme durumu hakkında bir toast mesajı gösterir ve reklamın başarıyla yüklenip yüklenmediğini bildirmek için geri çağrıları (callback) işler.

AdsScreen.kt

💠 showRewardedAd()
Bu fonksiyon, bir ödüllü reklam (rewarded ad) gösterir. İlk olarak bir ilerleme göstergesi (progress indicator) gösterir, ödüllü reklamı yükler ve reklam yükleme geri çağrılarını (callback) işler. Reklam yükleme durumu hakkında bir toast mesajı gösterir, reklam tamamlandığında kullanıcıyı ödüllendirir ve reklamın sonucuna göre uygun mesajlar görüntüler.

AdsScreen.kt

💠 showInterstitialAd()
Bu fonksiyon, bir geçiş reklamı (interstitial ad) gösterir. İlk olarak bir ilerleme göstergesi (progress indicator) gösterir, geçiş reklamını yükler ve reklam yükleme geri çağrılarını (callback) işler. Reklam yükleme durumu hakkında bir toast mesajı gösterir ve reklam başarıyla yüklendiğinde reklamı görüntüler, ardından ilerleme göstergesini gizler.

AdsScreen.kt

💠 simulateAdDismissal()
Bu fonksiyon, bir reklamın kapanmasını simüle eder. Bunu, bir Handler kullanarak gecikmeli bir görev göndererek yapar. 3 saniyelik bir gecikmeden sonra ana içerik görünümünün görünürlüğünü geri getirir.

AdsScreen.kt

💠 showProgress()
Bu fonksiyon, bir reklamın yüklendiğini belirtmek için ilerleme göstergesini (progress indicator) gösterir ve ana içerik görünümünü gizler.

AdsScreen.kt

💠 hideProgress()
Bu fonksiyon, ilerleme göstergesini (progress indicator) gizler ve ana içerik görünümünü gösterir, bu da reklamın yüklenmesinin tamamlandığını veya başarısız olduğunu belirtir.

AdsScreen.kt

Sonuç🤠

Bu makalede, CMS DEMO projesini kullanarak bir Android uygulamasına Harita, Konum ve Reklam Kit örneklerinin entegrasyonunu inceledik. Bu örnekleri takip ederek, projelerinizde bu servisleri etkili bir şekilde uygulayabilir, işlevselliği ve kullanıcı deneyimini artırabilirsiniz. CMS DEMO’yu daha ayrıntılı incelemekten ve projelerinize nasıl fayda sağlayabileceği konusunda geri bildiriminizi bizimle paylaşmaktan çekinmeyin.

Feeling The End GIF

--

--

Emine İNAN
Huawei Developers - Türkiye

Android Developer by day, Android Developer by night. @Huawei