Appearance
Plugin
Plugin is the entry-point for your library to start using PlatformHub. The plugin file is a simple Interface (Android) / Protocol (iOS) which contains the method definition for your plugin (library) to start receiving messages from other plugins.
The messages that a plugin can send and receive are defined by the plugin policy.
Type of plugins
As we have previously mentioned all the plugins have the same public interface defined by the Plugin protocol, but they can be categorised in the following groups depending on the responsibilities they have in the app:
App Plugin: Plugin at the app level that will enable communication between the Application and PlatformHub system.
Journey Plugin: Contains UI. A screen or sequence of screens related to each other and therefore bundled together in the same plugin. IE: Accounts List Journey. Journeys need to be implemented using declarative UI (SwiftUI / Jetpack Compose). Furthermore, to standardise use of Colours, Fonts & Dimension DesignToken e.g. SKYRIN are to be used in connection with ThemeManager. ThemeManager is available for iOS & Android via Nexus. Last but not least, to standardise use of Icons, they need to be accessed through IconManager which is also available for iOS & Android on Nexus.
Capability Plugin: Does not contain any UI, instead it offers certain capability to its users. Journey and domain data plugins will consume their capabilities. IE: Network.
Domain Model Plugin: Does not contain any UI. It is responsible for fetching and hold information at a high level in the app. The domain models are the source of truth of our data and the journey plugins will consume it directly from them. They are our business model. IE: Accounts Data.
Depending on where the plugin is implemented we can also categorise a plugin under the following 2 categories:
- Standalone plugin: Plugin (or adapter plugin) that is self-contained in its own independent library. It can be fetched from Nexus and integrated in multiple apps.
- App internal plugin Plugin (or adapter plugin) that lives within the code of an app (host app). These plugins are not in Nexus so they are not reusable by different apps, therefore they do not require our accreditation from the Platform perspective.
Adapter Plugins
Adapter Plugins facilitate the transition from our legacy, PlatformHub agnostic libraries, to the new PlatformHub ecosystem. You can think of it as a wrapper. An Adapter Plugin will internally reference a legacy framework and direct access to the frameworks public interface will be hidden. The Adapter Plugin will implement the Plugin Protocol interface directing PlatformHub messages to and from the legacy framework. More information on how to create an Adapter Plugin can be found here: