{"adoption": {"forks": 105, "observed_at": "2026-08-28T04:05:47.757917+00:00", "stars": 1876}, "canonical_url": "https://ross.abutalabs.com/products/dkchainableanimationkit", "card": {"archived": true, "artifact_type": "library", "description": "A DSL to make animation easy on iOS with Swift.", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["animation"], "health_score": 10, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["draveness/DKChainableAnimationKit"], "name": "draveness/DKChainableAnimationKit", "platform": [], "pushed_at": "2019-09-12T10:12:14+00:00", "repo": "draveness/DKChainableAnimationKit", "stars": 1876, "tags": ["chainable-animations", "dsl", "uikit", "cocoapods", "carthage", "ios", "swift", "mobile"], "topics": ["animation", "animation-chain", "swift", "animation-effects", "chainable-animations"], "urls": [], "use_cases": ["animate views on ios with chainable swift syntax", "combine multiple uiview animations at once", "sequence animations one after another", "add spring animations to ios views", "replace verbose core animation code with a readable dsl"], "what_it_is": "DKChainableAnimationKit is a Swift DSL for creating UIView animations on iOS using a chainable syntax like view.animation.makeScale(2.0).spring.animate(1.0). It supports combining multiple simultaneous animations and sequencing them with thenAfter(duration).", "when_to_avoid": ["your project is in objective-c (use JHChainableAnimations instead)", "you need complex keyframe or layer-level animation control", "you need a library that is actively maintained with recent updates"], "when_to_choose": ["you build an ios app in swift and want concise, readable animation code", "you need to chain or combine view animations without nested closures", "you want a lightweight cocoaPods/Carthage dependency for view animations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dkchainableanimationkit", "repo": "draveness/DKChainableAnimationKit", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "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:47.757917+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.757917+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:14:43.792576+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "be825ed4533653e8188b8003ada04ff8d2a0fcfc1780c80c747000993c4a0c57", "fetched_at": "2026-08-28T04:05:47.757917+00:00", "kind": "readme", "missing": false, "url": "https://github.com/draveness/DKChainableAnimationKit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4129, "days_push": 2547, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}