{"adoption": {"forks": 1376, "observed_at": "2026-08-28T04:09:22.949542+00:00", "stars": 5605}, "canonical_url": "https://ross.abutalabs.com/products/android-zblibrary", "card": {"archived": false, "artifact_type": "framework", "description": "🔥 Android MVP 快速开发框架，做国内 「示例最全面」「注释最详细」「使用最简单」「代码最严谨」的 Android 开源 UI 框架。                🔥 An Android MVP Framework with many demos, detailed documents, simple usages and strict codes.", "domain": ["mobile-development", "android-tools", "web-development", "developer-tools"], "enriched": true, "function": ["ui-components", "http-client", "image-processing", "state-management", "caching", "mobile-framework"], "health_score": 65, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["TommyLemon/Android-ZBLibrary"], "name": "TommyLemon/Android-ZBLibrary", "platform": ["jvm"], "pushed_at": "2026-03-29T08:44:36+00:00", "repo": "TommyLemon/Android-ZBLibrary", "stars": 5605, "tags": ["mvp-architecture", "zxing", "okhttp", "glide", "recyclerview", "swipeback", "base-classes", "rapid-development", "chinese-documentation", "android", "mobile"], "topics": ["zxing", "okhttp", "fastjson", "swipeback", "glide", "recyclerview", "smartrefreshlayout"], "urls": [], "use_cases": ["bootstrap an Android app with MVP architecture", "scaffold HTTP list pages with caching in a few lines", "add QR code scanning with ZXing", "implement swipe-back navigation", "standardize UI styles across an Android app", "learn Android MVP patterns from detailed demos"], "what_it_is": "Android-ZBLibrary is an Android MVP rapid development framework in Java that provides base classes, templates, utility classes, and comprehensive demos to standardize app development. It bundles wrappers around OkHttp, Glide, ZXing, SmartRefreshLayout, and RecyclerView, plus 100+ common styles and UI components.", "when_to_avoid": ["building a Kotlin-first app with Jetpack Compose", "you prefer minimal libraries over an opinionated framework", "your project requires strict modular architecture over MVP"], "when_to_choose": ["starting a new Android app in Java and wanting batteries-included base classes", "you want a framework with extensive demos and Chinese documentation", "you need quick integration of OkHttp, Glide, and ZXing with minimal boilerplate"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/android-zblibrary", "repo": "TommyLemon/Android-ZBLibrary", "role": "main", "score": 56}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "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:22.949542+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:22.949542+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:55:26.702015+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a39dce275ea198e440066683fa6ed2ffebbb131556babe3e8385e4a0cc2d5a1c", "fetched_at": "2026-08-28T04:09:22.949542+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TommyLemon/Android-ZBLibrary"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 74, "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": 4031, "days_push": 157, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 56, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}