Enterprise or Personalized Themes Guidelines - Power Apps - Part 2
Jaya Pandu Ranga Rao BS
Power Platform | TOGAF | M365 | SharePoint | Modern Workplace @ Melbourne | Credentials
This article is the second part of a series. Other parts: Part 1
Here, we will see how we can achieve enterprise themes / Department themes / personalised themes in a large organisation. Also, how to achieve a centralised theme approach for all the apps across all the apps.
- There can be multiple business cases. For instance,There are a set of apps which are categorised Enterprise apps and would want to follow a particular theme
- There are a group of apps which are at the Department level, like HR, Facilities, etc. and not related to the department. Each department wants its theme. These departments might be working within the same or different tenant altogether.
- Another set of apps, which wants to allow users to personalize the themes. ie: For a given user wants to see a common theme across all these apps but wants to set his theme only once.
- Enterprise wants to adhere to the Accessibility standards like WCAG etc. In these cases, a centralised gearbox becomes imminent in the design of the Themes. ie: Cannot leave the individual app to decide their theme.
- Enterprise/Department wants to have an approval process before a theme is decided and gets applied to an app.
- Many other use cases can be further expanded.
This article will try to cover all the above said cases at a very fundamental concepts level while solution-ing the theming for power apps.
Following are key elements to decide based on your business scenarios
- Data storage to store and share the information (within same or across tenant)
- Theme Attributes
- Categorisation of Apps
- Governance model.
Data Storage
Fundamentally, today's power apps have a limitation that there is no direct way to share data across apps other than to share Datastore. For instance, a JSON getting saved in the device or session storage of Laptop/Desktop by App A cannot be accessed by other Apps say App B. This demands to the usage of Data Store to share the theme information across apps.
Any of the Data Stores which Power Apps can connect to will suffice the requirement for storing and sharing theme information. But, if we refer to Part 1 of this series, we also want this data should be shared in "Record" format to get it applied like a JSON.
Out of all the data connections now possible, only a few can satisfy this like SQL, SharePoint, CDS, etc.
Theme Attributes
This activity is for the UX designers of your organisation. Here, they will decide the individual attributes of any given app which needs to controlled by the centralised theme. They only decide the attributes and not the value for those attributes. For example, Background Color of the screen is an attribute but colour needs to be applied to these attributes need not be decided now.
In the above example, we have Primary, BackgroundColor, Text on Primary, Text Color on Background, HL as the various attributes. Besides, there is the type associated to each of these attributes say is it a Color, or Font Size or Font Family.
Categorisation of Apps
For organisation, which don't have any apps as of today without much haywire, just decide on how many themes you would want in your organisation based on the number of divisions, functions and locations. - with Name of the Theme and brief description of the theme. This description will help the power developers to know which theme they need to apply based on the app they are working on.
But if you happen to have some apps, kindly categorise your apps based on the themes. For instance, the apps of Facilities and HR might want to follow different themes compared to the Engineering, Support & Services.
Each category of this step will correspond to individual themes as shown below.
Based on the list of themes derived above, now decide and set the values of the individual themes and its attributes as shown below.
Governance model
Here is a simple model for the governance to be put in place.
Let's say, we have two tenants A and B. Tenant A is that of the enterprise and B is that of a department. We will provide the data store for Theme Attributes, Themes in Tenant A as we want to manage the whole process from Tenant A. A data store for an Approved list of the Themes will be provisioned in both the tenant's A & B.
On the creation/updating of a Theme, we can trigger an automated Power Automate solution to initiate an approval process (if required). Further to the approval, we can copy the updated theme to the Approved theme's repo. This can be leveraged by all the power app in the respective tenants using the standard data connection to read it as records.
Just be mindful, that as of today Powerapp's doesn't have the inbuilt capability to parse JSON string, hence we would need to store the attributes as different columns of the Approved Themes. Hopefully, soon, Microsoft provisions the capability to Parse JSON to keep the whole solution compact and concise.
Please feel free to leave your comments below.
SharePoint | O365 | Power Platform
4 年well written blog Jaya. Good work! As a Power App developer, this gives me a new perspective on handling multiple apps within my organization.