{"adoption": {"forks": 73, "observed_at": "2026-08-28T04:03:26.068868+00:00", "stars": 1062}, "canonical_url": "https://ross.abutalabs.com/products/uiimageview_faceawarefill", "card": {"archived": false, "artifact_type": "library", "description": "This category applies Aspect Fill content mode to an image and if faces are detected it centers them instead of centering the image just by its geometrical center.", "domain": ["image-processing", "mobile-development", "computer-vision"], "enriched": true, "function": ["image-processing", "computer-vision", "ui-components"], "health_score": 36, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Julioacarrettoni/UIImageView_FaceAwareFill"], "name": "Julioacarrettoni/UIImageView_FaceAwareFill", "platform": [], "pushed_at": "2025-06-19T00:00:59+00:00", "repo": "Julioacarrettoni/UIImageView_FaceAwareFill", "stars": 1062, "tags": ["uiimageview", "face-detection", "aspect-fill", "core-image", "cocoapods", "objective-c-category", "photo-cropping", "ios", "swift", "mobile"], "topics": [], "urls": [], "use_cases": ["crop avatar photos so faces stay centered in circular profile images", "display user-uploaded photos in fixed-size image views without cutting off faces", "build a photo feed where thumbnails focus on people rather than the image center", "implement face-aware aspect fill for a social app's image gallery", "avoid manually cropping images before showing them in a UIImageView"], "what_it_is": "An Objective-C category on UIImageView that applies Aspect Fill content mode while detecting faces via Core Image and centering the crop on them instead of the image's geometric center. It is distributed as a CocoaPods library for iOS apps.", "when_to_avoid": ["you need face detection or cropping on platforms other than iOS", "you require high-accuracy or real-time face detection with modern ML models", "your project does not use UIImageView or UIKit"], "when_to_choose": ["you are building an iOS app in Objective-C or Swift that shows photos in UIImageView with Aspect Fill", "you want faces to remain visible when images are cropped to fit fixed-size views", "you need a lightweight drop-in category rather than a full image-processing pipeline"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/uiimageview_faceawarefill", "repo": "Julioacarrettoni/UIImageView_FaceAwareFill", "role": "main", "score": 35}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "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:03:26.068868+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:26.068868+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:56:42.308324+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b98f0a2e92414b5b0ee6b61357217823cb6cbfb0269a9cb576c3ecf3329ec771", "fetched_at": "2026-08-28T04:03:26.068868+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Julioacarrettoni/UIImageView_FaceAwareFill"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 27, "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": 4618, "days_push": 441, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 35, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}