{"adoption": {"forks": 241, "observed_at": "2026-08-28T04:05:20.280875+00:00", "stars": 1673}, "canonical_url": "https://ross.abutalabs.com/products/armscomponent", "card": {"archived": false, "artifact_type": "framework", "description": "📦 A complete android componentization solution, powered by MVPArms (MVPArms 官方快速组件化方案).", "domain": ["mobile-development", "android-tools", "developer-tools"], "enriched": true, "function": ["mobile-framework", "middleware", "routing", "dependency-audit"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["JessYanCoding/ArmsComponent"], "name": "JessYanCoding/ArmsComponent", "platform": ["jvm"], "pushed_at": "2020-04-27T03:00:00+00:00", "repo": "JessYanCoding/ArmsComponent", "stars": 1673, "tags": ["componentization", "mvp-architecture", "mvpars", "modularization", "rxjava2", "dagger2", "retrofit2", "boilerplate", "architecture", "android", "mobile"], "topics": ["mvparms", "android-architecture", "android-component", "android-application", "android", "mvp-architecture", "mvp", "mvp-android", "wiki-documentation", "architecture", "rxjava2", "dagger2", "retrofit2", "arms", "armscomponent"], "urls": [], "use_cases": ["split a large android app into independent modules", "componentize an android project with mvp architecture", "allow modules to run standalone as separate apps during development", "structure an android codebase for multi-team parallel development", "learn android componentization with dagger2 and rxjava2", "set up a modular android architecture quickly from a template"], "what_it_is": "ArmsComponent is a complete Android componentization (modularization) solution built on top of the MVPArms framework. It provides a scaffold for splitting large Android apps into independently developable, testable, and switchable modules using MVP, Dagger2, Retrofit2, and RxJava2.", "when_to_avoid": ["you prefer Jetpack-based architectures like MVVM with AndroidX Navigation instead of MVP", "your project is small and does not need componentization overhead", "you need a actively maintained solution - the project has not been updated since 2020"], "when_to_choose": ["you are building or refactoring a large Android app into modular components", "your team already uses or wants to adopt MVPArms with MVP, Dagger2, and RxJava2", "you want modules that can be developed and debugged independently then merged into one app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/armscomponent", "repo": "JessYanCoding/ArmsComponent", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "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:20.280875+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:20.280875+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:42:34.449294+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2bd7ccad49cc8e849cbb869514865754b156aca180003f012ba588da86ac6f", "fetched_at": "2026-08-28T04:05:20.280875+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ArmsComponent"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3050, "days_push": 2319, "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}}