{"adoption": {"forks": 196, "observed_at": "2026-08-28T04:07:30.604473+00:00", "stars": 2930}, "canonical_url": "https://ross.abutalabs.com/products/easyanimation", "card": {"archived": false, "artifact_type": "library", "description": "A Swift library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level - layers, springs, chain-able animations and mixing view and layer animations together!", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["animation", "ui-components"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["icanzilb/EasyAnimation"], "name": "icanzilb/EasyAnimation", "platform": [], "pushed_at": "2020-11-30T16:31:04+00:00", "repo": "icanzilb/EasyAnimation", "stars": 2930, "tags": ["uikit", "core-animation", "swift-animations", "spring-animations", "chained-animations", "ios", "swift", "mobile"], "topics": [], "urls": [], "use_cases": ["animate calayers from uiview animate calls in swift", "create spring animations for ios layers", "chain multiple animations together in uikit", "mix view and layer animations in one call", "replace verbose cabasicanimation code", "cancel running animation chains on ios"], "what_it_is": "EasyAnimation is a Swift library that extends UIView.animateWithDuration to support layer animations, springs, and chainable animations without private APIs. It lets developers mix view and layer animations using familiar UIKit syntax.", "when_to_avoid": ["You need actively maintained animation tooling - the library has not seen releases since 2020", "You target SwiftUI rather than UIKit-based animation", "You need advanced Core Animation features beyond what the library extends"], "when_to_choose": ["You want to animate layers using familiar UIView.animate syntax", "You need spring or chained animations without learning Core Animation APIs", "You want an App Store-safe animation library with no private API usage"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/easyanimation", "repo": "icanzilb/EasyAnimation", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "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:07:30.604473+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.604473+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:33:26.438581+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f83ec9464d1174a838af382c5c4f119058b181c2fccc255cf622fd2e23cdbb31", "fetched_at": "2026-08-28T04:07:30.604473+00:00", "kind": "readme", "missing": false, "url": "https://github.com/icanzilb/EasyAnimation"}], "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": 4126, "days_push": 2102, "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}}