{"adoption": {"forks": 424, "observed_at": "2026-08-28T04:07:11.422212+00:00", "stars": 2701}, "canonical_url": "https://ross.abutalabs.com/products/florent37-viewanimator", "card": {"archived": true, "artifact_type": "library", "description": "A fluent Android animation library", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["animation"], "health_score": 10, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["florent37/ViewAnimator"], "name": "florent37/ViewAnimator", "platform": ["jvm"], "pushed_at": "2021-03-23T18:49:14+00:00", "repo": "florent37/ViewAnimator", "stars": 2701, "tags": ["fluent-api", "view-animation", "android-ui", "java", "android", "mobile"], "topics": ["android", "animation", "viewanimator", "view", "anim", "path-animation", "compat"], "urls": [], "use_cases": ["animate multiple android views with one fluent call", "chain sequential view animations in android", "replace verbose AnimatorSet boilerplate code", "animate view width height and colors in android", "add start and stop listeners to android animations"], "what_it_is": "A fluent Android animation library that lets developers animate multiple views with chained, readable method calls instead of verbose AnimatorSet boilerplate. It supports translations, scaling, rotation, color changes, DP values, and animation sequencing.", "when_to_avoid": ["you need Jetpack Compose animations rather than View-based ones", "you need complex physics-based or motion-layout transitions", "you require a library with recent active development"], "when_to_choose": ["you want concise, readable animation code on Android", "you need to coordinate animations across multiple views", "you want to animate in dp units or animate layout dimensions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/florent37-viewanimator", "repo": "florent37/ViewAnimator", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "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:11.422212+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:11.422212+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:15:58.403340+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bd82eefa6e747dd38d94c7019a50d1fe54709b3f687974e8b42a64d0bad265a2", "fetched_at": "2026-08-28T04:07:11.422212+00:00", "kind": "readme", "missing": false, "url": "https://github.com/florent37/ViewAnimator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3907, "days_push": 1989, "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}}