{"adoption": {"forks": 1344, "observed_at": "2026-08-28T04:09:04.628788+00:00", "stars": 5012}, "canonical_url": "https://ross.abutalabs.com/products/cloudreader", "card": {"archived": false, "artifact_type": "application", "description": "🗡️  云阅：一款基于网易云音乐UI，使用玩Android Api，Retrofit2 + RxJava2 + Room + MVVM-databinding架构开发的Android客户端", "domain": ["android-tools", "mobile-development", "web-development", "developer-tools"], "enriched": true, "function": ["mobile-framework", "ui-components", "http-client", "state-management"], "health_score": 84, "homepage": "https://youlookwhat.github.io/CloudReader", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["youlookwhat/CloudReader"], "name": "youlookwhat/CloudReader", "platform": ["jvm"], "pushed_at": "2026-06-09T03:27:23+00:00", "repo": "youlookwhat/CloudReader", "stars": 5012, "tags": ["mvvm", "databinding", "retrofit2", "rxjava2", "room", "netease-cloud-music-ui", "material-design", "wanandroid", "reading-app", "learning-project", "android"], "topics": ["android", "mvvm-databing", "netease-cloud-music", "google-material", "reader", "wanandroid", "webview", "cloudreader", "rxjava2", "retrofit2", "mvvm", "room", "ui-gank", "kotlin-android", "kotlin", "mvvm-applications", "app", "apps", "databinding"], "urls": [], "use_cases": ["read WanAndroid articles on my phone", "study an MVVM databinding Android app example", "learn how to use Retrofit2 with RxJava2 and Room", "see how to implement dark mode and Material Design on Android", "find a sample Android app with NavigationView and DrawerLayout", "reference for Fragment lazy loading and pull-to-refresh patterns"], "what_it_is": "CloudReader is an open-source Android reading client with a Netease Cloud Music-inspired UI, built with MVVM-DataBinding architecture using Retrofit2, RxJava2, and Room, consuming the WanAndroid API. It doubles as a reference project demonstrating Material Design patterns and modern Android app architecture.", "when_to_avoid": ["you need a production news reader with your own backend", "you want an iOS or cross-platform app", "you need offline-first reading beyond what the app caches"], "when_to_choose": ["you want a well-structured Android MVVM sample app to learn from", "you need a reading client for WanAndroid content", "you want to see Material Design components applied in a real app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cloudreader", "repo": "youlookwhat/CloudReader", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "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:09:04.628788+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.628788+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:17:33.278049+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ac28e7e99599e7bdd54683c9f732c2d89fa4ecbdf919275007619880500b3228", "fetched_at": "2026-08-28T04:09:04.628788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/youlookwhat/CloudReader"}, {"content_hash": "ea1ffcf7ff1caa34c1dc604746e0be3699901d78a990f123d3cbcc57d7d64721", "fetched_at": "2026-08-29T08:58:21.019002+00:00", "kind": "homepage", "missing": false, "url": "https://youlookwhat.github.io/CloudReader"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3573, "days_push": 85, "days_rel": 521, "gap_med": null, "n_releases_24m": 1}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}