{"adoption": {"forks": 237, "observed_at": "2026-08-28T04:05:25.580494+00:00", "stars": 1709}, "canonical_url": "https://ross.abutalabs.com/products/playandroid", "card": {"archived": false, "artifact_type": "application", "description": "🔥🔥🔥 Kotlin + MVVM + LCE版玩安卓，暗黑模式、横竖屏、无网、弱网、无数据、加载失败等等各种情况，协程、Room、Hilt、DataStore、LiveData、Retrofit、屏幕适配、本地缓存、多语言切换、多 lib，你想要的我都有！！！", "domain": ["android-tools", "mobile-development", "education", "tutorials"], "enriched": true, "function": ["mobile-framework", "state-management", "http-client", "database", "caching", "developer-tools"], "health_score": 58, "homepage": null, "language": "Kotlin", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["zhujiang521/PlayAndroid"], "name": "zhujiang521/PlayAndroid", "platform": ["jvm"], "pushed_at": "2026-01-23T09:42:26+00:00", "repo": "zhujiang521/PlayAndroid", "stars": 1709, "tags": ["mvvm", "jetpack-compose", "jetpack", "coroutines", "room", "hilt", "datastore", "retrofit", "learning-project", "sample-app", "android"], "topics": ["mvvm", "room", "jetpack", "retrofit2", "coroutines", "kotlin", "datastore", "hilt", "compose"], "urls": [], "use_cases": ["learn MVVM architecture on Android with Kotlin", "see a Jetpack Compose Android app example", "study offline caching and weak network handling in Android", "reference project for Hilt and Room integration", "learn Android screen adaptation for dark mode and landscape", "find a sample app using DataStore and coroutines"], "what_it_is": "A Kotlin Android client app for the WanAndroid API built with MVVM architecture and Jetpack libraries (Compose, Room, Hilt, DataStore, Coroutines, Retrofit). It serves as a comprehensive reference implementation covering dark mode, orientation adaptation, offline/weak-network handling, caching, and multi-language support.", "when_to_avoid": ["you need a production-ready news or content app for end users", "you want an iOS or cross-platform solution", "you need a minimal example rather than a large multi-module project"], "when_to_choose": ["you want a full-featured Kotlin Android sample demonstrating modern Jetpack practices", "you are learning MVVM, Compose, Hilt, Room, or DataStore through real code", "you need reference patterns for offline handling, dark mode, and localization in Android apps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/playandroid", "repo": "zhujiang521/PlayAndroid", "role": "main", "score": 51}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "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:25.580494+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.580494+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:36:58.952115+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9de8aef9aa7c8cd1a56e2ff075b09490327d7d5918ea556c8b438164c59faee4", "fetched_at": "2026-08-28T04:05:25.580494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhujiang521/PlayAndroid"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 63, "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": 2297, "days_push": 222, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 51, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}