{"adoption": {"forks": 831, "observed_at": "2026-08-28T04:09:17.972216+00:00", "stars": 5426}, "canonical_url": "https://ross.abutalabs.com/products/mosby", "card": {"archived": false, "artifact_type": "library", "description": "A Model-View-Presenter / Model-View-Intent library for modern Android apps", "domain": ["mobile-development", "android-tools", "web-development"], "enriched": true, "function": ["state-management", "ui-components"], "health_score": 20, "homepage": "http://hannesdorfmann.com/mosby/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["sockeqwe/mosby"], "name": "sockeqwe/mosby", "platform": ["jvm"], "pushed_at": "2022-03-09T15:17:41+00:00", "repo": "sockeqwe/mosby", "stars": 5426, "tags": ["mvp", "mvi", "android-architecture", "redux", "presenter", "viewstate", "android", "mobile"], "topics": ["mosby", "java", "android", "mvp", "mvi", "architecture", "redux"], "urls": [], "use_cases": ["structure an android app with mvp architecture", "implement mvi unidirectional data flow on android", "manage view state and screen state restoration in android apps", "separate business logic from android ui components", "build reactive android ui with intents and state reducers"], "what_it_is": "Mosby is a Java library providing Model-View-Presenter (MVP) and Model-View-Intent (MVI) architecture patterns for Android apps. It includes modules for ViewState support, LCE views, and presenter variants like null-object and queuing presenters.", "when_to_avoid": ["you are starting a new kotlin project with jetpack compose and modern mvvm/mvi tooling", "you need a library with frequent updates and active maintenance", "your team prefers coroutines and flow-based state management over rxjava-based mvi"], "when_to_choose": ["you want a proven mvp or mvi architecture library for a java-based android app", "you need viewstate handling and lce (loading-content-error) views out of the box", "you prefer a lightweight library over full frameworks like jetpack compose or mvvm stacks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mosby", "repo": "sockeqwe/mosby", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "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:17.972216+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.972216+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:56:55.011013+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e7cd84cb3b355766bcde29af918d0a65c9d1e4acdcb608f64a405ba22a9fe84f", "fetched_at": "2026-08-28T04:09:17.972216+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sockeqwe/mosby"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 4180, "days_push": 1638, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}