Successfully creating and managing PowerApps requires understanding how to plan for the solution before exploring the many tools that Microsoft provides. We walk through PowerApps development strategies to get you started.
Microsoft has done a fantastic job of encouraging organizations to explore PowerApps development. And if you’re reading this, either you’re interested in PowerApps, or one of your business users created a PowerApp that is now critical to the company, and it is now yours to manage.
I’ve spoken to many organizations that have started asking their business users to create their own PowerApps. However, those organizations often end up with developers sharing PowerApps across the organization that becomes critical to users. But, the business users who created the apps had no guidance, governance or cohesive strategy for designing and maintaining their creations.
So, what should you do to get a handle on these PowerApps? Or to prevent this from happening in the first place?
Begin With a PowerApps PMO
Don’t let that title scare you. For smaller organizations, this may be one or two people. For larger organizations, it may roll into a larger, defined program management office (PMO), but the goal here is to have a single point for guidelines and for the governance of PowerApps design and management.
This group should provide:
UI/UX Guidelines
Colors, icons, fonts, form factors – Oh, my! You have a lot to consider, but by providing end-users with a consistent experience across your PowerApps, you can ensure a positive experience and decrease support and training costs as you maintain and deploy new apps. You also should decide which form factors you intend to support. Remember, PowerApps is not responsive, so deciding to support either phone or tablet – or both – will determine how you plan the development time for each.
Security
PowerApps security is a fairly simplistic process. Users can either create or use apps shared with them. Plan different groups to make the management of sharing apps much easier. Use data access policies to ensure that users only use approved data sources in PowerApps when accessing business content. Define these policies from the outset to prevent data leakage. Consider augmenting PowerApps with Intune Mobile Application Management to add an additional layer of security for mobile users.
Demand Management
As soon as your end-users understand they might be able to get their custom processes, the floodgates to requests will open. From new projects to feature requests, you should have a way for users to communicate what they need and the time frame they need it in. This becomes a meaningful way to manage and prioritize how you can meet their needs. You can use many tools for this step, such as using a particular platform to create your own.
Change Management
With demand management comes change management. Your users may request new features and functionality, but making sure they understand these changes will ensure they use the product most efficiently. Inform them. Over-communicate. The more they know about how the app works, the less likely they will need support in the future.
Also, PowerApps regularly changes, and Microsoft constantly adds and deploys new features. When you edit a PowerApp, the app is automatically upgraded to the latest version of the platform, so understanding recent backend changes and how they may affect the controls, rules, and UI/UX elements of your PowerApp is paramount.
You can find the latest feature releases here: What’s New. One thing to note: Microsoft tends to publish significant changes, but not necessarily all minor changes or those they think will not affect user experience with the platform.
These bug fixes can have unintended consequences that may affect how your PowerApp functions. This leads us to the next guideline for your PMO to monitor.
Quality Assurance and Testing
Test your PowerApp. When you make a change, test it. When the PowerApp version is upgraded, test it. Then test it again. Implement standard testing policies that will be executed when the change occurs because change always occurs. Your testing policies will save you heartache and support costs.
Microsoft PowerApps has many powerful tools within it, but you will want to spend some time upfront to understand those tools and create processes to manage them before turning them loose on your workers. Planning with a proper PowerApps PMO — even if it’s just a few people in a small organization — can prevent a lot of headaches.
PowerApps Development Tools
Speaking of tools, now that you know what to plan for, you can start developing and managing these apps.
PowerApps Design Studio (Web and App Versions)
I was initially going to compare and contrast the differences between using the app version or the web version of the PowerApps Design Studio. Then Microsoft went ahead and deprecated the app version. They probably did this because it was a memory hog, and they realized that web performance provided a better experience, especially for very complex PowerApps.
I’m not going to dive into how to design a PowerApp with Design Studio. Still, it’s essential to understand that you or your teams should perform all development and management of PowerApps through the web version moving forward.
PowerApps Environments
In PowerApps, you can segregate your PowerApps, connections and data policies into different containers that wall off environments from each other. For example, if you have both development and production environments, you can create PowerApps and connections with the same names.
However, the PowerApps and connections have no knowledge of their peers in the other environment. This makes it easy to develop in one environment and then promote it to another environment without making too many changes.
With data policies, you can create environments for distinct policies. You can also allow users to use business data, depending on their accessible environments.
Versioning
Every time you save a PowerApp, it creates a new version of that PowerApp. I know because I make mistakes like this all the time — revising a PowerApp and then wanting to reuse an element from a previous version. With versioning, it’s easy to roll back to an earlier version with a button click.
Versioning also can come in handy when Microsoft updates the underlying PowerApps platform. For example, let’s say you make a bunch of changes to your PowerApp on Friday, and on Saturday, Microsoft upgrades the PowerApps platform. When you edit the PowerApp on Monday, PowerApps automatically upgrades your app to the latest version, which you save and publish.
In addition, if you then encounter an issue introduced by that PowerApps platform upgrade, you can roll your PowerApp back to the last good version of the specific version of PowerApps you know worked.
Import/Export
The ability to import and export PowerApps is an invaluable tool for managing across different environments (and tenants). Export will package up and save your PowerApp (and connections and Flows) into a zip file, which you can then use to create a new PowerApp in a different environment (or update one that is already there).
Manually Editing PowerApps Files (not supported)
Believe it or not, if you’re in a pinch, you can actually edit the files PowerApps gives you when you export a PowerApp.
As far as I know, Microsoft does not support this, and it is a bit tricky to do. But, if you’re adventurous — or if you have no other choice — here’s how you can do it:
- Export your PowerApp. This will save it as a zip file to your local machine.
- Extract the files to a folder. This will extract a manifest.json file and a Microsoft.PowerApps directory.
- In the Microsoft.PowerApps directory, subfolders will be available, where you will eventually find various files. The one you want to focus on is the .msapps file.
- Download 7-Zip. This will allow you to edit a file without removing it from the zip file. This is important, as I haven’t found a way to repackage .msapp files.
- Change the file extension on your .msapp file to .zip.
- Open 7-Zip and then open the newly renamed .zip file.
- Most of the rules, controls, and more that make up your PowerApp are defined in the entities.josn file. Right-click that file, and click edit. This will open the file up in Notepad. You can copy and paste it into an editor of your choice, but you need to make sure you copy back any changes you make into the same Notepad file you opened.
- Save the Notepad file. When you return to 7-zip, it will ask you if you want to update the file in the archive; click OK.
- Rename the .zip file back to a .msapp file.
- Re-zip the whole package (manifest.json and Microsoft.Powerapps directory).
- Import back into PowerApps.
You just edited a PowerApps JSON file – which you shouldn’t really do – unless you need to make bulk wholesale changes throughout a PowerApp. (For example, I wanted to change how a variable was defined, and it was much easier and faster to do a “find and replace” in Notepad rather than changing it in the PowerApps Designer.) This is simply one example of a manual update you can make when PowerApps doesn’t give you the option.
Conclusion
Microsoft PowerApps can be incredibly helpful to any business, whether you’re employing citizen developers or need to quickly spin up a customer-facing application.
But you need to have a PowerApps development strategy before diving into your development tools — and you need a thorough understanding of what each tool can do. Once you do both of these, there’s no limit to what you can create.
This blog was originally published on Jo’s blog here and here.