{"adoption": {"forks": 308, "observed_at": "2026-08-28T04:06:13.147213+00:00", "stars": 2094}, "canonical_url": "https://ross.abutalabs.com/products/android-reactivelocation", "card": {"archived": false, "artifact_type": "library", "description": "Small library that wraps Google Play Service API in brilliant RxJava Observables reducing boilerplate to minimum.", "domain": ["mobile-development", "android-tools", "cross-platform"], "enriched": true, "function": ["sdk", "middleware"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["mcharmas/Android-ReactiveLocation"], "name": "mcharmas/Android-ReactiveLocation", "platform": [], "pushed_at": "2024-07-18T14:24:40+00:00", "repo": "mcharmas/Android-ReactiveLocation", "stars": 2094, "tags": ["rxjava", "google-play-services", "location", "geofencing", "geocoding", "activity-recognition", "places-api", "android"], "topics": [], "urls": [], "use_cases": ["get last known location on android with rxjava", "subscribe to location updates as an observable stream", "manage geofences without play services callback hell", "geocode a location to a list of addresses", "detect user activity like walking or driving", "fetch place autocomplete suggestions", "use the current place api reactively"], "what_it_is": "A small Android library that wraps the Google Play Services location APIs in RxJava Observables, eliminating callback boilerplate. It supports last-known location, location updates, geofencing, geocoding, activity recognition, and the Current Place / autocomplete APIs.", "when_to_avoid": ["you use Kotlin coroutines or Flow instead of RxJava", "you target modern AndroidX location APIs (FusedLocationProviderClient with ListenableFuture) in a new project", "you need a library with an explicit license or active maintenance guarantees"], "when_to_choose": ["your Android app already uses RxJava and you want reactive access to Play Services location APIs", "you want to avoid the LocationClient callback boilerplate", "you need geofencing, geocoding, or activity recognition wrapped in Observables"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/android-reactivelocation", "repo": "mcharmas/Android-ReactiveLocation", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:13.147213+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:55:25.772914+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "eb32cf47ec05e1ec0ce26573b69447b2d891ae4fcf5bae2cf770921e499ef440", "fetched_at": "2026-08-28T04:06:13.147213+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mcharmas/Android-ReactiveLocation"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4600, "days_push": 776, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}