Microsoft Power Apps, which is part of the Power Platform stack, was launched to allow organizations to create custom apps quickly and easily, regardless of coding knowledge. Power Apps allows users to drag and drop components to create apps. Not only does this remove the need for manual code and programming knowledge, but it also makes app development much faster and more convenient.
There are two main types of apps that Power users can build - canvas and model-driven - and today, we’ll be explaining the differences between the two, benefits and more.
What is a canvas app?
A canvas app is commonly seen in tablet or mobile apps when embedded in a Power BI dashboard. It’s exactly how it sounds - you get a blank canvas. From that, you can drag, drop, move, resize, and reformat the components where you need them to build your user interface.
Once you’re happy with your design, you can integrate it with one or more data sources using Excel-style formulas.
Benefits of a canvas app
- Ease of use - there’s no data-driven approach involved (we’ll get onto this in our next section) so the user experience is usually more intuitive.
- Low level of coding skill required - if you’re comfortable with Microsoft Excel and PowerPoint, you’ll be able to build canvas apps.
- Ability to be creative - no two apps will ever be exactly the same with a canvas app so you can be creative and individual with your designs.
- Ideal for task-based or role-based solutions - particularly if the users won’t require full use of the Microsoft tech stack.
Drawbacks of a canvas app
- Design effort - the flexibility to create the interface you want comes at the cost of design effort. Everything has to be designed and placed on the canvas, although new theming features are coming soon to help with this
- Responsive design – although responsive designs are now much easier to create and test than they used to be, implementing a responsive interface is still a considerable effort
What is a model-driven app?
A model-driven app allows you to quickly add components (e.g. dashboards, charts, forms etc) to your apps. However, it takes on a more data-driven approach than the canvas app, which is where its alternative name is derived from (data-driven app).
What this means is most of the user interface components will be based on data that you choose. This data will be stored in Dataverse, the cloud-based storage space where you can store your business data.
Benefits of model-driven apps
- Ideal for apps that require complex business logic - this is because model-driven apps focus on data. An example of such an app is an end-to-end solution that involves users from different teams and multiple processes.
- Responsive by design - unlike canvas apps, model-driven apps will render themselves to match the device of your choice.
Drawbacks of model-driven apps
- Rigid in design - because your UI components are based on data, the design process is typically more rigid in a model-driven app. However, there is still some room for customization.
Canvas app vs model-driven app: Which is better?
To be honest, one isn’t really better than the other. Yes, a canvas app might be better suited to task or role-based solutions and a model-driven app might be more ideal for end-to-end solutions. But who’s to say you won’t need both types of solutions?
In other words, you should be looking to see where canvas apps and model-driven apps can complement different business processes.
Is it easy to flip between the two types of apps?
When you create your data structure, your entity creation will likely be in Dataverse and you can reuse that and any connections you work on in either of the apps. In a model-driven app, once you’ve created and/or are adding new tables, designing a model-driven app interface from that is fairly quick and easy. It’s what it’s made for.
But in the canvas app, you need to put in more design effort. Soon, co-pilot, Microsoft’s end-user AI technology, will start to ease the design effort for canvas apps too, until then, it’s not as easy to convert into a model-driven app.
My top tip? If you’re doing something that needs rows and columns of data, or builds on data entered by other processes, you can start with model-driven. If you want to embed the application somewhere or you want something on your phone/tablet as you’re on-the-go, or for users that don’t commonly use enterprise applications, then a canvas app is a better fit.