Keep it simple, stupid.
AMT have been working with several clients recently building PowerApps to improve their business processes and allow their teams to collaborate better, moving away from Excel spreadsheets that need to be shared and rectified to ensure the final version includes everyone’s updates.
Being very Office 365 centric and having a strong background in SharePoint, we have been using SharePoint as our data source. This has simplified our solution in some ways and presented issues in others.
As our PowerApps have been going through their development cycle, as is always inevitable, screens get more complicated.
For one client, our initial design and implementation was focused on a responsive app that would make the most of a user’s screen space and adapt to working on a mobile device.
The design featured a header, left hand navigation and the main body of each of the pages being split in two, a list of items on the left and a form on the right for editing the selected item. When viewed on a mobile device, the navigation disappeared and was available through a hamburger menu and the screens were spread over two – one for the list and the other for the form.
As the application grew, the single CRUD form for each entity became a tabbed view needing lookups, lists and CRUD forms for related entities and needed to show extra linked data from other lookups in the data lists as well. All these extra components and lookups between lists for a single screen started to slow the application down considerably.
The art of keeping PowerApps simple…
Our overall takeaway from this experience has been to limit the complexity of the screens we are producing. This includes things such as ensuring each screen in the PowerApp is responsible for one thing. Showing a list of items, an edit form, etc… Multiple nested tabs and nested galleries are to be avoided. Finally, instead of doing a lookup on a SharePoint list inside a control within a gallery, it should be included within the initial query that’s done to populate the collection that is bound to the gallery instead.