All Projects → rahul0x24 → Swiftframeworktemplate

rahul0x24 / Swiftframeworktemplate

Licence: mit
A template for new Swift iOS / macOS / tvOS / watchOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file

Programming Languages

ruby
36898 projects - #4 most used programming language
swift
15916 projects

Projects that are alternatives of or similar to Swiftframeworktemplate

Web3.swift
A pure swift Ethereum Web3 library
Stars: ✭ 295 (-44.02%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
Functionkit
A framework for functional types and operations designed to fit naturally into Swift.
Stars: ✭ 302 (-42.69%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
Ducttape
📦 KeyPath dynamicMemberLookup based syntax sugar for Swift.
Stars: ✭ 138 (-73.81%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
Cdmarkdownkit
An extensive Swift framework providing simple and customizable markdown parsing.
Stars: ✭ 158 (-70.02%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
Swifterswift
A handy collection of more than 500 native Swift extensions to boost your productivity.
Stars: ✭ 10,706 (+1931.5%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
Swiftlinkpreview
It makes a preview from an URL, grabbing all the information such as title, relevant texts and images.
Stars: ✭ 1,216 (+130.74%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
Guitar
A Cross-Platform String and Regular Expression Library written in Swift.
Stars: ✭ 641 (+21.63%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
L10n Swift
Localization of the application with ability to change language "on the fly" and support for plural form in any language.
Stars: ✭ 177 (-66.41%)
Mutual labels:  tvos, watchos, cocoapods, carthage, swift-package-manager
Skeletonui
☠️ Elegant skeleton loading animation in SwiftUI and Combine
Stars: ✭ 275 (-47.82%)
Mutual labels:  tvos, watchos, cocoapods, swift-package-manager
Sqift
Powerful Swift wrapper for SQLite
Stars: ✭ 119 (-77.42%)
Mutual labels:  tvos, watchos, cocoapods, carthage
Color
Color utilities for macOS, iOS, tvOS, and watchOS
Stars: ✭ 145 (-72.49%)
Mutual labels:  tvos, watchos, cocoapods, carthage
Sdwebimagewebpcoder
A WebP coder plugin for SDWebImage, use libwebp
Stars: ✭ 101 (-80.83%)
Mutual labels:  tvos, watchos, cocoapods, carthage
Cocoalumberjack
A fast & simple, yet powerful & flexible logging framework for Mac and iOS
Stars: ✭ 12,584 (+2287.86%)
Mutual labels:  tvos, watchos, cocoapods, carthage
Iso8601
ISO8601 date parser and writer
Stars: ✭ 213 (-59.58%)
Mutual labels:  tvos, watchos, cocoapods, carthage
Contentful.swift
A delightful Swift interface to Contentful's content delivery API.
Stars: ✭ 132 (-74.95%)
Mutual labels:  tvos, watchos, cocoapods, carthage
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 (+123.91%)
Mutual labels:  framework, cocoapods, carthage, swift-package-manager
Rome
Carthage cache for S3, Minio, Ceph, Google Storage, Artifactory and many others
Stars: ✭ 724 (+37.38%)
Mutual labels:  framework, tvos, watchos, carthage
Dots
Lightweight Concurrent Networking Framework
Stars: ✭ 35 (-93.36%)
Mutual labels:  tvos, watchos, carthage, swift-package-manager
Swiftyattributes
A Swifty API for attributed strings
Stars: ✭ 1,303 (+147.25%)
Mutual labels:  tvos, watchos, cocoapods, carthage
Datez
📆 Breeze through Date, DateComponents, and TimeInterval with Swift!
Stars: ✭ 254 (-51.8%)
Mutual labels:  tvos, watchos, cocoapods, carthage

Swift Framework Template

A template for new Swift Framework.

Platforms License

Swift Package Manager Carthage compatible CocoaPods compatible

Travis

Join the chat at https://gitter.im/RahulKatariya/SwiftFrameworkTemplate Twitter

Template

What's in the template?

  • Deployment Targets - iOS 9.0 / Mac OS X 10.10 / tvOS 9.0 / watchOS 2.0
  • Xcode 10
  • Swift 4.2
  • Dependency Managers - CocoaPods / Carthage / Swift Package Manager
  • Readme
  • SwiftFormat
  • Dangerfile / Gemfile / Jazzy
  • Github Templates (CODE_OF_CONDUCT, CONTRIBUTING, ISSUE_TEMPLATE, PULL_REQUEST_TEMPLATE)
  • TravisCI
  • MIT LICENSE
  • Testing Dependencies - Quick and Nimble

Usage

  1. Install carthage (brew install carthage on macOS).
  2. Install cookiecutter (brew install cookiecutter on macOS).

Xcode 10

  • Run cookiecutter -c xcode10 https://github.com/RahulKatariya/SwiftFrameworkTemplate

Xcode 9

  • Run cookiecutter -c xcode9 https://github.com/RahulKatariya/SwiftFrameworkTemplate

For future runs you can shorten the command to cookiecutter SwiftFrameworkTemplate. However, if you want to use the most recent template you should still run the full command above.

Additional instructions

This template attempts to provide you an easy setup of your framework repository with many third-party services, however some of them require additional steps such as register and authentication. Below you can find instructions in case this is the first time you set any of these:

CocoaPods

If this is the first time submitting to CocoaPods a framework named like yours, you need to register your e-mail to CocoaPods system in order to receive owner access to it. You can do so using the following command:

$ pod trunk register [email protected] --description='My Mac'

Make sure to replace [email protected] by a valid email since the next step is to access a verification link that CocoaPods is going to send to that address.

The register process will install a token to your machine which can be read with the following command:

$ grep -A2 'trunk.cocoapods.org' ~/.netrc
machine trunk.cocoapods.org
  login [email protected]
  password ef9bb4c41a4459ba92645a85b3c9cd88

If you're using this template, the CocoaPods deploy commands are already in your .travis.yml file, so all you need now is to make sure the Travis CI machines are able to use that token. In order to do it securely, we recommend to do it by setting an environment variable and not allowing its value to be displayed in build logs.

In your repository build settings on Travis, add an environment variable named COCOAPODS_TRUNK_TOKEN with value ef9bb4c41a4459ba92645a85b3c9cd88 - replacing this value by the password you've obtained from ~/.netrc

References:

GitHub releases

In order to have the Travis CI submitting archives to the Releases tab in your framework's GitHub page, you need to adjust .travis.yml with your personal access token.

An easy way to obtain this token is by using the travis gem. You can install it and obtain a token with the following command, which will prompt you with a few questions and automatically modify your .travis.yml file:

$ gem install travis && travis setup releases
Detected repository as <your github username>/<your repository name>, is this correct? |yes|
Username: <your github username>
Password for <your github username>: ************
File to Upload: <the file name you want to upload>
Deploy only from <your github username>/<your repository name>? |yes|
Encrypt API key? |yes|

If you're using this template, part of these questions are not necessary for you, and the changes to .travis.yml will be mostly unhelpful, however among the changes you'll find this:

          api_key:
            secure: qtPP9xa5uU4F0TJFeYjRWISv0fdPMj6xe9TXQ/CyTXJIYwLVAZ8O1aawrE7yLY0lfKXOwV7hmgMs7sS39LudoQ6ElbT6n1tKzTNaoBRc7X2GkbZiLlXSuX+plwhvMU46evkSwNIJz1g4b5CxNdUCy4Or4eXqxyhhjv4Y4kC+TxmBC5kyrDBL6oHStiIB+VEPVjPMkml0nzb6KposkSXHTEffSyDNT4+vo+bv5QFBzUYW0l42shUmr+/biHDF6eIJjW8RePEgl0ydVhcWYedEMCulfmWgVPsJu+IkZ86M0ZPIfzlhQosMboWjcWZGv559MV6L4+cGl9ZCy4ro+Mj903yUqlm8RHELsgr/T1IpsZ2CyATWdshfnTcfEv8YgZdoNfm0qJ+77HIjPPGrFlbCfQDOlTncQWMiLAps8+iM0ijUL3mR1F79OHP+nAjdnVA+Adux/FkBRy48KJE87jNk9C6vEjP25HmXWfhI3YEBexu7Ys6W+EZeg4z/10rXFIJLMFaJJbWN/LwUmmTPpX7qIU3Rv0v+zDVwl4YvpM6UewGUuC+Db/vKSHr6o+E4n1BfolJYclFhkdzFaDockG4ijMgDLw8q4DLnF0e+eIMflLkLHKiDDNGvQWqm9UDZowQdlhhY1ig1BC+2LNzd1A/9IcRYz/oV5eHxgq3wwHT4cME=

Using this template, you can revert all changes created by travis, but save the generated base64 512 bytes secure key from the previous step before doing so, and add it to your .travis.yml at the corresponding spot.

References:

Built With SwiftFrameworkTemplate

Credits

Some of the ideas and wording for the statements above were based on work by the Alamofire and ReactiveCocoa communities. We commend them for their efforts.

Contributing

Issues and pull requests are welcome!

Author

Rahul Katariya @rahulkatariya91

License

SwiftFrameworkTemplate is released under the MIT license. See LICENSE for details.

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].