TribalScale
Published in

TribalScale

The Pros & Cons of Power Apps

Written by: Kelly Pham, Agile Software Engineer, TribalScale

Microsoft Power Apps offers a low-code solution for users to create mobile apps for business operations and allows businesses to transform their manual processes into automated digital processes. Apps created through Power Apps are designed to only be used internally within a company and cannot be published to any app stores. Power Apps is able to connect and interact with applications in the Microsoft suite such as Excel, Sharepoint, and Power BI. Additionally, flows in Power Automate can be created to connect the app to external databases and backend code.

Photo by X on Unsplash

After becoming familiar with Power Apps, I can say it is definitely much different than the other methods of mobile front-end development that I have experience with, namely React Native and SwiftUI. Here’s my personal list of advantages and caveats of Microsoft Power Apps as a method of front-end development.

Advantages:

1. Easy for beginners to follow designs

Power Apps is perfect for beginners because as the phrase “drag and drop” suggests, it’s as simple as dragging and dropping onto the screen. Power Apps offers a variety of built in components such as Dropdowns, Galleries, Forms, and Camera. Users can easily create screens loaded with functionality in a matter of minutes! Also, there are plenty of built-in icons in Power Apps for every situation. Even though you may not have as much creative freedom, PowerApps covers all the functionalities you would need for a business app such as sending and receiving requests, galleries that list everything in a collection, and many components like buttons, camera, and forms.

2. Faster development

Since Power Apps are much easier to use, it offers businesses a way to create front-end experiences faster that require less people to develop. In addition to the ease of designing a page, there are plenty of functions built into Power Apps that facilitate the lives of developers. Many of these functions require only 1 line of code! For example, in order to navigate to another page, all you need is:

Navigate(PageName)

In contrast, to achieve the same thing in React Native, you would need to install the React Navigation dependency, create a Navigation Container around your app’s contents, and then create a Navigation Stack and include all your screens before you can even think about navigating from one page to another. Additionally, in each individual page, you need to add navigation when a certain event occurs.

There are many built in functions like navigation, filtering, and submitting forms that are easy to use and can be quickly leveraged into making a usable business app.

3. Ability to connect to Microsoft Excel, Microsoft Sharepoint, Power BI, Power Automate and many others

Finally, the last point that gives Power Apps an edge is the ability to connect to the Microsoft suite. Microsoft is commonly used among businesses so an advantage of using PowerApps is that companies can easily connect their emails, spreadsheets, and SharePoint lists. Using Power Apps, it is possible to easily edit these directly on the app.

Another built-in functionality that integrates well with Excel and Sharepoint is galleries, which automatically loops through the list of items that you set and displays all of them. With Power Apps, you can easily grab these items from Microsoft Excel and Microsoft Sharepoint which can be useful for businesses who may have lists of employees, products, tasks, etc. Also, the edit and delete buttons are automatically built into the galleries so you can interact with the spreadsheet/sharepoint list through your app!

Disadvantages:

1. Poor reusability

One of the most important concepts taught to beginner programmers is modular coding. Modular coding is a principle that emphasizes splitting the code into smaller, independent functions. The functions are like building blocks, and in your main code, you call all these blocks together and build your final product. Modular programming increases readability in your main code because you can see all the functions getting called which makes it easier to understand what is going on rather than looking at one massive jumble of code.

However, since Power Apps is geared towards those who are not professional programmers, you cannot create functions on Power Apps. If you have a specific block of code that you need to run multiple times, you will just need to copy and paste your code which increases margin of error, decreases readability, and feels illegal to any programmer.

2. Multiple users can not use the app at the same time

This is a major issue for Power Apps, especially as they expect companies to use their platform to create large scale apps in order to digitize their processes. Currently, Microsoft Power Apps does not support more than one user to edit an app at the same time. However if you connect your app to a Github repository, you will be able to have multiple users edit the app. This feature with Github is in beta mode and sometimes it only allows one user on the app at a time. The workaround to this is that the person using the app will have to close their app and then usually everyone will be able to work on it again.

Additionally, Power Apps isn’t very well built for multiple users. There is no sort of branching, meaning that everyone is adding their changes to the main branch of the app. This causes many issues as developers use Power Apps because sometimes your work may cause errors and affect the work of others. Some common situations where you must save your work are when you leave your computer because your session will time out, quitting the app because it is not allowing anyone else to edit (as mentioned above), and having to save and publish the app in order to test your changes on a mobile device.

3. Difficult debugging

When I code in other languages such as JavaScript, my favorite mode of debugging is using some sort of print statement. This helps me better understand what my inputs and outputs are at certain times in my code. This helps me pinpoint the exact location of error and focus on what exactly is causing the error. In Power Apps, there is no console logging but instead a Monitor that shows every command your app runs and whether it was a success or not. The Monitor shows status, response, operation and more. However for me, I feel that I can’t print out exactly what I want like how I can in JavaScript.

Another issue I had in Power Apps is that I was only looking at the general error message. For example, if you had an If Statement where one of your parameters was invalid, the entire If Statement would be underlined in red and would give a general error message about how one of the parameters was invalid. It took me a while to learn that if I hovered my mouse over each individual parameter, a more specific error would show up for the parameter that is causing the error. I think that this design isn’t the most intuitive because users do not know to hover over each parameter after seeing the single red underline.

If you want to learn more about our experience with the different methods of mobile front-end development, click here to chat with an expert on our team.

Kelly is an Agile Software Engineer at TribalScale. She is passionate about exploring the different areas of software development and more recently she has been involved in Power Apps projects. Outside of work, she enjoys playing volleyball, baking, and catching up on sleep.

TribalScale is a global innovation firm that helps enterprises adapt and thrive in the digital era. We transform teams and processes, build best-in-class digital products, and create disruptive startups. Learn more about us on our website. Connect with us on Twitter, LinkedIn & Facebook!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store