Skip to content

Latest commit

 

History

History
77 lines (46 loc) · 2.89 KB

README.md

File metadata and controls

77 lines (46 loc) · 2.89 KB

This package is part of the SNAP suite.

SnapTemplate

Contains shared code and Demo Xcode project to setup and use SNAP in an iOS App.

Documentation

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.

SnapTemplateDemo

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 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.
  4. 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.

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;

// TODO:

  • Settings Screen
    • Settings Header
    • Contact
  • Generic Usage Statistics
  • SwiftData with sync
  • Widgets using SwiftData (display, edit)
  • Release Notes
  • Multiple windows