Architecture⚓︎
Integrating the Mobile SDK⚓︎
Packages for Android and iOS are available through our distribution channels. The Android package provides a Java interface for easy integration, the iOS package a Swift interface.
An example application that uses the SDK is available for both Android and iOS and can be used freely to speed up your development.
Calling the SDK⚓︎
The SDK library operates as a singleton and exposes all necessary calls to interact with the SDK functionality, such as starting and managing session, accounts, handling push messages...
There are two types of calls:
- Calls that return an immediate result (e.g. a list of accounts/sessions). These calls should be assumed to be blocking, as the result will need to be prepared.
- Calls that return no result (e.g. inputting a second factor, stopping a session). These calls will only block for a minimal amount of time and are suitable for usage on the main thread. Internally, new threads are always started to take care of any potentially blocking interaction, such as network access.
Asynchronous Callbacks⚓︎
The SDK uses callbacks to notify the mobile app of changes in its state and for requesting user interaction. Callbacks can occur at any moment in time, regardless of ongoing user activity (which the SDK is not aware of). When user interaction is requested by the SDK itself, the SDK will ensure that no other user interaction request callback will occur in the meanwhile.
The user of the SDK should take care that callbacks are properly processed, respecting the platform specific restrictions regarding asynchronous handling of events.
Push Messages⚓︎
Processing push messages requires specific code and configuration in Android and iOS. The example application provides the necessary snippets for letting the SDK process push messages.