Popularity
6.5
Stable
Activity
0.0
Stable
856
14
50

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: Permissions    
Latest version: v1.2.3

Proposer alternatives and similar libraries

Based on the "Permissions" category.
Alternatively, view Proposer alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Proposer or a related project?

Add another 'Permissions' Library

README

Proposer

Proposer provides a single API to request permission for access Camera, Photos, Microphone, Contacts, Reminders, Calendar, Location or Notifications.

Requirements

Swift 4.2, iOS 9.0

(Swift 3, use version 1.1.0)

Example

Only one single API:

proposeToAccess(_:agreed:rejected:)

In real world:

import Proposer
@IBAction func choosePhoto() {
    let photos: PrivateResource = .photos
    let propose: Propose = {
        proposeToAccess(photos, agreed: {
            print("I can access Photos. :]\n")
            if UIImagePickerController.isSourceTypeAvailable(.savedPhotosAlbum) {
                let imagePicker = UIImagePickerController()
                imagePicker.sourceType = .savedPhotosAlbum
                self.present(imagePicker, animated: true, completion: nil)
            }
        }, rejected: {
            self.alertNoPermissionToAccess(photos)
        })
    }
    showProposeMessageIfNeedFor(photos, andTryPropose: propose)
}

When you want to get user's location, thanks to Swift's enum, you can even choose the usage mode:

@IBAction func shareLocation() {
    let location: PrivateResource = .location(.whenInUse)
    let propose: Propose = {
        proposeToAccess(location, agreed: {
            print("I can access Location. :]\n")
        }, rejected: {
            self.alertNoPermissionToAccess(location)
        })
    }
    showProposeMessageIfNeedFor(location, andTryPropose: propose)
}

Depending on your needs, you must add a NSLocationWhenInUseUsageDescription or NSLocationAlwaysUsageDescription to your Info.plist

See the demo for more information.

I recommend you add a UIViewController+Proposer.swift file (like the demo) for show localized alert before the first proposal or when propose failed.

Installation

Feel free to drag Proposer.swift to your iOS Project. But it's recommended to use Carthage (or CocoaPods).

Carthage

github "nixzhu/Proposer"

CocoaPods

pod 'Proposer'

Contact

NIX @nixzhu

License

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


*Note that all licence references and agreements mentioned in the Proposer README section above are relevant to that project's source code only.