{"id":23163828,"url":"https://github.com/simonnickel/snap-app-template","last_synced_at":"2026-02-04T05:31:27.283Z","repository":{"id":236940955,"uuid":"786824751","full_name":"simonnickel/snap-app-template","owner":"simonnickel","description":"An Xcode project with a base setup of the SNAP package suite.","archived":false,"fork":false,"pushed_at":"2024-11-28T22:45:38.000Z","size":551,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-28T09:40:59.499Z","etag":null,"topics":["example-app","ios-app","swift","swift-ui","swiftui","template-project"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonnickel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-15T11:28:19.000Z","updated_at":"2024-11-28T22:45:42.000Z","dependencies_parsed_at":"2024-05-14T10:46:29.425Z","dependency_job_id":"b5ea5ecc-7bd7-42bb-9b04-575bc0c016d6","html_url":"https://github.com/simonnickel/snap-app-template","commit_stats":null,"previous_names":["simonnickel/snap-app-template"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/simonnickel/snap-app-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonnickel%2Fsnap-app-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonnickel%2Fsnap-app-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonnickel%2Fsnap-app-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonnickel%2Fsnap-app-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonnickel","download_url":"https://codeload.github.com/simonnickel/snap-app-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonnickel%2Fsnap-app-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263692913,"owners_count":23496944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example-app","ios-app","swift","swift-ui","swiftui","template-project"],"created_at":"2024-12-18T00:31:15.875Z","updated_at":"2026-02-04T05:31:22.263Z","avatar_url":"https://github.com/simonnickel.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!CAUTION]\n\u003e This repository no longer active, have a look into the SnapTemplateDemo project in [snap-template](https://github.com/simonnickel/snap-template).\n\n\n# SnapAppTemplate\n\nAn Xcode project with a base setup of [SNAP](https://github.com/simonnickel/snap). The app comes with structure, navigation and infrastructure prepared, to quickly setup a new app using the SNAP packages.\n\nAlso have a look at [snap-template](https://github.com/simonnickel/snap-template) for shared features and implementations.\n\n\n## Motivation\n\n\u003e Finishing the last 20% of a project takes 80% of the time.\n\u003e\n\u003e (Source: Someone on the internet)\n\nThe goal of SnapTemplate is to already have the last 20% ready, before you even start the project. The same applies to the first 20% of a project: infrastructure, boilerplate and project setup. \n\nEven if you don't plan to finish the last 60% of it, it allows to test a quick idea with a full app experience around it.\n\n\n## Create new App\n\n1. Create and clone repository.\n2. Copy files from snap-app-template and get everything in the correct place.\n3. Rename project.\n    1. Rename top item in project navigator.\n    2. Change bundle identifier.\n4. Follow setup steps of [snap-settings-service](https://github.com/simonnickel/snap-settings-service#setup).\n\n\n## Template\n\nThe Template comes with:\n \n1. Infrastructure to define dependencies and has the SNAP packages ready to go.\n2. A setup to define a navigation hierarchy for the app.\n3. Uses [snap-matching-navigation](https://github.com/simonnickel/snap-matching-navigation) to show a Sidebar on macOS / iPadOS and a Tabbar on iOS.\n4. A base settings screen using [snap-settings-service](https://github.com/simonnickel/snap-settings-service) with some theme configuration options. \n\n\u003cimg src=\"/screenshot.png\" height=\"400\"\u003e\n\u003cimg src=\"/screenshot-settings.png\" height=\"400\"\u003e\n\n\n## Configurations\n\n### Info.plist\n\nAdded `ITSAppUsesNonExemptEncryption` key with value `NO`, see: [Complying with Encryption Export Regulations](https://developer.apple.com/documentation/security/complying_with_encryption_export_regulations)\n\n### Build Settings\n\n - Set `Swift Language Version` to 6\n - Enabled Strict Concurrency checking: `SWIFT_STRICT_CONCURRENCY = complete;`\n\n\n## // TODO:  \n\n- Settings Screen\n    - Settings Header\n    - Contact\n- Generic Usage Statistics\n- SwiftData with sync\n- Widgets using SwiftData (display, edit)\n- Release Notes\n- Multiple windows\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonnickel%2Fsnap-app-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonnickel%2Fsnap-app-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonnickel%2Fsnap-app-template/lists"}