iOS boilerplate for building iOS apps using SwiftUI.
Includes essential components such as networking, navigation, unit tests, and CI/CD setup.
- Navigation
- Networking
- Formatting
- Localisation
- Unit Tests
- Snapshot Tests
- UI Tests
- Accessibility
- Dev/Release Environment
- CI/CD
- AppStore
- Xcode 15.4.0
- Swift 5
- Minimum iOS version 17.5
Environment variables should be added here for debug and release builds.
APP_DISPLAY_NAME
APP_ICON_NAME
Secrets are injected during the build process within the CI pipeline.
When running the project locally a copy of the secrets file should be configured here.
MY_SECRET_VALUE
The Secrets.xcconfig
file is excluded from source control - updates should be base64 encoded and replace the CI environment variable.
This can be encoded using the openssl base64 command.
$ openssl base64 -in Secrets.xcconfig | tr -d "\n" | pbcopy;
# fork it on GitHub + clone your fork
git clone https://github.com/YOUR_USERNAME/ios-boilerplate.git
cd ios-boilerplate
# Make it your own
chmod +x rename.sh
./rename.sh NEW_NAME # Replace NEW_NAME with the desired name for your project
Commit message should adhere to the Conventional Commits
style and be structured as follows:
Format: <type>(<scope>): <subject>
<scope>
is optional
feat: add something new
^--^ ^---------------^
| |
| +-> Summary in present tense.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.
More Examples:
feat
: (new feature for the user, not a new feature for build script)fix
: (bug fix for the user, not a fix to a build script)docs
: (changes to the documentation)style
: (formatting, missing semi colons, etc; no production code change)refactor
: (refactoring production code, eg. renaming a variable)test
: (adding missing tests, refactoring tests; no production code change)chore
: (updating grunt tasks etc; no production code change)
SwiftFormat executes on builds ensuring consistently formatted code.