This is a template project for boostrapping iOS applications
Install cookiecutter,XcodeGen and Mint in order to create a new project from this template:
brew install cookiecutter
brew install xcodegen
brew install mint
cookiecutter https://github.com/alexanderwe/ios-starter.git
cookiecutter
will prompt you for:- The project name
- Apple Developer Team details
- other details necessary for the project
cookiecutter
will create all necessary filesXcodeGen
runs and automatically creates a.xcodeproj
file- Afterwards
mint bootstratp
will run to download all necessary build tools - Finally
Xcode
will launch your new project - All code dependencies are managed with the
Swift Package Manager
- Happy Coding !
- Handle asynchronous code
- PromiseKit - Avoid the Callback Hell
- Code Style
- SwiftLint - Common linting rules
- Helpers
- Rswift - Type safe access to string resources
- SwiftDate - Work with Dates is a breeze
- IQKeyboardManager - Handle common keyboard use cases on iOS
The structure of the template project tries to follow the idea in this article from The.Swift.Dev
External dependencies are managed via Swift Package Manager
. Therefore it is mandatory to use Xcode 11.
External build tools like swiftlint
and R.swift
are managed by Mint
This is necessary because the Swift Package Manager
is not handling binaries, and therefore Mint
is doing this job for us.
There is an issue with
GitKraken
not supporting theconfig.hooksPath
option. Therefore every hook is copied from the.githooks
directory to.git/hooks
. Before that every file that will be changed inside.git/hooks
is backed up.
This template comes with a .githooks
directory. Inside you can find and create hooks which will run in the local .git
repository.
- commit-msg (run before committing):
- Verifies that the commit message follows the standard Conventional Commits specification
The template uses fastlane for CI/CD. It comes with a nearly empty Fastfile
which can be modified as you wish.
create_changelog
: Usegit-chglog
and your conventional commits to automatically create aCHANGELOG.md
in the project directorycrowdin
: Use thecrowdin
CLI to upload or download your localisation files