Contents

simonnickel/snap-template

This package is part of the SNAP suite.

Requirements

Motivation

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.

Demo project

SnapTemplateDemo is 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.

Create a new app

  1. Create and clone repository.
  2. Copy files from snap-app-template and get everything in the correct place.
  3. Rename project.

1. Rename top item in project navigator. 2. Change bundle identifier.

  1. Follow setup steps of snap-settings-service.

Template

The Template comes with:

  1. Infrastructure to define dependencies and configuration of SNAP packages ready to go.
  2. Boilerplate to define a navigation hierarchy for the app using snap-navigation.
  3. A base settings screen using snap-settings-service with some theme configuration options. A header and contact section are planned, see TODO-1.

<img src="/screenshot.png" height="400"> <img src="/screenshot-settings.png" height="400">

Configurations

Info.plist

Added ITSAppUsesNonExemptEncryption key with value NO, see: Complying with Encryption Export Regulations

Build Settings

- Set Swift Language Version to 6 - Enabled Strict Concurrency checking: SWIFT_STRICT_CONCURRENCY = complete;

Package Metadata

Repository: simonnickel/snap-template

Default branch: main

README: README.md