Biblioteca RxJava

RxJava es una biblioteca de programación reactiva diseñada para componer programas asíncronos y basados en eventos mediante el uso de secuencias observables.

La biblioteca de Places Rx te permite recibir secuencias observables para eventos asíncronos en el SDK de Maps para Android y el SDK de Places para Android, de modo que puedas aprovechar el amplio conjunto de funciones de RxJava.

Instalación

Para instalar la biblioteca de Places Rx en tu proyecto de Google Maps, sigue estos pasos:

  1. Agrega las siguientes dependencias a tu archivo build.gradle a nivel del módulo:

    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. Vuelve a compilar tu proyecto en Android Studio para sincronizar estos cambios.

Ejemplo de uso

En el siguiente ejemplo, se muestra cómo puedes recibir un Único, y suscribirte a él cuando recuperes detalles del lugar:

  placesClient.fetchPlace(
    placeId = "thePlaceId",
    placeFields = listOf(Place.Field.ID, Place.Field.NAME, Place.Field.ADDRESS),
    actions = {}
  ).subscribe(
    { response ->
      Log.d("PlacesRx", "Successfully got place ${response.place.id}")
    },
    { error ->
      Log.e("PlacesRx", "Could not get place: ${error.message}")
    }
  )
}

¿Qué sigue?