Skip to content

The simplest way to display the librarie's licences used in your application.

License

Notifications You must be signed in to change notification settings

floriangbh/OpenSourceController

Repository files navigation

OpenSourceController

Cocoapods version Cocoapods plateform Prs welcome

FeaturesUsageTranslationCustomisationInstallationLicense

Display a screen with all licences used in your application can be painful to maintain. OpenSourceController was built to respond to this problem. OpenSourceController is a simple parser to display the licences which are used in your application.

OpenSourceController

Features

  • Display tableView with licences used in your app
  • Download licence from an URL

Requirements

  • Xcode 11
  • iOS 9.0+ target deployment
  • Swift 3, Swift 4 or Swift 5.1 project

Usage

  • Import the library :
import OpenSourceController
  • Display the controller :
// Create controller 
let openSourceVC = OpenSourceController()

// Init with LicenceFile object 
openSourceVC.licences = [LicenceFile(title: "FacebookImagePicker", 
                        url: "https://raw.githubusercontent.com/terflogag/FacebookImagePicker/master/LICENSE"),
                        LicenceFile(title: "JSQMessagesViewController", 
                        url: "https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/develop/LICENSE")]

// Present controller 
openSourceVC.presentOpenSourceController(from: self)

// OR push the controller if the source controller is embeded in navigation controller
openSourceVC.pushOpenSourceController(from: self)

With SwiftUI :

struct OpenSourceView: UIViewControllerRepresentable {
    @available(iOS 13, *)
    public func updateUIViewController(_ uiViewController: OpenSourceViewController, context: UIViewControllerRepresentableContext<OpenSourceView>) {
        //
    }
    
    @available(iOS 13, *)
    public func makeUIViewController(context: UIViewControllerRepresentableContext<OpenSourceView>) -> OpenSourceViewController {
        let openSourceVC = OpenSourceViewController(licences:
            [LicenceFile(title: "FacebookImagePicker",
                         url: "https://raw.githubusercontent.com/terflogag/FacebookImagePicker/master/LICENSE"),
             LicenceFile(title: "JSQMessagesViewController",
                         url: "https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/develop/LICENSE")],
                                                    showCloseButton: true,
                                                    configuration: OpenSourceControllerConfig(),
                                                    licenceLoader: LicenceLoader())
        return openSourceVC
    }
}

Customisation

You can apply some customisation. To do it you can use the OpenSourceControllerConfig structure like this :

// Navigation bar title 
openSourceVC.config.title = "MyCustomTitle"

// Close button color 
openSourceVC.config.uiConfig.closeButtonColor = UIColor.white

// BackgroundColor 
openSourceVC.config.uiConfig.backgroundColor = UIColor.red.withAlphaComponent(0.6)

// Licence text color  
openSourceVC.config.uiConfig.licenceTextColor = UIColor.white

// Navigation bar title color
openSourceVC.config.uiConfig.titleColor = UIColor.white

// Licence cell background color 
openSourceVC.config.uiConfig.licenceBackgroundColor = UIColor.red

// Verbose mode 
openSourceVC.config.verbose = true

Translation

OpenSourceController is currently write in english. If you need translation for the permission popup (or whatever thing), just add this line in your localized file :

"Unable to load this licence." = "<your_translation>";

Installation

  • To integrate OpenSourceController into your Xcode project using Swift Packet Manager, specify this url in Xcode : https://github.com/floriangbh/OpenSourceController

  • To integrate OpenSourceController into your Xcode project using CocoaPods, specify it in your Podfile :

pod "OpenSourceController", '~> 3.0.0' # Swift 4.2 Version

pod "OpenSourceController", '~> 2.0' # Swift 4.0 Version 

pod "OpenSourceController", '~> 1.0.8' # Swift 3.1 version
  • To integrate OpenSourceController into your Xcode project using Carthage, specify it in your Cartfile :
github "floriangbh/OpenSourceController" ~> 3.0.0 # Swift 4.2 version

github "floriangbh/OpenSourceController" ~> 2.0 # Swift 4.0 version

github "floriangbh/OpenSourceController" ~> 1.0.8 # Swift 3.1 version

Author

Florian Gabach, florian.gabach@gmail.com

License

OpenSourceController is available under the MIT license.

About

The simplest way to display the librarie's licences used in your application.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •