ספריית RxJava

RxJava היא ספריית תכנות תגובתית להרכבת תוכניות אסינכרוניות ומבוססות-אירועים על ידי באמצעות רצפים גלויים.

הספרייה Rx של מפות Google מאפשר לקבל רצפים גלויים של אירועים אסינכרוניים ב-SDK של מפות Google ל-Android ו-Places SDK ל-Android, כדי שתוכלו לנצל את המגוון העשיר של התכונות של RxJava.

התקנה

כדי להתקין את הספרייה Rx של מפות Google בפרויקט של מפות Google:

  1. מוסיפים את יחסי התלות הבאים לקובץ build.gradle ברמת המודול:

    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:19.0.0")
        implementation("com.google.android.libraries.places:places:3.5.0")
        implementation("io.reactivex.rxjava3:rxjava:3.1.8")
    
  2. כדי לסנכרן את השינויים האלה, צריך ליצור מחדש את הפרויקט ב-Android Studio.

שימוש לדוגמה

קבלת 'ניראות' עבור אירועים של קליקים על סמנים כפונקציה של תוסף באובייקט GoogleMap:

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

הדוגמה הבאה ממחישה איך אפשר להשתמש באופרטור RxJava, merge, כדי לשלב אירועי מצלמה שונים בשידור אחד שגלוי לכולם:

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

המאמרים הבאים