RFAboutView-Swift 3.0.0

RFAboutView-Swift 3.0.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Dec 2020
SPMSupports SPM

Maintained by René Fouquet.




RFAboutView-Swift

Version License Platform Carthage compatible

RFAboutView is an easy, drop-in solution to display copyright, support, privacy and other information while also automatically crediting the developers of third-party CocoaPods. RFAboutView uses AutoLayout and can be used both for iPhone and iPad apps.

Its main features are:

  • Displays app name and copyright information.
  • Displays an optional link to a website, opening in Safari View Controller
  • Displays an optional link to an Email address.
  • If the user clicks on the Email link, a MFMailComposeViewController opens, (optionally) pre-filled with diagnostic information useful for support: App name and version, current device, current iOS version, preferred device language.
  • Displays additional buttons with further information (for example your TOS or Privacy Policy) that you can specify.
  • Displays acknowledgements for all CocoaPods used in the project. The acknowledgements file automatically created by CocoaPods is used for this, requiring almost no work on your part. See "Automatic acknowledgements" below for more information.
  • Clean and modern design with lots of customisation options.

Screenshots

Screenshot 1

Screenshot 2

Usage

To use RFAboutView, first import it:

import RFAboutView_Swift

Then, initialise a RFAboutViewController and add it to a UINavigationController. The RFAboutViewController must always be used in navigation stack. Here is a complete example:

// First create a UINavigationController (or use your existing one).
// The RFAboutView needs to be wrapped in a UINavigationController.

let aboutNav = UINavigationController()

// Initialise the RFAboutView:

let aboutView = RFAboutViewController(copyrightHolderName: "ExampleApp, Inc.", contactEmail: "[email protected]", contactEmailTitle: "Contact us", websiteURL: NSURL(string: "http://example.com"), websiteURLTitle: "Our Website")
        
// Set some additional options:

aboutView.headerBackgroundColor = .blackColor()
aboutView.headerTextColor = .whiteColor()
aboutView.blurStyle = .Dark
aboutView.headerBackgroundImage = UIImage(named: "about_header_bg.jpg")

// Add an additional button:
aboutView.addAdditionalButton("Privacy Policy", content: "Here's the privacy policy")

// Add an acknowledgement:
aboutView.addAcknowledgement("An awesome library", content: "License information for the awesome library")

// Add the aboutView to the NavigationController:
aboutNav.setViewControllers([aboutView], animated: false)

// Present the navigation controller:
self.presentViewController(aboutNav, animated: true, completion: nil)

Installation via Swift Package Manager

Add the following to your Package.swift (or add it via Xcode's GUI):

.package(url: "https://github.com/fouquet/RFAboutView-Swift", from: "3.0.0")

Installation via Cocoapods

RFAboutView is available through CocoaPods. To install it, simply add the following lines to your Podfile:

pod "RFAboutView-Swift", '~> 3.0.0'
use_frameworks!

Installation via Carthage

To install RFAboutView via Carthage, simply add the following line to your Cartfile:

github "fouquet/RFAboutView-Swift"

Automatic acknowledgements via Cocoapods

Every time you run pod update or pod install, CocoaPods automatically generates a file containing copyright and license information for all CocoaPods used in the project. RFAboutView uses this file to display the acknowledgements. To use it, copy the file Pods-<Target Name>-acknowledgements.plist found in the <Project Root>/Pods/Target Support Files/Pods-<Target Name> directory to your project and call it Acknowledgements.plist. You can also use a different name if you would like – if you do, set the acknowledgementsFilename property of RFAboutViewController to the new name (without plist).

To automate this, you can add the following snippet to your Podfile:

post_install do |installer|
  require 'fileutils'
  FileUtils.cp_r('Pods/Target Support Files/Pods-<Target Name>/Pods-<Target Name>-acknowledgements.plist', '<Project Dir>/Acknowledgements.plist', :remove_destination => true)
end

Note that the directory names can differ based on the setup of your project and whether or not you are using different targets. Check with your local project directory and change the snippet accordingly. Also don't forget to add the Acknowledgements.plist file to your Xcode project.

Localization and changing the default text

If you want to localize RFAboutView for your app or if you would like to change the default texts, you can use the RFAboutView.strings file in the example app as a template.

Customization options

RFAboutView contains many customization options. See the file RFAboutView.swift for a full documentation.

Example Project

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

RFAboutView requires iOS 12.0 and Xcode 12 (for Swift 5.3).

Author

René Fouquet, [email protected] Follow me on Twitter at @renefouquet

License

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