I've been dabbling with some mock-ups in Power Apps for a project, and I remembered that a friend showed me an Power App she developed. What I immediatly noticed was the slow start and execution time of the app.
I have of course read the tips and best practices from MS for performance, so I know you can of course do somethings about performance.
But I was curious about - what do all of you guys experience?
Are your production apps running smoothly?
And are they handling a complex or a simple business process?
(I know that performance is not equal to the proces complexity, but instead amount of connectors, data and elements loaded etc.)
Hope to hear some thought and experiences 🙂
Hi @Vlad_M_ i try to keep the number of LookUp formulas as low as possible and store everything in variables / collections.
other than that i try to keep my pages dynamic. e.g. if i have the need to enter data / view it and edit it i try to make 1 Page and just edit the displaymodes / save buttons to my need whenever i need to edit save or view data.
Office 365 user lookups also take some time. And also huge datasets are a pain. I try to filter it based on the logging in user. e.g i have specific SPO permissions / guidelines where users can have access and where not. I try to implement this into my Onstart Collection so my collections are complete but don´t have unnecessary data stored 🙂
hope this kinda helps.BR Niklas
Thanks for your input @niklasjegg - it's very much appreciated 🙂
It is definitely interesting to read!
So, after you've implemented these optimizations in your app, how do you view the UX in regards to performance? Are your apps running smoothly after reusing elements with different displaymodes and optimizing the Onstart Collection? Or do the users still experience slow response-time?
I have a slight fear that I'll be needing to use larger datasets, which I fear will slow down the app a lot. I've also read that when using a ComboBox you can only get up to 2000 rows shown - has this been an issue for you, and if so, how have you handled it?
well the 2000 rows delegation limit is always an issue haha :/.
i have improved Performace of my apps with these changes from 20-30 second start time to roughly 5-9 seconds. so i would say these were huge improvements.
Apart from that the 2000 rows is especially hard to tackle with SharePoint lists.
One thing to remember is that the apps need a good network connection because of all of the calls. This is more apparent when running the app on Power Apps Mobile. There are some settings when developing the app that can be used to do things like cache screens and allow on-demand fetches or explicit columns fetches to improve startup speeds.
Something to think about is to make the app offline capable by loading the data into collections, so that you minimize the calls, and use Concurrent() where possible. Using collections can also be used to overcome the delegation limits on rows.
Ultimately, you can also use SaveData/LoadData when on a Mobile device so that the data is stored on the device, combining it with the collection techniques. (Note: This doesn't (yet) work in browsers, but should work on PowerApps for Windows as well as the mobile apps.)
A good article that has some good points of discussion for not just offline usage, but also performance as well: an honest guide to canvas app offline (part 1) – The Joy of Power Apps