Huawei Servisleri Kullanarak Müze Uygulaması Geliştirmek | Kotlin

Ali Osman ARSLAN
Huawei Developers - Türkiye
4 min readJan 3, 2023
Huawei Map Kit, Location Kit, Site Kit Giriş

Giriş

Herkese merhaba,

Bu makalede sizlere Huawei servislerini kullanarak Visit Score uygulamasını nasıl geliştirdiğimi anlatacağım. Öncelikle bu uygulama içerisinde kullandığım servislerden bahsetmek istiyorum. Bunlar ; Map Kit, Location Kit, Account Kit, Site Kit, Push Kit, Analytics Kit, Auth Service ve Crash Service. Bu makalede Map Kit, Location Kit, Site Kit’i anlatacağım. Kodlamaya başlamadan önce kısaca sırasıyla kullanacağımız servislerden bahsetmek istiyorum.

SERVİSLER HAKKINDA🤔

1. Map Kit

HMS Map Kit, kolay entegrasyonlu, kullanım alanı geniş ve çeşitli özellikler sunan bir Huawei Servisi. Üstelik Map Kit sürekli güncellenerek verilerini zenginleştirmeye ve harita üzerinde küçük ölçeklerde bile farklılıkları güncel olarak yansıtıyor.

2. Location Kit

HMS Location Kit, Wi-Fi, GPS ve baz istasyonlarından aldığı bilgileri uygun şekilde birleştirerek size hızlı ve doğruluk payı çok yüksek olan konum bilgisini (enlem ve boylam değerleri olarak) sağlayan ve bu bilgi üzerinden bazı işlemleri yapabilmenizi sağlayan bir servistir.

3. Site Kit

Site Kit, konumumuza göre yer-mekan aramaları yapabiliyoruz. Bu aramaları yaparken de anahtar kelime ile arama, ayrıntılı yer araması ve önerilen yer araması gibi seçenekler ile filtreleyebiliyoruz.

VisitScore App Sayfa 1

Hadi Pratik Yapalım👨‍💻☕

Kodlama kısmına başlamadan önce uygulamanıza HMS Core entegre etmeniz gerekiyor. Bunun için buradaki bağlantıya tıklayabilirsiniz.

HMS Core entegre ettikten sonra AppGallery Connect’te, proje ayarlarından Account Kit, Auth Service, Map, Location ve Site Kitleri aktif hale getirmeniz gerekiyor. Bunun için buradaki bağlantıya tıklayabilirsiniz.

Projemiz için gerekli ayarları yaptıktan sonra ilk olarak gerekli izinleri ve kütüphaneleri eklememiz gerekiyor. Bunun için öncelikle Android Manifest Dosyasındaki izinleri tanımlayalım.

Şimdi ise build.gradle(app) içinde gerekli kütüphaneleri ekleyelim.

Uygulama UI Tasarımı ve Site Kit’e Giriş

Kullanıcı, Spinner’dan seçtiği bir parametre aracılığıyla çevresindeki farklı küme alanlarını görüntüleyebilir. Örneğin kullanıcı sadece çevresindeki müzeleri görmek istiyorsa Spinner’dan seçtiği değere göre Sanat Müzesi veya Tarih Müzesi parametrelerini Site Kit’e gönderebilmeliyiz.

Bu yapı için örnek XML dosyası:

Spinner için mekan parametrelerini bir list’e atıyoruz.

Ekleyebileceginiz parametrelerin tam listesi icin buraya tiklayin.

onViewCreated() içerisinde spinner adapter setliyoruz.

Spinner’ımız hazır. Şimdi seçtiğimiz item a göre harita üzerinde konumlandırma yapalım. Bunun için önce konum bilgisini alalım.

VisitScore App Sayfa 2

Location Kit ile Konum Bilgisi Almak

Konum bilgilerine erişmek için ihtiyaç duyduğumuz izinleri kolaylaştırmak için bir permissionHandler sınıfı kullanarak kodun karmaşıklığını azaltalım.

Kullanıcının konumunu öğrenmek için, requestPermission() methdounu onViewCreated() içerisinde çağırarak başlıyoruz. Konum bilgisi için 3 tane runtime izine ihtiyacımız var bu sebeple izinleri bir array içerisinde tanımlıyoruz.

onViewCreated() içerisinde LocationService e erişebilmek için bir FusedLocationProviderClient() nesnesi oluşturuyoruz.

Ardından, kullanıcının erişilebilir son konumunu elde etmek için getLastLocation() yöntemini çağırırız. Genellikle son konum, cihazın geçerli konumudur.

Bu adımlardan sonra artık elimizde kullanıcının lat ve lng bilgisi var. İki global değişken tanımlayarak bu bilgileri onlara atıyoruz ki class içerisinde başka methodlara parametre olarak gönderebilelim. Bu parametreleri Site Kit ile birlikte kullanacağız.

Site Kite Devam Edelim

Spinner’da seçilen ve değişken olabilen parametre ile harita üzerinde gelen konumları gösteriyor olacağız. Bu sebeple bir getSites() methoduna ihtiyacımız var.

Bu method ile spinenerdan gelen parametre ile site verisine elimizdeki lat ve lng bilgisini HwLocationType kullanarak istek attık. Gelen değerleri haritada işaretledik ve uzaklık bilgisini her bir marker üzerinde gösterdik. İsteğe bağlı olarak NearbySearchRequest() parametresini değiştirebilirsiniz. Örnek olarak ben radius değerini UI da bulunan seekBar değeri ile setledim ve 1–50km etrafımdaki site verisine erişebildim.

VisitScore App Sayfa 3

Öncelikle onViewCreated() methodu içerisinde map initialize ediyoruz ve onMapReadyCallback fragment içerisinde extend ediyoruz.

Haritayı fragment içerisinde extend ettiğimiz zaman, android studio bizden onMapReady methodunu da tanımlamamızı da isteyecektir. Bu methodla aynı zamanda spinner için onItemSelected ekliyoruz.

Sonuç🍾

Kullanıcının konumunu aldık ve kullanıcıdan haritada görmek istediği mekanların kategorisini seçmesini istedik ve Site Kit’ten geri dönen değerleri haritada gösterdik.

Bir sonraki yazımızda görüşmek üzere👋

VisitScore App Sayfa 4

Referanslar

--

--