{"adoption": {"forks": 143, "observed_at": "2026-08-28T04:06:14.316536+00:00", "stars": 2111}, "canonical_url": "https://ross.abutalabs.com/products/statefulviewcontroller", "card": {"archived": false, "artifact_type": "library", "description": "Placeholder views based on content, loading, error or empty states", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["ui-components", "state-management"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["aschuch/StatefulViewController"], "name": "aschuch/StatefulViewController", "platform": [], "pushed_at": "2020-11-12T08:46:46+00:00", "repo": "aschuch/StatefulViewController", "stars": 2111, "tags": ["uikit", "view-controller", "placeholder-views", "loading-states", "swift", "ios", "mobile"], "topics": ["uiviewcontroller", "state-management", "loading", "error", "empty", "state", "placeholder", "swift"], "urls": [], "use_cases": ["show loading spinner while fetching data in ios view controller", "display empty state view when no content available", "show error placeholder when network request fails", "manage view states in uitableview or uicollectionview", "add placeholder screens to custom uiviews"], "what_it_is": "A Swift library providing a protocol for UIViewControllers and UIViews to display placeholder views based on content, loading, error, or empty states. It manages the state machine for showing and hiding the appropriate placeholder automatically.", "when_to_avoid": ["building for Android or cross-platform frameworks", "using SwiftUI rather than UIKit", "you need actively maintained dependencies - last release was 2020"], "when_to_choose": ["building an iOS or tvOS app in Swift that needs loading/empty/error placeholder views", "you want a lightweight protocol-based approach instead of a full UI framework"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/statefulviewcontroller", "repo": "aschuch/StatefulViewController", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "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:14.316536+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:14.316536+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:53:43.187097+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d10b7232c2eae0ac30ed04ee6909f5b1a25e56df22b64b13f600847b351d05", "fetched_at": "2026-08-28T04:06:14.316536+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aschuch/StatefulViewController"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 4383, "days_push": 2120, "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}}