{"adoption": {"forks": 214, "observed_at": "2026-08-28T04:05:45.273091+00:00", "stars": 1860}, "canonical_url": "https://ross.abutalabs.com/products/smpagecontrol", "card": {"archived": false, "artifact_type": "library", "description": "A drop in replacement for UIPageControl with a slew of additional customization options.", "domain": ["mobile-development", "frontend", "accessibility"], "enriched": true, "function": ["ui-components", "mobile-framework"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Spaceman-Labs/SMPageControl"], "name": "Spaceman-Labs/SMPageControl", "platform": [], "pushed_at": "2019-07-07T11:55:33+00:00", "repo": "Spaceman-Labs/SMPageControl", "stars": 1860, "tags": ["objective-c", "uipagecontrol", "drop-in-replacement", "uiappearance", "cocoa-touch", "ios", "mobile"], "topics": [], "urls": [], "use_cases": ["customize page control dots with custom images in an iOS app", "make page indicators directly tappable to jump to a page", "replace UIPageControl without changing existing code", "style page control indicators with UIAppearance", "add accessible page names for VoiceOver users"], "what_it_is": "SMPageControl is a drop-in Objective-C replacement for UIPageControl on iOS with extensive customization options such as custom indicator images, sizes, spacing, and tappable indicators. It mirrors the UIPageControl API and supports UIAppearance and enhanced UIAccessibility.", "when_to_avoid": ["you are building in Swift with SwiftUI and prefer native controls", "you need a library under active development - the last release was 2019"], "when_to_choose": ["you need page indicators that match a custom app design", "you want a drop-in UIPageControl replacement with per-page images and accessibility names"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/smpagecontrol", "repo": "Spaceman-Labs/SMPageControl", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "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:05:45.273091+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.273091+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:15:52.492406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9635fbdfd231592c1ac3bdf2d8f8ee7abda6b971506727cafddc816d1b969321", "fetched_at": "2026-08-28T04:05:45.273091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Spaceman-Labs/SMPageControl"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5072, "days_push": 2614, "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}}