Swift Package Index

ProntoSDK

https://github.com/Pronto-am/MobileCMS-iOS-SDK.git

The Swift iOS Pronto SDK


Compatibility

  • v4.0.5 and master
    5.3
    5.2
    5.1
    5.0
    4.2
  • v4.0.5 and master
    iOS
    macOS(Intel)
    macOS(ARM)
    Linux
    tvOS
    watchOS

Pronto iOS SDK



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

→ 📯 Read notifications documentation

Authentication plugin

→ 🔐 Read authentication documentation

Collections plugin

→ 🗂 Read collections documentation

Update checker plugin

→ 🌟 Read update checker documentation

Localization

→ 🇪🇺 Read localization documentation

Remote config

→ ⚙️ Read remote config documentation

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)

References