{"adoption": {"forks": 799, "observed_at": "2026-08-28T04:05:26.697759+00:00", "stars": 1720}, "canonical_url": "https://ross.abutalabs.com/products/codelab-android-compose", "card": {"archived": false, "artifact_type": "learning-resource", "description": null, "domain": ["mobile-development", "tutorials", "android-tools"], "enriched": true, "function": ["ui-components", "animation", "state-management", "testing", "accessibility"], "health_score": 80, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["android/codelab-android-compose"], "name": "android/codelab-android-compose", "platform": ["jvm"], "pushed_at": "2026-08-25T18:07:16+00:00", "repo": "android/codelab-android-compose", "stars": 1720, "tags": ["jetpack-compose", "codelabs", "android-studio", "declarative-ui", "material-design", "sample-code", "android"], "topics": ["codelab"], "urls": [], "use_cases": ["learn jetpack compose from scratch", "practice declarative ui on android", "learn compose state management", "migrate android views to compose", "learn compose navigation and deep links", "improve compose app performance", "test jetpack compose uis", "build adaptive layouts for foldables"], "what_it_is": "A collection of official Android Studio projects containing hands-on codelabs for learning Jetpack Compose, Google's declarative UI toolkit for Android. Each sample corresponds to a specific codelab covering topics like basics, layouts, state, theming, migration, animation, navigation, performance, testing, accessibility, and adaptive layouts.", "when_to_avoid": ["you need production-ready app code or a reusable library", "you want a Compose reference app rather than step-by-step exercises", "you are not developing for Android"], "when_to_choose": ["you are learning Jetpack Compose with guided, official tutorials", "you want runnable Android Studio projects to follow along with codelabs", "you need examples of Compose testing, accessibility, or migration from Views"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/codelab-android-compose", "repo": "android/codelab-android-compose", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "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:26.697759+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.697759+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:04.265540+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "60a070688cdcd5e969286fade6eb8f47eb85f839f509e1073e533c8cf33e5b68", "fetched_at": "2026-08-28T04:05:26.697759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/android/codelab-android-compose"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2198, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}