RxJava Kitaplığı

RxJava, gözlemlenebilir diziler kullanarak eşzamansız ve etkinliğe dayalı programlar oluşturmaya yönelik reaktif bir programlama kitaplığıdır.

Haritalar Rx kitaplığı, Android için Haritalar SDK'sında ve Android için Yerler SDK'sında eşzamansız etkinlikler için gözlemlenebilir diziler almanızı sağlar. Böylece RxJava'nın zengin özelliklerinden yararlanabilirsiniz.

Döşeme

Haritalar Rx kitaplığını Google Haritalar projenize yüklemek için:

  1. Modül düzeyindeki build.gradle dosyanıza aşağıdaki bağımlılıkları ekleyin:

    dependencies {
        // RxJava bindings for the Maps SDK
        implementation 'com.google.maps.android:maps-rx:1.0.0'
    
        // RxJava bindings for the Places SDK
        implementation 'com.google.maps.android:places-rx:1.0.0'
    
        // It is recommended to also include the latest Maps SDK, Places SDK and RxJava so you
        // have the latest features and bug fixes.
        implementation "com.google.android.gms:play-services-maps:18.2.0"
        implementation 'com.google.android.libraries.places:places:3.4.0'
        implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
    
  2. Bu değişiklikleri senkronize etmek için projenizi Android Studio'da yeniden oluşturun.

Örnek Kullanım

İşaretçi tıklama etkinlikleri için GoogleMap nesnesinde uzantı işlevi olarak bir Gözlemlenebilir öğe alın:

googleMap.markerClickEvents()
  .subscribe { marker ->
    Log.d("MapsRx", "Marker ${marker.title} was clicked")
  }

Bir sonraki örnekte, çeşitli kamera etkinliklerini tek bir Gözlemlenebilir akışta birleştirmek için RxJava operatörünü (merge) nasıl kullanabileceğiniz gösterilmektedir:

Observable.merge(
  googleMap.cameraIdleEvents(),
  googleMap.cameraMoveEvents(),
  googleMap.cameraMoveCanceledEvents(),
  googleMap.cameraMoveStartedEvents()
).subscribe {
  // Notified when any camera event occurs
}

Sırada ne var?