15 things I wish everybody knew about Power Apps
No matter if you are a seasoned Power App developer or you are just starting, the platform has some caveats. Knowing them may save you some time and effort for app development.
Here are 15 things to consider when working with the Microsoft Power Apps platform to address business needs.
1. Microsoft Power Apps is not only about canvas apps
The platform also offers two other major capabilities: model-driven apps and portals.
The canvas app happens to be the most popular and flexible type of solution which can be developed for a mobile device, embedded onto a web page or a Power BI report. With canvas apps you also have the most back-end integration options as compared to model-driven apps.
2. Power Apps is excellent at integrating with 3rd party systems
Integrations are achieved by using connectors. These modules encapsulate the API logic for connecting to different systems that are on-premises or in the cloud, e.g. SharePoint Online, Dynamics 365, SAP, Azure, Salesforce and many others. Connectors provide a simple configuration interface with which you can get the data flowing to your application in no time.
3. Microsoft Power Apps has a learning curve
It still depends on how deep you want to go. The platform is geared toward citizen developers, but the line between citizen development and "real" development and IT support can get blurry. For example, setting up an on-prem gateway is rather a task for an IT professional than for a citizen developer, although guidance from Microsoft is abundant. Also, anything beyond the standard built-in ALM (application lifecycle management) goes a bit beyond the reach of the citizen developer.
4. Canvas apps can be embedded as web apps
You don’t have to think of canvas apps necessarily as mobile apps. Anything you develop in "canvas" mode can be embedded on a web page, be it SharePoint Online or any other. Every canvas power app gets a unique ID and a unique link that can be used over the web. Usually though embedded Power Apps must account for the different device that will access the webpage.
5. Beware of the pitfalls of the Power Apps formula language
Some of them are:
- Delegation: not all data sources are delegable like SQL Server,
SharePoint and Dataverse. Even more, some functions from the Power Apps formula
language are not delegable even when working with a delegable data source. This
fact means you must analyze your data and check what functions you will need before
implementation. For example,
Lastare non-delegable functions,
GroupByas well. Extra data preparation steps may be needed to get the source data ready. Wrangling the data may not be possible inside power apps.
- Arrays: Power Apps is not particularly good at working with arrays. Yes, you can use an array to configure the menu options for a dropdown control. However, you cannot pass an array as a parameter to a power app. If you have an API that returns an array response you will probably have to turn that into a string and split it by some delimiter (depending on the scenario).
- Limits: notably, only one person at a time can work on a power app. If you use the attachment control, its file size limit is 50MB. Finally, the licensing model can vary depending on the type of connectors used and you may need a strong business case for some implementations.
6. Design does not come out of the box
Lots of the complexity and coding required in Power Apps is already abstracted away. You get pre-configured connectors, controls, formulas, etc. The design, however, is still up to you, except if you are using some sort of a template app. The maker still must plan for a coherent and attractive design by using consistent colors, element positions and creating a generally predictable user interface. This may sound relatively easy for small-scale apps, but for apps with lots of menus and menu controls can get complex.
7. There are many templates
Do you have an idea for an app? Do you want to just explore? Then head over to the templates section, after clicking Create from the homepage:
The templates are provided by Microsoft and allow subsequent edits after being deployed.
8. Permissions must be configured
Whatever canvas app you develop, its permission will be completely detached from the underlying data source(s). If the end user has access to a certain database being used in an app, the user must also be given access to the app explicitly. Conversely, if the user gets access to a Power App, the maker must ensure proper permission to the data sources are provided accordingly, depending on the app functionality (read only or read and write).
9. Canvas apps can host completely custom code
Microsoft has allowed for a controlled way to imbue a power app with custom functionality that is not provided by any existing control. This enhancement happens via components and can be anything from a custom button to an export to pdf functionality, for example. The Power Apps Component Framework Gallery contains many readily downloadable examples here.
10. Canvas apps support mixed reality (MR)
With MR you can do the following:
- View in MR: view 3D content or images in MR. The component adds a button to your app. When clicked, it overlays a selected 3D model or image onto the live camera feed of the device.
- View shape in MR: the component lets users see if a simple cube might fit within a specified space. They might want to do this to see how a certain object that you provide would fit in their space. It overlays a cube onto the live camera feed of the device. The dimensions of the cube are set up when you edit the component in Power Apps.
- Measure in MR: lets users measure distance, area, or volume. During measurement, two-dimensional and three-dimensional polygons can be created to show how an object of a certain size would fit within a space.
Keep in mind not all devices support MR. Additional information about those that do can be found here.
11. Power Apps and external users
As a common business scenario, you may need to share something with either a vendor or a client. These are usually users outside of your Office 365 tenant. If you do not use Power Apps portals, you will need an O365 account for these users. If you happen to use a premium connector in your app (such as SQL Server), the external party will also need a premium license.
12. Mind the data model
If you are starting to develop an app from scratch think about the data being gathered from the user. It is one thing to have 50 true/false input fields and another to have 20 free text answer fields. Take the time to map the different inputs needed to specific data types of the underlying data sources. Additionally, it may be difficult to create a normalized data model out of a certain form so you will have to plan for normalization if needed, which must happen outside of Power Apps.
13. Barcode scanning is not perfect
Power Apps has many extra modules. One of them is the barcode scanning module. Its main advantage is that it provides a quick and easy way to enable you to integrate barcode scanning. Its disadvantage is that it supports only the most common symbologies, such as QR codes and EAN. There are many other out there, some of which industry specific. For those types of barcodes, you may need another solution outside or alongside Power Apps.
14. Speed and optimization
Microsoft increasingly improves and enhances the Power Apps platform – the studio, the iOS and Android clients and many other invisible to the end user modules. As a maker, though, you must be cognizant of the fact that the app is accessed over the internet (not locally) and over a device that may have limited memory (such as a cellphone, not a desktop machine). This is especially tricky for apps that are used both from a desktop machine and a mobile device. The common performance baseline then would be the slowest cellphone that may end up using the app. So, ensure payload is optimized for a potentially unreliable connection or a slow device.
15. Governance is critical
It is important to nurture and further develop your community of citizen developers. This is generally done through some sort of a governance set up that oversees the various apps people develop and provides continuous support and training. Part of the governance is also the environment strategy, which, in turn goes hand in hand with the ALM set up. A good starting point for this is the Center of Excellence toolkit.
About the author
View all my tips
Article Last Updated: 2021-09-29