Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fulldecent/swift5-module-template
An opinionated starting point for awesome, reusable Swift 5 modules
https://github.com/fulldecent/swift5-module-template
cocoapods ios swift swift-package-manager template xcode
Last synced: about 1 month ago
JSON representation
An opinionated starting point for awesome, reusable Swift 5 modules
- Host: GitHub
- URL: https://github.com/fulldecent/swift5-module-template
- Owner: fulldecent
- License: mit
- Created: 2016-09-13T03:17:48.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2024-03-28T02:28:16.000Z (6 months ago)
- Last Synced: 2024-08-04T21:06:13.181Z (about 1 month ago)
- Topics: cocoapods, ios, swift, swift-package-manager, template, xcode
- Language: Swift
- Homepage:
- Size: 322 KB
- Stars: 447
- Watchers: 14
- Forks: 55
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - swift5-module-template - A starting point for any Swift 5 module that you want other people to include in their projects. (Project setup / Other Parsing)
- awesome-swift - Swift Module Template - An opinionated starting point for awesome, reusable modules. (Boilerplates / Third party Guides)
- awesome-projects-boilerplates - Swift 5 Module Template
- awesome-swift - Swift Module Template - An opinionated starting point for awesome, reusable modules. (Boilerplates / Third party Guides)
- fucking-awesome-swift - Swift Module Template - An opinionated starting point for awesome, reusable modules. (Boilerplates / Third party Guides)
- awesome-ios-star - swift5-module-template - A starting point for any Swift 5 module that you want other people to include in their projects. (Project setup / Other Parsing)
- awesome-swift - Swift Module Template - An opinionated starting point for awesome, reusable Swift 5 modules ` 📝 3 months ago ` (Boilerplates [🔝](#readme))
README
# Swift 5 Module Template
Use this template as a starting point for any Swift 5 module that you want other people to include in their projects.
**STATUS: This template is ready and works in production code, compatible with Xcode 15.2 (15C500b)**
![Swift 5 Module directory layout](https://github.com/fulldecent/swift5-module-template/assets/382183/1a7965f0-af84-4d00-9bb6-97db76e6e715)
## Features
Your new Swift 5 module will immediately have working, compilable code, and implement these best practices:
- Ability to be used from Swift Package Manager
- Clean folder structure
- MIT license
- Testing as a standard
- Turnkey access to GitHub Actions testing
- Semantic versioning and a CHANGELOG
- Included example/demo app using SwiftUI
- Use a Xcode project to manage your code## How to use this
Clone or [download a release](https://github.com/fulldecent/swift5-module-template/releases) 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.
### Automating the configure script
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`.
## How it works
```mermaid
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
```## Contributing
See the file [Recipe.md](Recipe.md) for the complete steps (e.g. Open Xcode, make new project, click here, type that, …) of how we made the template.