Chirag S

Why I Dropped a PowerApps Project!

Published on January 24th , 2022
  • PowerApps
  • HTML
  • CSS
  • JS
  • jQuery
  • VueJS
Why I Dropped a PowerApps Project!

Hello Friends,

Welcome back! Today we’re going to discuss why I dropped a PowerApps project.

Why this topic is important to discuss you ask? Well, It is because I wasn’t very successful with it and had to learn many things which are not going to be very useful to me as a Full Stack Developer.

So instead of putting it all in one line, let me share my experience with you, and then you can be the judge of my opinion (No one cares! 😜).

Little Background Story First

So a few months ago I got this cool project to work on. Of course, I only accepted it because it required a front-end developer and they needed someone good at writing JavaScript. I’m not an expert but the opportunity was fascinating.

I started right away. Initially, I started working on the front end only (HTML, CSS, and js stuff). Everything was going well as I was working on my localhost to create those pages. But then came the integration part.

As far as I know, there are three types of apps in PowerApps. Canvas, Model-driven, and Portals. We worked on Model-driven Portals as the client had custom designs and requirements to be implemented.

I had to learn many things because I’m a custom solution developer and I’ve never relied on any CMS systems. No matter how fancy they sell it but it still is a CMS with some advanced features that only a developer can understand. But I quickly adapted to it and got started easily.

PowerApps is a great tool but it doesn’t fit all requirements. It has a lot of limitations and some advantages as well. It has a purpose and if you don’t understand it first hand and try to fit it into your requirements, you’ll likely try to switch back to custom solution development.

Advantages

Before I go all Darth Vader (。▼皿▼) on PowerApps, Let me mention some positive points I felt while working on it. I think the team that is actively working on PowerApps has some serious genius developers because developing a tool for a developer can be a bit frustrating. This is true because developers demand different features that clients and they are on the whole another level. Of course, it depends on the complexity but you get the point!

The main thing that I felt was the ease of development for small features. The project that I was working on had some simple features that didn’t require that much time to implement and we implemented those features pretty simply with PowerApps.

It makes the development of small to medium size projects easier even when the large team is working on it because the developer doesn’t need to be excessively experienced to work on it. It’s kind of like working on Elementor in WordPress. This makes finding a good resource easier and cheaper. For example, the developer doesn’t need to know the coding stuff to build a simple page using PowerApps.

With a custom solution, there is one thing that every project owner worries about is the quality of Code (it can be solved with a well-experienced developer). I’ve seen this so many times in my career (I’ve done that a few times too 😜). Even though it’s easy to fix if you identify the inconsistency at the beginning, it can become a real-time waster if it’s too late. PowerApps solves this problem because there are no code quality concerns as it is intended to be a no-code platform.

The most important advantage with PowerApps is code security. With a custom solution, it’s risky to let a developer have the full source code especially when you have newbies in your team. Usually, it’s safe with experienced developers. Why? Story for another post 😁. And you guessed it! PowerApps solves this problem. Everything is secured with your own Microsoft account and no one can have the full project locally.

Those are the advantages that I felt while working on it and now let’s get to the good stuff! 😈.

Disadvantages

The first thing I noticed while working on it is that it’s slow as hell! This could be related to me being under-skilled for the platform but I’m certainly not going to dig deep for this simple thing! Now, Pointing figures without a reason is not a good thing so let’s see why it’s slow. PowerApps is a very secure platform and if you’re a developer like me, You’d understand it when I try to explain it in the next line. PowerApps validates the logged-in user through literally every action. If you’re trying to save a page? It will validate your login creds. If you’re trying to access a page, It will validate your login creds. Even when you try to set up a custom page and need to access the data from the database, It will require you to add permission to the users who can access that page and the data that page is showing. That’s just deep! All these validations make this platform a bit slower.

Here comes another one. While I was working on this project, The requirements started becoming a bit more complex, and little did I know about it, there were more complex requests to come. I’ve always had problems implementing complex features. For example, Inserting parent-child records in multiple tables was nearly impossible for me but I had to add some extra JavaScript to work around it. This is something I never had to do in custom solutions and to be honest, it didn’t feel like a standard solution to me.

Creating and updating custom code on PowerApps slows down the development process drastically. I get it that the platform is built specifically as a NO CODE platform but this was something that irritated me too much. I mean, I was having memory loss issues due to the stress.

When you have some custom complex problem to solve, usually you can do that by adding some custom scripts to it. But it’s an iterative process meaning that you’ll have to write code, upload it on the portal and check if it works. If there are any errors, You’ll have to upload it, sync, and test it again. This iteration is very stressful and not as fast as you working on your local machine and simply refreshing the page (this can even be automated these days) after making changes in the code.

Conclusion

In almost all cases, we were able to implement all functionalities. But when the requirement got a bit complex, it made us decline it to the client because we couldn’t find anything related to it. For example, there was a requirement where we had to refresh the data on screen whenever something changed in the database, Normally I would easily achieve this using sockets but we never found a similar functionality in PowerApps. We also never found a solution to upload a file in custom code (from portals) on PowerApps as well.

No matter how my experience with PowerApps was, It still is a great platform and Microsoft has done wonders with it but as a developer, the idea of moving from a Full-Stack Developer to a PowerApps developer felt a bit wrong. In short, ain’t gonna give up the coding!!!

So who should use PowerApps?

If you are a good coder who is proficient in developing custom platforms, I strongly suggest you not go for PowerApps because the performance of the custom-developed apps is unbeatable and PowerApps is nowhere near that. Also, you will find developing complex features in custom projects far more satisfying and faster than on PowerApps.

If your requirements are based on simple CRUD and you don’t need to integrate complex custom code for custom UI and you’re ok with building UI using PowerApps’s built-in elements, PowerApps is great! Just go for it!