{"adoption": {"forks": 392, "observed_at": "2026-08-28T04:06:42.650422+00:00", "stars": 2386}, "canonical_url": "https://ross.abutalabs.com/products/gestureviews", "card": {"archived": false, "artifact_type": "library", "description": "ImageView and FrameLayout with gestures control and position animation", "domain": ["mobile-development", "android-tools", "image-processing"], "enriched": true, "function": ["animation", "ui-components"], "health_score": 90, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["alexvasilkov/GestureViews"], "name": "alexvasilkov/GestureViews", "platform": ["jvm"], "pushed_at": "2026-05-27T13:25:41+00:00", "repo": "alexvasilkov/GestureViews", "stars": 2386, "tags": ["imageview", "gesture-control", "pan", "zoom", "fling", "double-tap", "viewpager", "recyclerview", "image-cropping", "position-animation", "touch-gestures", "frame-layout", "android"], "topics": ["android", "animation", "imageview", "gesture"], "urls": [], "use_cases": ["add pinch-to-zoom and pan gestures to images in an android app", "smooth image viewer with viewpager swipe integration", "animate image from recyclerview grid into fullscreen view", "implement double tap zoom and fling scrolling for imageview", "exit fullscreen image mode with scroll or scale gestures", "crop images with rotation support in android"], "what_it_is": "An Android library providing ImageView and FrameLayout widgets with built-in gesture control (pan, zoom, fling, rotation, double tap) and smooth position animations. It is designed for building fluid image viewing experiences, including seamless ViewPager and RecyclerView integration and full-screen image transitions.", "when_to_avoid": ["you are building for platforms other than Android", "you only need basic static image display without gestures or animations", "you need video or media playback rather than image viewing"], "when_to_choose": ["you need a drop-in Android ImageView replacement with rich touch gestures and animations", "you want smooth transitions between lists/grids and full-screen image viewing", "you need customizable gesture behavior, listeners, and state animations for image views"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gestureviews", "repo": "alexvasilkov/GestureViews", "role": "main", "score": 80}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "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:42.650422+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.650422+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:34:36.196194+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "86ff32b9a4f93a4671c34fef54fd6076e10f0936fc20a8beeee6ffce8560161b", "fetched_at": "2026-08-28T04:06:42.650422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/alexvasilkov/GestureViews"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 84, "longevity": 100, "rhythm": 62}, "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": 4478, "days_push": 98, "days_rel": 98, "gap_med": 139, "n_releases_24m": 2}, "score": 80, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}