All Projects → fulldecent → Swift5 Module Template

fulldecent / Swift5 Module Template

Licence: mit
An opinionated starting point for awesome, reusable Swift 5 modules

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Swift5 Module Template

Loadingshimmer
An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
Stars: ✭ 1,180 (+256.5%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Roundcode
Custom rounded QR code with lots of customization.
Stars: ✭ 267 (-19.34%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Bfkit Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
Stars: ✭ 963 (+190.94%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Swiftlyext
SwiftlyExt is a collection of useful extensions for Swift 3 standard classes and types 🚀
Stars: ✭ 31 (-90.63%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Natrium
A pre-build (Swift) script to alter your Xcode project at pre-build-time per environment, build configuration and target.
Stars: ✭ 131 (-60.42%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Containercontroller
UI Component. This is a copy swipe-panel from app: Apple Maps, Stocks. Swift version
Stars: ✭ 273 (-17.52%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Dtgradientbutton
Easy way to set gradient background to your buttons.
Stars: ✭ 76 (-77.04%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Xmlmapper
A simple way to map XML to Objects written in Swift
Stars: ✭ 90 (-72.81%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Alamofire
Elegant HTTP Networking in Swift
Stars: ✭ 36,896 (+11046.83%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Swifterswift
A handy collection of more than 500 native Swift extensions to boost your productivity.
Stars: ✭ 10,706 (+3134.44%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Dtphotoviewercontroller
A fully customizable photo viewer ViewController to display single photo or collection of photos, inspired by Facebook photo viewer.
Stars: ✭ 212 (-35.95%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Cdmarkdownkit
An extensive Swift framework providing simple and customizable markdown parsing.
Stars: ✭ 158 (-52.27%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Dtpagercontroller
A fully customizable container view controller to display a set of ViewControllers in a horizontal scroll view. Written in Swift.
Stars: ✭ 240 (-27.49%)
Mutual labels:  xcode, cocoapods, swift-package-manager
Fapaginationlayout
Collection view pagination layout
Stars: ✭ 276 (-16.62%)
Mutual labels:  xcode, cocoapods
Microfeatures Guidelines
📦📝 uFeatures guidelines
Stars: ✭ 315 (-4.83%)
Mutual labels:  xcode, cocoapods
Skeletonui
☠️ Elegant skeleton loading animation in SwiftUI and Combine
Stars: ✭ 275 (-16.92%)
Mutual labels:  cocoapods, swift-package-manager
Xcode One Dark
Atom One Dark theme for Xcode
Stars: ✭ 273 (-17.52%)
Mutual labels:  xcode, cocoapods
Audioindicatorbars
AIB indicates for your app users which audio is playing. Just like the Podcasts app.
Stars: ✭ 279 (-15.71%)
Mutual labels:  xcode, cocoapods
Stepperview
SwiftUI iOS component for Step Indications.
Stars: ✭ 281 (-15.11%)
Mutual labels:  cocoapods, swift-package-manager
Netfox
A lightweight, one line setup, iOS / OSX network debugging library! 🦊
Stars: ✭ 3,188 (+863.14%)
Mutual labels:  xcode, cocoapods

Build Status

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 12.3 (12C33)

Swift 5 Module directory layout

Features

Your new Swift 5 module will immediately have working, compilable code, and all these features:

  • Ability to be used from Swift Package Manager, CocoaPods and Carthage
  • Clean folder structure
  • MIT license
  • Testing as a standard
  • Turnkey access to Travis CI
  • Semantic versioning and a CHANGELOG
  • Included example/demo app using SwiftUI

We make the assumption you are using an Xcode project to manage your code.

How to use this

Clone or download a release and run the ./configure program. It will ask you some questions and generate a project.

Or if you have CocoaPods installed, you can alternatively use:

pod lib create --verbose --template-url='https://github.com/fulldecent/swift5-module-template.git' MyNewPodName

You then add all the interesting features you want your module to have.

Using CocoaPods to manage dependencies for your example app

You distribute an example app with your new Swift module to show that it works. You may also decide to add UI tests to your example app and some people like to use testing frameworks for those UI tests. If you would like to use CocoaPods to manage the dependencies of your example app, please see the discussion at https://github.com/fulldecent/swift5-module-template/issues/8.

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

┌─────────────┐              ┌─────────────┐              ┌─────────────┐
│     Use     │              │    Save     │              │Use your own │
│    Xcode    │─Save recipe─▶│  template   │─./configure─▶│   module    │
└─────────────┘              └─────────────┘              └─────────────┘
       ▲              ▲             ▲               ▲            ▲       
                                                                         
       │              │             │               │            │       
        Contributors to this project          End users of this project

Contributing

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].