{"adoption": {"forks": 538, "observed_at": "2026-08-28T04:06:16.942665+00:00", "stars": 2127}, "canonical_url": "https://ross.abutalabs.com/products/ctassetspickercontroller", "card": {"archived": false, "artifact_type": "library", "description": "iOS control that allows picking multiple photos and videos from user's photo library.", "domain": ["mobile-development", "media", "photography"], "enriched": true, "function": ["ui-components", "image-processing", "file-upload"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["1and2papa/CTAssetsPickerController"], "name": "1and2papa/CTAssetsPickerController", "platform": [], "pushed_at": "2020-01-03T19:49:59+00:00", "repo": "1and2papa/CTAssetsPickerController", "stars": 2127, "tags": ["objective-c", "photo-picker", "photo-library", "media-selection", "uikit", "photos-framework", "deprecated", "ios", "mobile"], "topics": [], "urls": [], "use_cases": ["pick multiple photos and videos from the iOS photo library", "let users select media across albums in an iOS app", "filter photo picker to only photos or only videos", "preview assets with a long-press gesture in a media picker", "support picking assets stored in iCloud", "show selection order when users pick multiple assets"], "what_it_is": "CTAssetsPickerController is a highly customizable iOS Objective-C library that lets users pick multiple photos and videos from their photo library, with a look and feel similar to UIImagePickerController. It supports asset filtering, iCloud assets, selection ordering, localization, and UIAppearance/UIAccessibility protocols.", "when_to_avoid": ["starting a new Swift project — development was suspended in 2016 and the last release was 2020", "you need ongoing maintenance, modern iOS support, or Swift Package Manager integration", "you only need single-photo picking, where PHPickerViewController suffices"], "when_to_choose": []}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ctassetspickercontroller", "repo": "1and2papa/CTAssetsPickerController", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "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:06:16.942665+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.942665+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:52:28.019075+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cf401d087c220fe84851fe2a1ce6b0215dfdcc06cce385ff2b4da4d807486a47", "fetched_at": "2026-08-28T04:06:16.942665+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1and2papa/CTAssetsPickerController"}], "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": 4726, "days_push": 2434, "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}}