What are Coordinators in Design Technology?
![Oscar de la Hera Gomez](https://www.delasign.com/CDN/headshots/profile.webp)
![A flower that represents digital craft with the word "Coordinators" beneath it.](https://www.delasign.com/CDN/images/What-are-Coordinators-in-Design-Technology.webp)
Coordinators are managers that control the visual experience, wireless interactions and manage the data of a mobile app, website or digital experience.
Design Technology Systems use Coordinators to create systematic ways to manage, analyze and control an app, website or digital experience (i.e. AR/VR/AI).
They empower organizations by streamlining decisions, ways of working and provide consistent central points of action that manage specific aspects of product, service or experience.
Coordinators augment development speed by providing centralized task specific managers that reduce code redundancy and inform developers of where bugs could occur within an experience.
For example: the Styleguide manages the typography and colors, therefore any updates or issues regarding type or colors would take place in the Styleguide.
Origin
The term Coordinators came into our life in 2020 as we were using Singletons to manage events, variables and functionality across the M·A·C Innovation Lab experience.
Singletons originated from Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides's Design Patterns: Elements of Reusable Object-Orientated Software in 1994 and are referred to as a creational digital design pattern that creates a unique object (or "instance") with a specific purpose within a technology system.
Examples Use Cases
Example uses of Coordinators within a design technology system (i.e. app, website, AR/VR/AI experience) include:
Scene Coordinator
A Scene Coordinator's purpose is to manage the experience state and experience sub states within an app, website or digital experience which is used to determine what scene (AR/VR), screen (app) or page (website) that is currently shown to the user (consult our article on User Experience Maps).
For example, in Price After the MainActivity or ViewController acts as the Scene Coordinator and:
- If a user is on the landing screen and presses the menu button, the system updates to the experience state to "menu" and shows the user the menu screen.
- If the user is within the Welcome Tutorial, the system maintains the experience state as "welcome tutorial" and updates to the relevant Welcome Tutorial experience sub state as the user moves through the welcome tutorial.
- Any state updates are synced with the Data Coordinator to enable any element within the System to know what state is currently active.
Language Coordinator
A Language Coordinator's purpose is to provide a centralized source for all the localized verbal content (i.e. text for Spanish or English) that is shown across an app, website or digital experience.
Content Coordinator
A Content Coordinator's purpose is to provide a centralized source for all the images and videos of an app, website or digital experience.
If these files are not held locally, they should be cached and made available through this singleton.
Styleguide
A Styleguide's purpose is to provide a centralized source for all the typography and colors of an app, website or digital experience.
When used in labels (i.e. headlines or body), Styleguide's should offer Styles which apply typography and colors in a systematic way that scale across formats and languages.
Notification Coordinator
A Notification Coordinator's purpose is to provide a centralized way to send intents, notifications or Unity System Events across an app or digital experience and help organizations manage and analyze systems by providing a source of truth for what events are available and understanding how they perform across a user experience.
These intents, notifications or system events notify elements within a system allowing them to update variables, states or data, guaranteeing an entire design technology system to perform, look and feel as expected as a user uses the app, website or digital experience.
For websites, we use React Redux as the Notification Coordinator as it facilitates the ability to sync variables or states across the application.
Data Coordinator
A Data Coordinator's purpose is to provide a centralized way to manage when and how data is loaded and made available to a system.
For example:
- If a user logs into a system, the Data Coordinator would manage the login process and hold onto the user's details.
- After they log in, the Data Coordinator would call the relevant API's to customize the app, website or digital experience to their profile.
- Once all the data is has been received, the Data Coordinator would store this data and would use the Notification Coordinator to let the system know that it should update to show the user's data.
- During the use of the app, website or digital experience, any API calls and their results and responses would be managed by the Data Coordinator.
Internet Coordinator
A Internet Coordinator's purpose is to provide a centralized way to manage what the internets connection state and to allow any part of the system to identify the connection state.
For example:
- As the internet becomes available/unavailable or the device connects/disconnects from the internet, this singleton would track and store these changes.
- As the connectivity state changes, the Internet Coordinator would use the Notification Coordinator to let the system know that there has been a change in connectivity.
BluetoothCoordinator
A Bluetooth Coordinator's purpose is to provide a centralized way to manage what devices are available to connect to as well as managing the connection state to devices (i.e. disconnected, connecting, connected).
The Bluetooth Coordinator also manages all the messages that are sent to devices and which are sent from devices.
For example:
- When a user turns on their headphones, the Bluetooth Coordinator updates the list of items that it can connect to to include the headphones.
- As the user connects to their headphones, the Bluetooth Coordinator updates the state of connection to the headphones and lets the system know through the Notification Coordinator.
- As the user uses their headphones, any messages such as volume up or volume down are tracked by the Bluetooth Coordinator and are sent to the system through the Notification Coordinator.
- When the user chooses to disconnect from their headphones, the Bluetooth Coordinator sends a disconnect message to the headphones - making the headphones play a sound before disconnecting from the device.
Commerce Coordinator
A Commerce Coordinator's purpose is to provide a centralized way to manage all e-commerce transactions.
For example, in iOS we call the Commerce Coordinator a StoreKit Coordinator, which can carry out actions that include:
- The StoreKit Coordinator manages what In-App Purchase (IAP) and Subscriptions a user is entitled to.
- When a user chooses to buy an IAP or Subscription, the app would coordinate the state (success, pending or failure) of a purchase through the StoreKit Coordinator.
- The StoreKit Coordinator also includes a listener incase a family plan purchase takes place allowing an individual to access an IAP or subscription without making an action.
- All features that involve management or changing an existing subscription are also made available by the StoreKit Coordinator.
Analytics Coordinator
An Analytics Coordinator's purpose is to provide a centralized way to manage the broadcasting of all analytics events to all relevant sources (i.e. Send all events to Google Analytics, Microsoft Application Insights and Firebase).
Analytics Coordinator's often include functionality to make sure that all events have a series of base parameters (i.e. device model, userId, timestamp).
Benefits of Coordinators
Please refer to our article on Singletons to learn more about the benefits of using creational design patterns, such as Coordinators, within an app, website or digital experience (i.e. AR/VR/AI).