Introduction
In this article, we will discuss 10 design considerations before building an app using PowerApps to automate your business process.
Who is the audience? Which devices do they use?
Find out who is going to use the app. Are they Firstline workers or are they doing the desk job? Find out what devices they mostly use. Is it mobile, iPad or Surface? Or is it going to be desktop/laptop devices? This will help you to choose the layout and set the screen size while creating the app. Though any layout app can work any device but the appearance with font size differs. So, it’s always a best practice to know what end users are expecting and then build it accordingly.
Does the end-user need to work offline?
Find out if end users need features to be used in offline mode. If so, then you need to design the app accordingly. You can use device local storage to store the data and once the device is connected to the internet, you can push the changes to the backend. There is even limit on how much local storage you can use (around 30 to 70 MB) – so plan wisely the data you are allowing use for saving locally.
Choose your backend data source
Choose a backend data source wisely. Are your business users already using a data source to manage data such as a SharePoint list, Excel file, SQL DB or common data service? If so, you can continue using that, but you need to consider the standard and premium connectors also. Since Oct 2019 on-premise SQL DB and azure SQB are premium connectors. To connect to Common Data service, you need separate licenses or at least a dynamics 365 subscription.
I recommend using the SharePoint list, it’s a standard connector to use PowerApps. Admins can easily manage or play with the data from the SharePoint site also.
Does your app need to communicate with such an application for which direct connector is not available in PowerApps?
Find out if you need to communicate with any application for which there is no connector available, neither standard nor premium. If so you need to plan to create web service/API to communicate with that application and then create a custom connector that can be consumed by PowerApps or Power Automate. You need separate licenses to use custom connector also, PowerApps peruse or PowerApps per app.
If you already have PowerApps Plan 1 or Plan 2 licenses (these are not available to purchase since 1st April 2020) – then you can use these to create custom connectors.
Check the list of already available templates
Microsoft has provided ready to use apps as a template already. Check the list if it matches your requirement, or even close to your requirement. You can create an app using those templates and extend them as per your need. This will certainly save your time and give you an idea of what all things you can do for your users.
How fast is your data supposed to grow?
Discuss and identify with what speed data is going to be generated in the future. If it's going to be 2000-3000 records in a year, then you can use local collections in your app – to avoid pulling data from a data source for every screen or action. Local collections in PowerApps are not delegable - but they offer other advantages also, user can do any kind of processing/filtering/sorting on the data locally in the app; it doesn’t request backend every time.
However, if your data is going to generate at a high pace, 2000-3000 records per month, then you need to make use of delegable formulas/functions and provide the local features in-app accordingly.
Take care of each screen load performance?
Its always preferred to use delegable functions and formulas as they perform the operation at backend and just respond requested data with a batch of 100. As a user keeps scrolling, it fetches another batch of 100 items. This certainly improves performance compare to fetching 500 or 2000 items at once.
Make use of Concurrent function to process multiple operations in parallel. Make use of the LoadingSpinner property for every screen so that shows the end-user the loader until the content on the screen is loaded.
Consider UI branding
This is again standard practice to keep UI consistency among all the apps. Decide which company logo you are going to use. Decide the header and footer section if you need it. Try to use them in all the apps. You can create these once as components in components library and reuse it in any app.
Create relevant icons for your app and use that. Use color them matching your organizations branding theme.
Identify different sets of users and data visibility
Before you start building the app, understand the business process, understand what different sets of users are involved in it. Do they need to perform different actions on the same data source? Do they need to allow to update/add only a specific set of data? Do they need to see only a specific set of records in the app?
Get answers to all these questions and plan to create screens accordingly in the app. You can create a tab-based app – multiple screens and multiple forms. We can set visibility of tabs and even set display modes to field data cards depending on who is logged in. This is not 100% control over data manipulation, but we can at least create a guided user interface to different sets of users so that they can focus on their related information only.
Are the users already familiar with PowerApps?
Find if your end-users are already familiar with PowerApps. If not plan a training session with them to understand PowerApps and then your specific app. Plan support team who can support end-users in permissions or any other access issue.
Summary
That's it. If you think there are some more factors to be considered before building an app, please mention them in the comments section below.
Hope this helps.