{"adoption": {"forks": 127, "observed_at": "2026-08-28T04:07:05.341101+00:00", "stars": 2626}, "canonical_url": "https://ross.abutalabs.com/products/transition", "card": {"archived": false, "artifact_type": "library", "description": "Easy interactive interruptible custom ViewController transitions", "domain": ["mobile-development", "frontend", "graphics"], "enriched": true, "function": ["animation", "ui-components", "mobile-framework"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Touchwonders/Transition"], "name": "Touchwonders/Transition", "platform": [], "pushed_at": "2020-11-02T08:11:20+00:00", "repo": "Touchwonders/Transition", "stars": 2626, "tags": ["viewcontroller-transitions", "interactive-animations", "uikit", "cocoapods", "interruptible-transitions", "ios", "swift", "mobile"], "topics": ["swift", "ios", "viewcontroller", "transitions", "view", "controller", "transition", "animation", "interactive", "interuptable", "custom"], "urls": [], "use_cases": ["create custom view controller transitions in ios", "implement interactive swipe-to-dismiss modal animations", "build custom tab bar controller transition animations", "make interruptible view controller animations that respond to touch", "add shared element transitions between screens", "simplify uiviewproperty animator transition code"], "what_it_is": "A Swift library that simplifies building custom, interactive, and interruptible iOS view controller transitions. It lets developers define animation and interaction components separately while the library handles delegate wiring, timing, and interruption logic.", "when_to_avoid": ["you are building for SwiftUI or cross-platform frameworks rather than UIKit", "you only need standard system transitions with no customization", "you need a library with frequent updates or support for the latest iOS versions"], "when_to_choose": ["you need custom, interactive, or interruptible iOS view controller transitions without managing delegates and animator state manually", "you want to separate animation and interaction logic into single-responsibility components", "you are building UIKit apps on iOS 10+ with Swift"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/transition", "repo": "Touchwonders/Transition", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "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:05.341101+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.341101+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:19:46.439948+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a1b56cba92ae6df35c4937eafab155c887175475e04d08437930cf1243671bc5", "fetched_at": "2026-08-28T04:07:05.341101+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Touchwonders/Transition"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3460, "days_push": 2130, "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}}