{"adoption": {"forks": 143, "observed_at": "2026-08-28T04:06:09.145873+00:00", "stars": 2050}, "canonical_url": "https://ross.abutalabs.com/products/transitioner", "card": {"archived": false, "artifact_type": "library", "description": "A library for dynamic view-to-view transitions", "domain": ["mobile-development", "android-tools"], "enriched": true, "function": ["animation", "ui-components"], "health_score": 20, "homepage": null, "language": "Kotlin", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["dev-labs-bg/transitioner"], "name": "dev-labs-bg/transitioner", "platform": [], "pushed_at": "2020-04-24T14:12:27+00:00", "repo": "dev-labs-bg/transitioner", "stars": 2050, "tags": ["kotlin", "view-transitions", "keyframe-animation", "android-library", "gesture-driven", "android"], "topics": ["android", "kotlin", "view", "transition", "animation", "transitioner", "dynamic", "library", "android-library", "keyframe", "keyframes", "keyframe-animation"], "urls": [], "use_cases": ["animate transitions between two Android layouts", "create gesture-driven view morphing animations", "build expandable card or weather app style UI effects", "tie view transitions to a seekbar or touch progress", "transition nested child views between layouts"], "what_it_is": "Transitioner is a Kotlin library for Android that enables dynamic, adjustable animations between two views with nested children. Views are paired via matching tag attributes, and transitions can be driven programmatically or by gestures with configurable duration and interpolators.", "when_to_avoid": ["you need fragment or activity transitions rather than view-level ones", "you want a maintained library with recent updates and Jetpack Compose support", "you need complex shared-element transition APIs out of the box"], "when_to_choose": ["you need fine-grained, progress-based control over view-to-view transitions on Android", "your layouts have nested children that should animate together", "you want a lightweight MIT-licensed Kotlin library"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/transitioner", "repo": "dev-labs-bg/transitioner", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "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:06:09.145873+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.145873+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:57:35.766351+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "381649302f4d59db7ea28adb91f162628024be004f807652505e995164de53f7", "fetched_at": "2026-08-28T04:06:09.145873+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dev-labs-bg/transitioner"}], "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": 3190, "days_push": 2322, "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}}