PowerApps Design Consideration
Tags: lowcode, powerapps, powerplatform
Published: 2023-01-06 13:13:24

## **Intro**:
**_PowersApps_** platform empowers citizen developers to build system capabilities for which the solution is not yet made available or doesn't exists. Its critical to make right choice while designing the Powerapps as the likelyhood of the app to be active would be high as you have provided a solution to a problem and the focus would be shifted to other priorities. The idea of this blog is to factor considerations why building PowerApps 

##  Design Thinking  / Considerations
PowerApps is no different to traditional / Pro-code App development. System architecture should factor the below

- **Data**: Where does the data resides and how its collected / managed. 

| Feature   | Canvas App | Model-driven App  | Dataverse for Teams |
|-----------|------------|-------------------|---------------------|
| Relational data structure |  Yes*  (If connected to a relational database) | Yes | Yes |
|Data Storage capacity | Depends on data source connected in App | Dataverse only. Unlimited storage with costs |Dataverse 2GB max per Team environment.Can be upgraded to full Dataverse|


- **UX** User experience - encompasses all aspects of the end-user's interaction with the PowerApp.

| Feature   | Canvas App | Model-driven App  | Dataverse for Teams |
|-----------|------------|-------------------|---------------------|
|Responsive Design | Yes* (Requires work. Use responsive container controls)| Yes | Yes* (Requires work. Use responsive container controls)|
|Mobile Native | Yes | Yes | only on TEAMS | 
|Offline Functionality | Yes* (Very Limited storage capacity) | Yes | Yes* (Very Limited storage capacity)|
|External Access (authenticated) | Yes (Guests need license) | Yes (Guests need license) | Yes (Guest users for Teams. No license needed) |
| Creating "Pixel Perfect" App (Full UI control) | Yes | No* (Custom Pages) | Yes (fluent controls + Teams theme) |
|App in Power BI context | Yes | No | No |

- **Abstraction Layer** - encompasses how the data is wrangled  and the business logic on the data. 

| Feature   | Canvas App | Model-driven App  | Dataverse for Teams |
|-----------|------------|-------------------|---------------------|
|Licensing Costs | Low – Depends on connectors used. Premium connectors will require App to be premium licensed for all users of App| Medium – Premium license needed + Storage capacity |Low – Dataverse for Teams is a standard feature.Premium connectors (if used) will require App to be premium licensed for all users of App|
|Customization of SharePoint List Forms| Yes | No | No |
|ALM | Yes| Yes |No* |
|Delegation (working with large data)| Yes*(Responsibility of App Maker)| Yes| (Single environment)Yes*|
|Teamplate | Yes* (community)| Yes| (Responsibility of App Maker) Yes |
|Security + Sharing| Security must be defined at data source level + App shared with users.| Access to App & Security is via Security Roles in Dataverse| (Consume decent amount of capacity). App is available for Teams members, owners, guest users & colleagues| 


**Conclusion**
_**Design is not just what it looks like and feels like. Design is how it works**_ - Steve Jobs  


Further Read

- https://dev.to/wyattdave/getting-your-power-app-ui-right-5ef4
- https://www.linkedin.com/pulse/powerapps-framework-selection-balagopal-madhusoodhanan/

Microsoft documentations
https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/

https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/