{"adoption": {"forks": 271, "observed_at": "2026-08-28T04:05:21.699630+00:00", "stars": 1682}, "canonical_url": "https://ross.abutalabs.com/products/ui2018", "card": {"archived": false, "artifact_type": "learning-resource", "description": "用于结合“江澎涌”公众号分享 Android 高级 UI 知识点，形成知识体系", "domain": ["mobile-development", "tutorials", "graphics", "education"], "enriched": true, "function": ["ui-components", "animation", "graphics", "developer-tools"], "health_score": 20, "homepage": "https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg2MzQ0MDA1OA==&action=getalbum&album_id=3071465567104319491#wechat_redirect", "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["zincPower/UI2018"], "name": "zincPower/UI2018", "platform": ["jvm"], "pushed_at": "2023-09-01T01:07:48+00:00", "repo": "zincPower/UI2018", "stars": 1682, "tags": ["android-ui", "custom-views", "canvas", "bezier-curves", "property-animation", "xfermode", "pathmeasure", "svg", "demo-samples", "android"], "topics": ["android-ui", "android", "android-animation", "android-canvas"], "urls": [], "use_cases": ["learn android advanced ui concepts", "find custom view examples like scratch cards and radar charts", "understand bezier curve animations on android", "learn canvas drawing and clipping techniques", "study property animation and interpolators", "implement loading animations with pathmeasure", "reference xfermode image blending examples"], "what_it_is": "A collection of Android advanced UI knowledge demos and custom view examples, organized into chapters that accompany a WeChat public account blog series. It covers topics like Bezier curves, PathMeasure, property animation, Xfermode, VelocityTracker/Scroller, drawing flow, and SVG with practical sample implementations.", "when_to_avoid": ["you need a production-ready UI component library to drop into an app", "you are not developing for Android", "you need actively maintained, licensed code for commercial use"], "when_to_choose": ["you are learning or teaching Android advanced UI and custom view development", "you want runnable demo code paired with detailed blog explanations", "you need inspiration or reference implementations for custom animations and widgets"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ui2018", "repo": "zincPower/UI2018", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "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:21.699630+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.699630+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:41:24.035173+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f2b38edb822a3892f1804087abe0e730bdb51ec9b31bf8c29021c825b29b6b21", "fetched_at": "2026-08-28T04:05:21.699630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zincPower/UI2018"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2897, "days_push": 1098, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}