Carte 1.0.2

Carte 1.0.2

DocsDocumented
TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Mar 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Suyeol Jeon.


Downloads

Total1,382
Week113
Month419

Installs

Apps30
Apps WeekApps This Week 8
Test Targets4
Test WeekTests This week 1
powered by Segment

GitHub

Stars39
Watchers2
Forks5
Issues0
Contributors4
Pull Requests0

Code

Files2
SizeIntegration Size 24 kb
LOCLines of Code 135


Carte 1.0.2

  • By
  • Suyeol Jeon

Carte

Open source license notice view generator for Cocoa.

Screenshot

carte

These are the screenshots of demo project which is located in CarteDemo directory.

Features

  • 🚗 Automatic: Carte automatically generates OSS notice from CocoaPods and CocoaSeeds.
  • ☕️ Easy Integration: Install Carte, add run scripts, then push CarteViewController. It’s done.
  • Customizable: Adding custom items, customizing CarteViewController. See Customizing section.

Getting Started

Step 1. Installation

  • For iOS 8+ projects: Use CocoaPods with Podfile:

    pod 'Carte', '~> 1.0'
  • For iOS 7 projects: I recommend you to try CocoaSeeds, which uses source code instead of dynamic frameworks. Sample Seedfile:

    github 'devxoul/Carte', '1.0.2', :files => 'Carte/*.{swift,rb}'

Step 2. Adding Run Scripts

phase-order

Carte has a simple ruby script named carte.rb that reads third-party libraries from CocoaPods and CocoaSeeds directory. You have to add 2 run script phases before and after ‘Copy Bundle Resources’ phase.

  • Carte Pre

    ruby /path/to/carte.rb pre
    
  • Carte Post

    ruby /path/to/carte.rb post
    
  • /path/to/carte.rb: carte.rb file is located in Carte directory.

    If you installed Carte via:

    • CocoaPods, then path would be: ${SRCROOT}/Pods/Carte/Carte/carte.rb
    • CocoaSeeds, then path would be: ${SRCROOT}/Seeds/Carte/Carte/carte.rb

  • For example (CocoaPods):

    carte-pre

Step 3. Using CarteViewController

Almost done! What you need to do now is using CarteViewController. Use it just like using a UIViewController: push, present, or whatever you want to do.

let carteViewController = CarteViewController()

Customizing

Manipulating items

CarteViewController has a property named items which is an array of CarteItem. All of licenses are stored in items. You can add new items, remove existings, or sort items by manipulating items array.

This is an example of adding a new CarteItem and sorting items.

let item = CarteItem()
item.name = "Carte"
item.licenseText = "The MIT License (MIT) ...Very long text..."

let carteViewController = CarteViewController()
carteViewController.items.append(item)
carteViewController.items.sort { $0.name < $1.name }

Customizing View Controllers

CarteDetailViewController is appeared when select a cell of table view. CarteViewController provides a handler for customizing it.

Definition:

var configureDetailViewController: (CarteDetailViewController -> Void)?

Example:

let carteViewController = CarteViewController()
carteViewController.configureDetailViewController = { detailViewController in
    detailViewController.navigationItem.leftBarButtonItem = ...
    print(detailViewController.carteItem!.name)
}

License

Carte is under MIT license. See the LICENSE file for more info.