{"adoption": {"forks": 60, "observed_at": "2026-08-28T04:05:16.660221+00:00", "stars": 1649}, "canonical_url": "https://ross.abutalabs.com/products/compose-cupertino", "card": {"archived": false, "artifact_type": "library", "description": "Compose Multiplatform UI components for iOS (Cupertino Widgets)", "domain": ["mobile-development", "cross-platform", "web-development", "desktop-applications"], "enriched": true, "function": ["ui-components", "frontend-framework", "theme"], "health_score": 53, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["alexzhirkevich/compose-cupertino"], "name": "alexzhirkevich/compose-cupertino", "platform": ["jvm"], "pushed_at": "2025-10-05T13:47:00+00:00", "repo": "alexzhirkevich/compose-cupertino", "stars": 1649, "tags": ["compose-multiplatform", "cupertino", "ios-style-widgets", "swiftui-inspired", "sf-symbols", "kotlin-multiplatform", "adaptive-ui", "ios", "android", "macos", "web"], "topics": [], "urls": [], "use_cases": ["build iOS-looking apps with Compose Multiplatform", "use Cupertino widgets in Kotlin Multiplatform", "make adaptive UI that switches between Material and iOS styles", "add SF Symbols icons to a Compose app", "implement iOS-style swipe-back navigation with Decompose", "wrap native UIKit widgets in Compose for iOS"], "what_it_is": "Compose Cupertino is a Kotlin Multiplatform library providing iOS-style (Cupertino) UI components for Compose Multiplatform, including themes, widgets, native UIKit wrappers, adaptive Material/Cupertino theming, and SF Symbols icon vectors. It lets developers build native-looking iOS applications from shared Kotlin code across iOS, Android, desktop, and web.", "when_to_avoid": ["you target only Android with Material Design", "you need a full native iOS app with SwiftUI rather than Compose", "you need widgets not covered by the library and cannot extend them", "your project does not use Kotlin or Compose Multiplatform"], "when_to_choose": ["you want native-feeling iOS visuals in a shared Compose Multiplatform codebase", "you need adaptive widgets that render Material on Android and Cupertino on iOS", "you want SF Symbols as Compose ImageVectors", "you use Decompose navigation and want iOS-like transitions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/compose-cupertino", "repo": "alexzhirkevich/compose-cupertino", "role": "main", "score": 40}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "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:16.660221+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.660221+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:45:07.431833+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a30fc71238bbc5d301cfd6a697ef7b316816ca212b3483ec59f281422dabbe7", "fetched_at": "2026-08-28T04:05:16.660221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexzhirkevich/compose-cupertino"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 45, "longevity": 86, "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": 1217, "days_push": 332, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 40, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}