MVVM ile Game Service Kullanımı / Part 1 — Login

Berk Özyurt
Huawei Developers - Türkiye
4 min readFeb 23, 2021

Herkese merhabalar.

Bu yazımda Huawei’nin geliştiricilere sunduğu bir servis olan Huawei Game Servis hakkında bilgiler verip, geliştirdiğiniz mobil oyunda nasıl kullanacağınızı, MVVM yapısı ile nasıl kullanabileceğinizi anlatacağım.

Game Service Nedir?

HMS Game Service, mobil geliştiricilere sunduğu, bir mobil oyun uygulamasının tüm ihtiyaçlarını karşılayan bir servistir. Game Service sayesinde oyunda kolayca bir leaderboard oluşturabilirsiniz, eventler yaratabilir ve çeşitli achievementler hazırlayıp, kullanıcıların oyunlarını kaydetmesini sağlayabilirsiniz. Tüm bu işlemleri hazır bir servis üzerinden yaptığınız için az ve düzenli bir kod yapısıyla, güvenilir bir biçimde oyun projenizi oluşturabilirsiniz.

Huawei Game Service oyunlarınızı daha verimli bir şekilde geliştirmenize yardımcı olmak için bazı özellikler sunar. Bunlar:

  • HUAWEI ID sign-in
  • Game addiction prevention
  • Floating window
  • Achievements
  • Events
  • Leaderboards
  • Saved games
  • Player statistics
  • Access to basic game information

Gereksinimler

  • Android Studio 3.x veya daha üstü.
  • JDK 1.8 veya daha üstü.
  • SDK:

— minSdkVersion: 17

— targetSdkVersion: 29

— compileSdkVersion: 29

  • Test Cihazı :

Geliştirme Adımları

1. Entegrasyon

İlk önce HMS kullanabilmek için bir developer hesabı açılmalı ve HMS Core projeye entegre edilmeli. Bu süreç ile ilgili yazıya aşağıdaki bağlantıdan erişebilirsiniz.

2. Bağımlılıkların Eklenmesi

HMS Core projeye entegre edilip, konsol üzerinden Game Service aktifleştirildikten sonra, gerekli olan kütüphaneler aşağıdaki gibi app dizininde yer alan build.gradle dosyasına eklenir.

dependencies {
implementation 'com.huawei.hms:base: 5.0.5.300'
implementation 'com.huawei.hms:hwid:4.0.1.300'
implementation 'com.huawei.hms:iap:5.0.1.300'
implementation 'com.huawei.hms:game: 5.0.4.302'
}

3. BaseApplication Sınıfı

Uygulama başlatırıken, servislerin de aynı anda aktif hale gelmesi için bir Aplication sınıfı gereklidir. Bunun için BaseApplication isminde bir sınıf oluşturarak Manifest dosyasına ekliyoruz.

4. Giriş Sayfası Tasarımı

Projeye tüm izinler ve kütüphaneler eklendikten sonra, artık oyun geliştirmeye oturum açama işlemini kodlayarak başlayabilirsiniz. Bunun için Huawei Auth Service’i kullandım . Auth Service sayesinde tüm kullanıcıları konsol üzerinde görebilirsiniz. Ayrıca Auth Service birçok türde oturum açma yöntemi sağlar. ( Facebook, Twitter, Google, E-posta, Telefon Numarası veya Huawei Kimliği ile ) Örnek olması için genel bir ekran tasarımını paylaşacağım ve Huawei ID ile giriş yapma örneği vereceğim .

Auth Service dökümanlarına aşağıdaki bağlantıdan ulaşabilirsiniz.

5. LoginViewModel Sınıfı

LoginViewModel sınıfı, View sınıfından veri alacak, verileri işleyecek ve View sınıfına yeniden gönderecektir. Yani tüm giriş işlemleri bu sınıfta yapılacaktır.

İlk olarak, HuaweiIdAuthService nesnesinden bir istemci oluşturun.

private lateinit var mClient: HuaweiIdAuthService

Daha sonra, çıkış işlemlerini yapmalıyız. Bunun amacı, uygulamada daha önce açık olan bir oturum varsa sonlandırmaktır. Çıkış yaptıktan sonra, giriş metodunu oluşturmalıyız. Ve giriş metodu içinde ilk olarak çıkış metodunu çağırın. Son olarak startActivityForResult metodu eklemeli ve View sınıfında override edilmeli.

LoginViewModel sınıfı aşağıdaki gibi olmalıdır.

6. LoginViewModelFactory Sınıfı

Bir ViewModelFactory sınıfı oluşturun ve parametre olarak context nesnesini set edin. Bu sınıf, ViewModel sınıfını döndürmelidir.

7. LoginFragment Sınıfı

Öncelikle ViewModel bağımlılıkları Xml dosyasına eklenmelidir. Bunun için, Xml dosyanızı yeniden açın ve variable name alanına“viewmodel” olarak ekleyin. type kısmına ise ViewModel sınıfınızın dizinini ekleyin.

<data>
<variable
name="viewmodel"
type="com.xxx.xxx.viewmodel.LoginViewModel"/>
</data>

LoginFragment’a geri döndükten sonra factory sınıfı, viewModel sınıfı ve az önce eklediğimiz binding nesnesini ekleyin.

private lateinit var binding: FragmentLoginBinding
private lateinit var viewModel: LoginViewModel
private lateinit var viewModelFactory: LoginViewModelFactory

Daha sonra, bu nesneleri onCreateView metodu içinde tanımlayın.

Oturum açmak için bir button ve setOnClickListener oluşturarak ViewModel sınıfı içindeki login metodunu çağırın.

Son olarak, onActivityResult metodunu oluşturun ve oturum açma işleminin sonuçlarını burada kontrol edin. Giriş başarılı olursa bazı kullanıcı bilgilerini görebilirsiniz. (Kullanıcı adı, Id, Ülke, Yaş vb.) Auth Service size birçok kullanıcı bilgisi sağlar. Bu bilgileri uygulamanın her yerinde kullanabilirsiniz.

Sonuç

Bu yazı yardımıyla oyun uygulamanızda Auth Service kullanarak giriş işlemleri oluşturabilirsiniz. Çünkü Auth Service, geliştiricilere çok fazla kullanıcı bilgisi ve kolay bir kullanım sağlıyor. Ayrıca Developer Console ile tüm kullanıcıları görüntüleyebilirsiniz.

Bir sonraki yazımda Achievemets ile ilgili bilgiler verip, bir örnek paylaşacağım. Oyun uygulamanızı MVVM mimarisi ve HMS desteği ile geliştirmek için lütfen ikinci makaleyi takip edin.

--

--