{"adoption": {"forks": 72, "observed_at": "2026-08-28T04:03:32.492836+00:00", "stars": 1088}, "canonical_url": "https://ross.abutalabs.com/products/swiftuibackports", "card": {"archived": false, "artifact_type": "library", "description": "A collection of SwiftUI backports for iOS, macOS, tvOS and watchOS", "domain": ["mobile-development", "cross-platform", "apple-ecosystem", "frontend"], "enriched": true, "function": ["ui-components", "sdk", "developer-tools"], "health_score": 88, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["shaps80/SwiftUIBackports"], "name": "shaps80/SwiftUIBackports", "platform": ["cross-platform"], "pushed_at": "2026-06-12T23:38:57+00:00", "repo": "shaps80/SwiftUIBackports", "stars": 1088, "tags": ["swiftui", "backports", "apple-platforms", "watchos", "tvos", "compatibility-shims", "property-wrappers", "ios", "macos", "swift", "mobile"], "topics": ["modal", "presentation", "swift", "textview", "sharesheet", "backport", "photopicker", "propertywrapper", "swiftui", "ios", "macos", "tvos", "watchos"], "urls": [], "use_cases": ["use presentationDetents on older iOS versions", "support newer SwiftUI APIs while targeting old OS versions", "backport LabeledContent to older Apple platforms", "request app review on older iOS versions", "share sheet and photo picker on older SwiftUI versions", "reduce migration effort when raising deployment targets"], "what_it_is": "A Swift package providing backports of modern SwiftUI APIs to older versions of iOS, macOS, tvOS, and watchOS. It mirrors Apple's API names and behavior so code stays familiar and is easy to migrate once the deployment target reaches the native API.", "when_to_avoid": ["your deployment target already includes the native SwiftUI APIs", "you need backports for platforms older than iOS 15/macOS 12 on v27+", "you build with non-Apple UI frameworks like UIKit-only or cross-platform toolkits"], "when_to_choose": ["you support older iOS/macOS/tvOS/watchOS versions but want modern SwiftUI APIs", "you want API-compatible shims that are easy to remove later", "you need a reference implementation for writing your own SwiftUI backports"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swiftuibackports", "repo": "shaps80/SwiftUIBackports", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "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:03:32.492836+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.492836+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.207448+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7b94519da6775e638a49796715d5ba1e9c89c7a20cf1040ce710014181522970", "fetched_at": "2026-08-28T04:03:32.492836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/shaps80/SwiftUIBackports"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 87, "longevity": 100, "rhythm": 59}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1531, "days_push": 82, "days_rel": 277, "gap_med": 1, "n_releases_24m": 2}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}