{"adoption": {"forks": 429, "observed_at": "2026-08-28T04:08:03.879784+00:00", "stars": 3423}, "canonical_url": "https://ross.abutalabs.com/products/swiftlocation", "card": {"archived": false, "artifact_type": "library", "description": "⚓️ Async/Await CLLocationManager Wrapper for Apple Platforms", "domain": ["mobile-development", "developer-tools", "cross-platform"], "enriched": true, "function": ["sdk", "concurrency"], "health_score": 23, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["malcommac/SwiftLocation"], "name": "malcommac/SwiftLocation", "platform": [], "pushed_at": "2024-04-24T15:59:46+00:00", "repo": "malcommac/SwiftLocation", "stars": 3423, "tags": ["corelocation", "async-await", "location-services", "geolocation", "beacons", "swift-concurrency", "ios", "macos", "swift", "watchos", "tvos"], "topics": ["location-services", "cllocationmanager", "swift-library", "locationtracking", "swift", "swiftlang"], "urls": [], "use_cases": ["get the user's current location with async/await", "request location permissions in Swift", "continuously monitor user location updates", "monitor significant location changes or visits", "range iBeacons and monitor regions", "track device heading/compass direction", "mock CLLocationManager in unit tests"], "what_it_is": "SwiftLocation is a lightweight Swift wrapper around Apple's CoreLocation framework built on the async/await concurrency model. It replaces the delegate and completion-block patterns with clean async APIs for location requests, permission handling, region/beacon monitoring, and heading tracking.", "when_to_avoid": ["you need cross-platform (Android/Windows) location support", "your project targets Swift versions or Apple OS versions without async/await support", "you need advanced CoreLocation features the wrapper doesn't expose and prefer calling CoreLocation directly"], "when_to_choose": ["you're building an iOS/macOS/watchOS/tvOS app in Swift 5.3+ with structured concurrency", "you want a modern async/await API instead of CLLocationManager delegates", "you need one-shot location, continuous tracking, visits, beacons, or heading monitoring", "you want a testable location layer with a mocked CLLocationManager"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swiftlocation", "repo": "malcommac/SwiftLocation", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "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:08:03.879784+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:03.879784+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:38:05.839543+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3401942f47cf9b8654e79b524c4c1c24c4a3c9a81599af46e54303d176ad403", "fetched_at": "2026-08-28T04:08:03.879784+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malcommac/SwiftLocation"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4053, "days_push": 861, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}