Data Sharing Between Apps
Overview
io.Connect Browser provides a wide range of interoperability services – Request/Response, Streaming, Shared Contexts, Channels, Intents, and more. The varied interoperability options of io.Connect Browser provide you with abundant approaches for sharing data between your apps. Each interoperability service is best applied in certain scenarios.
Request/Response
If you have an app with existing functionalities which you want to offer to other apps within io.Connect Browser, you can use the Request/Response Interop API. Your app can register an Interop method which invokes the respective functionality of your app. Other interop-enabled apps can discover this Interop method and invoke it in order to use the said functionality.
Streaming
If you need to stream or capture real-time data, you can use the Interop API to register special Interop methods that allow publishing and subscribing to data streams. Just like with Request/Response, an app can register a method for publishing a stream and another app can invoke that method to subscribe for the stream and receive the published data.
Shared Contexts
If you need to synchronize data across multiple apps (e.g., the user clicks on a client name in a client list app and all other connected apps automatically show relevant data for that client), you can use the Shared Contexts API. A Shared Context is an object holding information in the form of key/value pairs. An app can create, set or update a context object and can also subscribe for changes to that context object in order to react accordingly to context changes and update its information.
Channels
You can use the Channels API when you want to offer the user an UI for choosing which apps to group together and allow them to synchronize data between each other. Channels are based on Shared Contexts and are UI-driven. The user can select from any number of defined color Channels and assign any number and combination of apps to a certain Channel. This way, when the user changes a selection, or updates information in one app, all other apps will synchronize their data according to the user action.
Intents
The Intents API can be used as a means of creating workflow scenarios in which you may want a certain app to start another app (or activate an already running instance of it) in order to handle a specific action. The app that raises an Intent can pass context data to the app that will handle the raised Intent. You can register apps as Intent handlers via configuration or programmatically. The Intents Resolver App enables you to provide the user with a UI from which they can choose which app to handle a raised Intent when there are more than one handlers available for the same Intent.
FDC3
The io.Connect Browser platform provides full support for the FDC3 standards. You can use the io.Connect implementation of the FDC3 standards to create FDC3 apps. It's also possible for your io.Connect apps to interoperate with third-party FDC3 apps, as the io.Connect APIs support working with FDC3 contexts.