Pronto iOS SDK
Join our slack channel | Support us on Beerpay
Installation
Cococapods
Add the following to your Podfile:
pod 'ProntoSDK'
Available sub-specs:
ProntoSDK/Authentication
ProntoSDK/Notifications
ProntoSDK/Collections
ProntoSDK/AppUpdateCheck
ProntoSDK/Localization
ProntoSDK/RemoteConfig
And run:
pod install
Carthage
Add the following to your Cartfile:
github "Pronto-am/MobileCMS-iOS-SDK"
And run:
carthage update
SwiftPM
Add the following dependency to your Package.swift:
.package(url: "https://github.com/Pronto-am/MobileCMS-iOS-SDK", .upToNextMajor(from: "2.0.0"))
Accio
Add the following dependency to your Package.swift:
.package(url: "https://github.com/Pronto-am/MobileCMS-iOS-SDK", .upToNextMajor(from: "2.0.0"))
And run:
accio install
Development
Open ProntoSDK.xcodeproj
end start development.
Implementation
Core
In AppDelegate.swift
:
import ProntoSDK
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let config = ProntoConfig()
// Setup the API client credentials
config.clientID = <#CLIENT_ID#>
config.clientSecret = <#CLIENT_SECRET#>
config.encryptionKey = <#ENCRYPTION_KEY#>
config.domain = "mypronto.site.com"
config.firebaseDomain = "myprontoproject.firebaseio.com"
// Activate each plugin your project uses
config.plugins = [ .notifications, .authentication, .collections, .localization, .updateChecker ]
// Disable logging for non-debug builds
#if DEBUG
config.logger = Logger() // Should conform to `Cobalt.Logger` protocol
#endif
ProntoSDK.configure(config)
// Do the rest of the implementation
return true
Notifications plugin
→
Authentication plugin
→
Collections plugin
→
Update checker plugin
→
Localization
→
Remote config
→
RxSwift
Almost every asynchronous function ProntoSDK uses RxSwift
internally:
import RxSwift
import RxCocoa
let single = ProntoCollection<Location>().list() // = Single<[Location]>
single.subscribe(onSuccess: { locations in
// ...
}, onError: { error in
print("Error fetching locations: \(error)")
}).disposed(by: disposeBag)