{"adoption": {"forks": 363, "observed_at": "2026-08-28T04:06:18.418422+00:00", "stars": 2141}, "canonical_url": "https://ross.abutalabs.com/products/placeholderview", "card": {"archived": false, "artifact_type": "library", "description": "This library provides advance views for lists and stacks. Some of the views are build on top of RecyclerView and others are written in their own. Annotations are compiled by annotation processor to generate bind classes. DOCS -->", "domain": ["mobile-development", "android-tools", "frontend"], "enriched": true, "function": ["ui-components", "animation", "state-management"], "health_score": 59, "homepage": "http://janishar.com/PlaceHolderView", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["janishar/PlaceHolderView"], "name": "janishar/PlaceHolderView", "platform": ["jvm"], "pushed_at": "2026-02-03T19:28:56+00:00", "repo": "janishar/PlaceHolderView", "stars": 2141, "tags": ["recyclerview", "annotation-processing", "tinder-swipe-cards", "load-more", "card-stack", "expandable-list", "android", "mobile"], "topics": ["placeholderview", "annotations", "android", "animation", "loadmore", "recyclerview", "swipeview", "swipe", "listview", "gridview", "tinder-ui", "tinder", "tinder-swiper", "annotation-processing", "annotation-processor"], "urls": [], "use_cases": ["build tinder-style swipeable card stacks in android", "create infinite scrolling lists with load more", "make expandable parent-child list views", "reduce recyclerview adapter boilerplate with annotations", "implement swipe direction callbacks for card views", "build animated feed lists and grid views"], "what_it_is": "An Android Java library providing advanced list and stack views, including RecyclerView-based list views and a ground-up swipeable card stack implementation for Tinder-like UIs. It uses annotation processing at build time to generate binding classes and reduce boilerplate.", "when_to_avoid": ["you use kotlin-first modern android stacks with jetpack compose", "you need actively maintained libraries with recent community support", "you only need plain RecyclerView without extra abstractions"], "when_to_choose": ["you need tinder-like card stack UI on android", "you want annotation-driven list binding to cut boilerplate", "you need infinite scroll or expandable lists quickly"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/placeholderview", "repo": "janishar/PlaceHolderView", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "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:18.418422+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:18.418422+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:51:21.720207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b79530a4e6d285b4326a26053be7d7460e7e3cd8876b8a70d310f9f8bfe5af63", "fetched_at": "2026-08-28T04:06:18.418422+00:00", "kind": "readme", "missing": false, "url": "https://github.com/janishar/PlaceHolderView"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 65, "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": 3667, "days_push": 211, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}