{"adoption": {"forks": 105, "observed_at": "2026-08-28T04:05:04.427867+00:00", "stars": 1566}, "canonical_url": "https://ross.abutalabs.com/products/androidveil", "card": {"archived": false, "artifact_type": "library", "description": " :performing_arts: An easy and flexible way to implement loading skeletons and shimmering effects on layouts for Android.", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 55, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["skydoves/AndroidVeil"], "name": "skydoves/AndroidVeil", "platform": [], "pushed_at": "2025-10-15T09:41:28+00:00", "repo": "skydoves/AndroidVeil", "stars": 1566, "tags": ["skeleton-loading", "shimmer-effect", "recyclerview", "kotlin", "android-ui", "loading-placeholder", "android", "mobile"], "topics": ["android", "android-library", "androidveil", "skeleton", "shimmer", "recyclerview", "android-ui", "skydoves"], "urls": [], "use_cases": ["show skeleton loading placeholders while content loads in an Android app", "add shimmer effect to RecyclerView items during data fetching", "implement Facebook-style loading skeletons on Android layouts", "display veiled placeholder UI before images or lists load", "customize shimmer colors, alpha, and radius for loading animations"], "what_it_is": "AndroidVeil is a Kotlin Android library that adds skeleton (veil) placeholders and shimmering effects to layouts and RecyclerViews. It is configured via XML attributes and shows animated loading placeholders while real content loads.", "when_to_avoid": ["you are building for platforms other than Android", "you need Jetpack Compose-native skeleton APIs rather than XML layouts", "you only need simple spinners or progress bars instead of skeleton placeholders"], "when_to_choose": ["you need skeleton screens with shimmering effects on Android layouts or RecyclerViews", "you want XML-attribute-based configuration of loading placeholders", "you prefer a lightweight, flexible Kotlin library for loading states"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/androidveil", "repo": "skydoves/AndroidVeil", "role": "main", "score": 44}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "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:05:04.427867+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:04.427867+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:00:09.903802+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0df71b450421272e5b20235e67b210e9641b5ce3085c101d4e4070cee6186c53", "fetched_at": "2026-08-28T04:05:04.427867+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/AndroidVeil"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 47, "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": 2863, "days_push": 322, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 44, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}