Created and maintained by kula.app and all the amazing contributors.
OnLaunch is a service allowing app developers to notify app users about updates, warnings and maintenance. Our open-source framework provides an easy-to-integrate client to communicate with the backend and display the user interface.
- Display customizable messages to your app users
- Set your app into maintenance mode with blocking messages
- Easy to integrate with SwiftUI and UIKit
You can integrate OnLaunch
into your project using Swift Package Manager.
- In Xcode, go to File --> Swift Packages --> Add Package Dependency.
- Paste the package repository URL:
https://github.com/kula-app/OnLaunch-iOS-Client
- Choose the desired version or branch (e.g.
main
for the latest development version). - Select the target where you want to add
OnLaunch
. - Click Finish to complete the integration.
- Import the
OnLaunch
iOS client into yourApp
file:
import OnLaunch
- Apply the configuration view modifier on your root content
View
to set your public key:
@main
struct MainApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.configureOnLaunch { options in
// Configure the public key to authenticate with the API endpoint
options.publicKey = "<YOUR PUBLIC APP KEY>"
}
}
}
}
- Optionally configure the
OnLaunch
client by modifying theoptions
:
...
.configureOnLaunch { options in
// Configure the public key to authenticate with the API endpoint
options.publicKey = "<YOUR PUBLIC APP KEY>"
// (Optional) Configure a custom base URL to your API host
// options.baseURL = "https://your-domain.com/api"
}
...
- Import the
OnLaunch
iOS client into yourSceneDelegate
file:
import OnLaunch
- Configure the client with your public key and set the
hostScene
:
func sceneDidBecomeActive(_ scene: UIScene) {
OnLaunch.configure { options in
// Configure the public key to authenticate with the API endpoint
options.publicKey = "K2UX4fVPFyixVaeLn8Fky_uWhjMr-frADqKqpOCZW2c"
// Configure the host scene to present the UI
options.hostScene = scene
// or: configure the host view controller to present the UI
// options.hostViewController = (scene as? UIWindowScene)?.keyWindow?.rootViewController
}
}
- Optionally configure the
OnLaunch
client by modifying theoptions
:
...
.configureOnLaunch { options in
// Configure the public key to authenticate with the API endpoint
options.publicKey = "<YOUR PUBLIC APP KEY>"
// (Optional) Configure a custom base URL to your API host
// options.baseURL = "https://your-domain.com/api"
}
...
You can also configure OnLaunch inside your AppDelegate
in case your app does not use scenes.
The OnLaunch iOS client provides a couple of configuration options:
Name | Description | Default |
---|---|---|
baseURL |
Base URL where the OnLaunch API is hosted at. Change this to point to your self-hosted instance of the OnLaunch server. | https://onlaunch.kula.app/api/ |
publicKey |
Public key used to authenticate with the API | |
shouldCheckOnConfigure |
Flag indicating if the client should check for new messages immediately after it has been configured. | true |
hostScene |
Scene used to host the OnLaunch client UI. Required if you use UIKit with scenes | |
hostViewController |
An instance of UIViewController used to host the OnLaunch client UI. Required if you use UIKit without scenes |
|
theme |
Custom theme used by the OnLaunch client UI. Adapt the values to change the theme to match your preferences. To see all possible configuration values, see Theme.swift |
Default values as defined in Theme.standard in Theme.swift |
bundleId |
Bundle identifier used by server-side rules. | Uses value set in Bundle.main.bundleIdentifier |
bundleVersion |
Version of the build that identifies an iteration of the bundle. | CFBundleVersion defined in Info.plist |
releaseVersion |
Release or version number of the bundle. | CFBundleShortVersionString defined in Info.plist |
appStoreId |
ID of the app in the App Store. If not defined, the ActionType.openInAppStore will throw a non-crashing assertion |
Please see our Contributing Guide.
Distributed under the MIT License