{"adoption": {"forks": 731, "observed_at": "2026-08-28T04:08:48.302753+00:00", "stars": 4402}, "canonical_url": "https://ross.abutalabs.com/products/ios-clean-architecture-mvvm", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI ", "domain": ["mobile-development", "developer-tools", "tutorials"], "enriched": true, "function": ["developer-tools", "boilerplate", "templating"], "health_score": 75, "homepage": "https://tech.olx.com/clean-architecture-and-mvvm-on-ios-c9d167d9f5b3", "language": "Swift", "license": null, "license_family": "other", "maturity": "stable", "member_repos": ["kudoleh/iOS-Clean-Architecture-MVVM"], "name": "kudoleh/iOS-Clean-Architecture-MVVM", "platform": [], "pushed_at": "2026-07-10T22:16:40+00:00", "repo": "kudoleh/iOS-Clean-Architecture-MVVM", "stars": 4402, "tags": ["clean-architecture", "mvvm", "swiftui", "uikit", "ios-template", "dependency-injection", "flow-coordinator", "ios", "swift", "mobile"], "topics": ["clean-architecture", "ios-swift", "swiftui", "mvvm-ios", "mvvm-architecture", "viewmodel", "mvvm", "xcode", "architecture", "viewmodels"], "urls": [], "use_cases": ["start a new iOS app with clean architecture and MVVM", "learn how to structure an iOS project into domain, data, and presentation layers", "see an example of dependency injection and flow coordinators in Swift", "reuse the same ViewModel with both SwiftUI and UIKit views", "study unit testing of use cases and view models in iOS", "implement response caching and DTO mapping in an iOS app"], "what_it_is": "A template iOS application demonstrating Clean Architecture combined with the MVVM pattern, written in Swift with both SwiftUI and UIKit views. It serves as a reference project and starting template, including DI container, flow coordinators, DTOs, response caching, pagination, and unit tests.", "when_to_avoid": ["you need a production-ready framework or library with a maintained license", "you prefer architectures like VIPER, TCA, or MVC", "you want a fully featured app rather than a template to rename and adapt"], "when_to_choose": ["you are starting a new iOS app and want a proven Clean Architecture + MVVM structure", "you want a learning reference for layered iOS architecture patterns", "you need examples of DI, coordinators, and DTO mapping without third-party dependencies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ios-clean-architecture-mvvm", "repo": "kudoleh/iOS-Clean-Architecture-MVVM", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "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:48.302753+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:48.302753+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:07.807625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b70f1f0b632145ba5dc82c9295317987e0107ea3a43b1fa17fd2975a5628b03", "fetched_at": "2026-08-28T04:08:48.302753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kudoleh/iOS-Clean-Architecture-MVVM"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2570, "days_push": 54, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}