OpenSourceController

Cocoapods version Cocoapods plateform Prs welcome

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

  • [x] Display tableView with licences used in your app
  • [x] 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, [email protected]

License

OpenSourceController is available under the MIT license.

GitHub

https://github.com/floriangbh/OpenSourceController