Caution
This repository no longer active, have a look into the SnapTemplateDemo project in snap-template.
An Xcode project with a base setup of SNAP. The app comes with structure, navigation and infrastructure prepared, to quickly setup a new app using the SNAP packages.
Also have a look at snap-template for shared features and implementations.
Finishing the last 20% of a project takes 80% of the time.
(Source: Someone on the internet)
The 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.
Even 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.
- Create and clone repository.
- Copy files from snap-app-template and get everything in the correct place.
- Rename project.
- Rename top item in project navigator.
- Change bundle identifier.
- Follow setup steps of snap-settings-service.
The Template comes with:
- Infrastructure to define dependencies and has the SNAP packages ready to go.
- A setup to define a navigation hierarchy for the app.
- Uses snap-matching-navigation to show a Sidebar on macOS / iPadOS and a Tabbar on iOS.
- A base settings screen using snap-settings-service with some theme configuration options.
Added ITSAppUsesNonExemptEncryption
key with value NO
, see: Complying with Encryption Export Regulations
- Set
Swift Language Version
to 6 - Enabled Strict Concurrency checking:
SWIFT_STRICT_CONCURRENCY = complete;
- Settings Screen
- Settings Header
- Contact
- Generic Usage Statistics
- SwiftData with sync
- Widgets using SwiftData (display, edit)
- Release Notes
- Multiple windows