An opinionated starting point for awesome, reusable Swift 6 modules
Use this template as a starting point for any Swift 6 module that you want other people to include in their projects.
STATUS: This template is ready and works in production code, compatible with Xcode Version 16.0 (16A242d)
Your new Swift module will immediately have working, compilable code, and implement these best practices:
Clone or download a release and run the ./configure.rb
program. It will ask you some questions and generate a project.
You then add all the interesting features you want your module to have.
To skip interactive prompts in the ./configure
script, use these environment variables:
Template variable | Environment variable |
---|---|
__PROJECT_NAME__ |
SMT_PROJECT_NAME |
__ORGANIZATION NAME__ |
SMT_ORGANIZATION_NAME |
com.AN.ORGANIZATION.IDENTIFIER |
SMT_COM_AN_ORGANIZATION_IDENTIFIER |
__AUTHOR NAME__ |
SMT_AUTHOR_NAME |
__TODAYS_DATE__ |
SMT_TODAYS_DATE |
__TODAYS_DATE__ (date format) |
SMT_DATE_FORMAT_STRING Note: this will ask you for today’s date but it will use this format in the template. |
__TODAYS_YEAR__ |
SMT_TODAYS_YEAR |
__GITHUB_USERNAME__ |
SMT_GITHUB_USERNAME |
For example, you may use: export SMT_ORGANIZATION_NAME='Awesome Org'
before running ./configure
.
graph LR
subgraph Contributors to this project
X[Use Xcode] --> R[Update Recipe.md]
R --> T[Update template]
end
T --> C
subgraph End users of this project
C[Run ./configure.rb] --> M[Use your own module]
end
See the file Recipe.md for the complete steps (e.g. Open Xcode, make new project, click here, type that, …) of how we made the template.