{"adoption": {"forks": 475, "observed_at": "2026-08-28T04:08:09.127398+00:00", "stars": 3538}, "canonical_url": "https://ross.abutalabs.com/products/spreadsheetview", "card": {"archived": false, "artifact_type": "framework", "description": "Full configurable spreadsheet view user interfaces for iOS applications. With this framework, you can easily create complex layouts like schedule, gantt chart or timetable as if you are using Excel.", "domain": ["mobile-development", "frontend", "developer-tools"], "enriched": true, "function": ["ui-components", "frontend-framework"], "health_score": 20, "homepage": null, "language": "HTML", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["bannzai/SpreadsheetView"], "name": "bannzai/SpreadsheetView", "platform": [], "pushed_at": "2024-05-10T07:06:38+00:00", "repo": "bannzai/SpreadsheetView", "stars": 3538, "tags": ["spreadsheet", "grid-layout", "gantt-chart", "timetable", "schedule", "uikit", "cocoapods", "ios", "swift", "mobile"], "topics": ["spreadsheet", "timetable", "grid-layout", "gantt-chart", "schedule", "ios"], "urls": [], "use_cases": ["build a daily schedule view in an ios app", "render a gantt chart on mobile", "create a class timetable ui", "display an excel-like grid with merged cells", "implement a grid layout with frozen row and column headers"], "what_it_is": "A Swift framework for building fully configurable spreadsheet-style user interfaces in iOS apps. It supports complex grid layouts like schedules, Gantt charts, and timetables with features such as merged cells, fixed headers, and infinite circular scrolling.", "when_to_avoid": ["you need a spreadsheet for Android or cross-platform apps", "you need actual spreadsheet computation or file editing rather than display", "you need SwiftUI-native grid components"], "when_to_choose": ["you need spreadsheet-like grid layouts on iOS with fixed headers and merged cells", "you want a UICollectionView-like API for complex grid UIs", "you need memory-efficient scrolling for large grids"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spreadsheetview", "repo": "bannzai/SpreadsheetView", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "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:08:09.127398+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:09.127398+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:34:38.697873+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba30cd4e66038b68d4a497dfb07690b8f5466cc0d795a64d76e7d6397d82be74", "fetched_at": "2026-08-28T04:08:09.127398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bannzai/SpreadsheetView"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3401, "days_push": 845, "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}}