1. 40. Adding other media assets to screens
Hello. And in this section, we’ll wrap up our coverage of Canvas Powernap’s with the exception of one section that’s still to come, which is all about working offline and collections. So firstly, I want to have a look at adding assets. So what are assets? Well, we have assets already. We have added a picture. We added a picture in the background of the add picture control. We used an image control to contain it. But I can upload other things as well. I can add audio and video files. So it’s the same thing. So if I just create a new screen for this, I can upload, and if I go to my media folder, here we have an audio file. So if I just double-click on this, it imports, and then I can add it in just by clicking on it. So that inserts an audio control. Now, similarly, I can do the same with a video control. So to be exact, here I’ve got a very short video. Both of these, by the way, are attached to this particular video if you wish to use them. And so I can just click on that, and there it is.
Take a look at some of the properties we have. We’ve got show controls on and off. We can select Auto Start, and we can also loop so that it goes back to the beginning when you end it. So you can see where it goes; it just loops. So I’m just going to deselect those. You can also change the start time and the display mode as well. So you’ve got similar things for the audio control as well. And you’ve also got a media property as well. So you can select a different media file or you can add new media files, and maybe you could have a button that changes the media file because you can just say it is equal to this variable and the button can set that variable. Now, for some reason, I’m having problems playing this wave file. So I’m going to add a media file and convert it to an MP3 file. So if I now play this, I can hear that the audio file works just fine. So in this video, what we’ve done is take a look at the media assets that we can set. We can insert images, video, and audio. We can add a canvas to the canvas by clicking on the dot dot dot. And if we want to delete them, we can do so. Additionally, when they’re in the canvas, you can also change the media and whether you’re showing controls, the auto-start loop, and the start time.
2. 36. Other controls
In this video, we’re going to quickly look at all of the different controls that you can use in your own PowerApps. So first of all, let’s start with text. We have labels, so this is a literal string of text like we have used previously. So it could be a literal string or it could be a formula that evaluates to a string of text. So, for instance, you might want to know what the user’s name is. It could be “user,” “user,” “open bracket,” “clause bracket,” “full name,” “email,” and that sort of thing.
Text input—we’ve used that a lot. The box for entering text numbers and other data HTML text so that it not only shows plain text and numbers but also converts HTML tags such as nonbreaking spaces, for instance, in the rich text editor. So this is a WYSIWYG editing area for formatting text. In Wiziwig, what you see is what you get, and it allows for numbered or bulleted lists and then pen input. You can draw on, erase, and highlight areas of an image. So you can use this like a whiteboard, drawing diagrams and writing words that can be converted into typed text. Looking at input, we’ve had a look at the button frequently used to submit data to a data source. We’ve just taken a look at text input and pen input. It’s in two different places. The drop-down menu occupies only one line of space unless the user clicks on it to reveal more options. Drop down. However, you’ve only got a maximum of 500 items. There’s a combo box so that you can search for items to select, and you can select multiple items. The search is performed on the server, so performance is not affected by very large data sources.
So in other words, it’s not on your computer trying to go through all of the various items. We just ask the server, “Can you filter this down for a particular item?” We’ve got the date picker, so that lets users pick a date from the calendar. a list box, which displays available options and allows users to select more than one item at a time. a check box so you can select or clear it, so it’s either true or false. a radio control, so that’s used for a few mutually exclusive options. So do you want this? Or this? Or this? Or this? A toggle works similarly to a checkbox. A slider can indicate a value between the minimum and the maximum that you specify. So you can drag the handle of the slider left, right, or up and down, depending on which direction you choose. We have a rating system, so you can indicate how much you like something by choosing a certain number of stars and a timer. So that is a controller that can determine how much time is going to pass. So after that time has passed, you can use the property on the timer’s end to do something. And we’ve also got things like address input. So this allows for geospatial input. Just a couple of notes: it’s powered by TomTom, and the data is processed in the United States, just in case that’s of any concern for privacy concerns. And there is a setting called Geospatial Features. It requires that be on for the environment for this to be used. So we’ve had a look at the gallery.
A gallery is a list of items. A data table is a table of data that is read-only. So if I show you this one in some detail, click the data table and go to the accounts. So here, you can see it. So there’s always a single row selected. Now if I play, you can adjust the column widths, but those aren’t saved, and you can style it as well if you wish. We’ve already looked at the forms, edit, and details screens. These show one record. We’ve got media. So, Image shows a picture camera that allows the user to take photographs by using the camera on their device. A barcode scanner opens a native scanner in the Android or iOS device, and it can detect a barcode or a QR code, which is a quick response code. We’ve had a look at the video. So this plays a video clip from a fi
le or from YouTube or from a zero media Services: you can use closed-captions audio that plays a sound clip from a file recording from a microphone or an audio track from a video file. You’ve got a microphone, so you can record sound from your microphone. on Android and iOS devices. You’ve got to add a picture. We’ve already had a look at that when we were looking at creating the receipts. And again, we’ve got Map, which again requires geospatial features for the environment to be enabled. Charts: we’ve got very few charts here. We’ve got column charts, line charts, and pie charts only. In addition, you can add PowerBI tiles to your visualization, which gives you access to a huge number of other visualisation types. And then we’ve got lots of icons, which we’ve looked at previously, like custom, that allow you to insert things like components, and we’ll have a look at the AI builder in a separate section.
So you can see that you’ve got quite a lot of controls, but while they are specialized, you can imagine that the environment that you are working in as the app designer will be very similar. So you just insert something, and you can see all of the different things that you can set. You can click on any of these to get to a function editor or if you want, for instance, colors. You can also get access to all of these different colours here. So we’ve got various text controls and input controls. We’ve had a look at the gallery, and you’ve got the data table. As you can see here, we’ve had a look at forms; you’ve got various media, a fair, some of which we have seen in this course already. You’ve got access to just three types of charts, and you’ve got icons and components. So this is a roundup of all of the different components that are available to you when you’re creating your own PowerApps.
3. 37. Other formulas
In this video, I’m going to talk briefly about this line. Use formulas. So this is the PL 100 requirement. Now use formulas within the Canvas apps. It’s such a fraudulent line. And you might wonder, okay, how many formulas do you need? And the good news is that we’ve covered most of the formulas that you need for the PL 100. Now, I can’t talk about any experiences I had with the PL 100 exam; I’m not allowed to. But looking at the practise test, we have covered the vast majority of the formulas that you need. We’ll be looking in the next section at collections, and there are some formulas with that. But when I was starting to prep for this course, I was looking at the number of formulas that there actually are for canvas apps. And as you can see, it’s a massive number. The good news is that you don’t need to know that many functions.
And we’ve covered things like navigating forward and back and setting and updating contacts. Those are some of the main ones you need to know. Now, I just want to briefly talk about some of the other formulas just briefly. Count and counta, count if, and count rows are all available. Well, if you know Excel, you’ll know basically what this is about. So, numbers, count them. Count A; that counts nonblank, so that counts numbers as well as words. For instance, count the number of records that are true for particular binary tests, whether they are true or false. And counting rows counts the number of records in a table. We’ve taken a look at things like the filter function. We’ve had a look at search, and these functions that we’ve already had a look at form the majority, if not all, of the functions that you need for the PL 100 exam.
Now, I would basically be able to divide all of these formulas over 100 formulas. I believe there are several categories: action, which includes things like navigation and going back. We’ve also got functions that can be used to update data, like update and remove. We’ve got form functions such as editform, new form, reset form, and submit form. And then we’ve got things like this item, which returns the current record for a gallery or a form control. We have logical tests such as if. So we’ve got a type if the error is blank, meaning the integer is empty. We’ve got math functions largely from Excel, like round and sqrt for square root. We’ve got text functions like concatenate. There’s also concatenation. Concatenate accepts individual text strings. Concat takes records from a table and then concatenates them into a single string. We’ve got functions like left, mid, and right for getting parts of strings, as well as len.
And basically, if you’re using Excel, you’ll know a lot of these. There are also trigonometric functions like cosine and acosine and that sort of thing as well. And then we’ve got variable functions such as set and update context. And of course I will put “navigating” there as well because you can update context variables using the navigate parameter or argument as well. Now, I could spend several hours showing you what each of these functions are, but I’ll probably overwhelm you. So in this course, what I’ve been trying to do is concentrate on the requirements of the PL 100 exam, and the requirements have largely to do with navigating. So we’re building canvas apps using variables. So we’re setting where to update context and collections, which we were looking at in the next section. So while there are a huge number of other functions, these are the ones that are really concentrated on in the PO 100 exam. There’s just one more function I want to talk about, and that is patching.
So this can be quite a complicated function. You can see some examples here. And what this does is modify records in complex situations. So you might come across the patch function. So it’s just an update. So modify or create records in a data source. So if you want to know more about functions, then why not have a look in the PowerApps Reference, where you can see all of the different formulas and also filter by title? So if you wanted to look at the left function, you could just click on it. Or you could search for left throughout all of the Power Apps documentation for more details about what you can do in Power Apps. Now, in case you’re wondering why the PL100 exam doesn’t go beyond screens, collections, and verbals, well, let’s just remind ourselves what the PL100 is all about. The app maker is self-directed and solution-focused. They may not have formal IT training, but they understand the operational need and have a vision of the desired outcome. So the operational need for canvas apps is to create screens and carry information over for later use. So that is why these formulas for the PO 100 concentrate on that.
4. 39. Design choices and app performance, and App Checker results
In this video, we’re going to take a look at how we can interpret the app checker results and describe the implications of design choices on our performance. And you can see how the two are connected when I click on the app checker, which is up here with this stethoscope. So we’ve seen problems in the past. We’ve seen why I have incomplete formulas or why there’s an error that we’ve added an x next to the relevant control. And we had a dot here. So the red dot on the app checker shows formula errors. But that’s not all that the app checker does. First of all, there are three different types of warning signs. There are errors, so that’s the red X. There are warnings that it’s a yellow exclamation-point triangle, and there are suggestions that it’s a blue-letter I, lowercase-letter I circle. Now, you should note that the app checker is for canvas apps only. When we have a look at model-driven apps, we’ll be looking at a solution checker. We’ll check them out there.
So let’s take a look at what we’ve got in the app checker. First of all, we’ve got formulas. We’ve seen a few times where there were problems with formulas. We’ve got accessibility. We’ll be looking at accessibility a fair bit later. So it’s just trying to make your app usable for people with certain requirements. And then we’ve got performance. So you can see inefficient delay loading and unused media files, which means it has to load the media file before the app can be used. So what are the implications of design choices on app performance? Well, maybe you’ve got a really big app. Well, if you’ve got big apps, especially if you’ve got big images, that can cause problems with performance and load times. So can you break that down into smaller apps? And, if you’re loading graphics, videos, or video, can they be optimised for the size of the screen? You don’t need something in 1920 by 1080 resolution when it’ll be half the size on a phone screen, for example. Now, one of the big problems could be network bandwidth and latency issues. So that can be a big bottleneck. Retrieving the data It’s all due to network traffic, so don’t refresh the data when you don’t need to. For instance, we’ve been using the gallery control.
The gallery control automatically refreshes. You don’t need to. You should store data in the fastest place possible. So we’ll be looking at the next section about collections. So maybe you can collect a lot of data at the beginning of an app and then just refer to the collection rather than having to go through the network to continually get the same information. Maybe you’re loading too much data or loading unnecessary properties. Could you load a screen’s data only when needed? So we can see if we go into settings and go down to the experimental features. So over here, upcoming features, as you can see, have been delayed. Lord, speed up your app’s start time by setting on-demand screen expression calls. Keep in mind that the beta or experimental previews are alpha, which means they may chain, break, or disappear features. They could be ones that go away at any point, but could they be used to improve your performance? You should also test your application in a variety of different places.
For instance, maybe you’re over WiFi, or maybe you’re using mobile phone data. Now, are there too many controls and screens? For example, could you use a gallery instead of using lots of different data cards? For instance, can you have a menu in the gallery instead of all of these different buttons? So imagine each of these buttons being an item in Atable, and you can click on them in a gallery. Maybe that can be done to improve responsiveness. Now, looking at the app itself, we have an onscreen prompt that must run once before the app can open. Now this means that it’s got to start and finish before you can use the app. So anything that happens at the beginning is blocking. Now, looking at a particular screen, you have it visible. This runs every time the screen is open, so it could run lots of times, but it runs in the background and doesn’t actually block you from using anything on the visible screen. And, of course, it will only happen when you go to that screen. So if you can delay something until you get to a screen and then load information, for instance, then that might have better performance. Now there’s something called delegation, and if I go back into the settings, you can see that we’ve got a data row limit set. How many rows are retrieved from server-based connections where delegation is not supported? What is this about? Well, suppose I wanted a table where there might be a huge table and there might be tens of thousands of rows. So we let the server get those tens of thousands of rows and manipulate data on them. But there are some functions that can’t be delegated.
Some functions that you do on your PC, on your iOS device, and on your Android device instead of going up and down to the server And when that happens, you don’t retrieve the entirety of the table. Instead, you just retrieve, in this case, 500 rows. You can adjust this all the way up to 2000 rows, but it will increase the amount of time it takes for data to be processed because you’re getting more data, so you can delegate functions to the source. So we’re discussing data sources: SharePoint and SQL Server. These are very specific tabular data sources, so things that can be delegated include sorting, so sorting or sorting by columns can be delegated. filter, search-lookup; these filterings can also be delegated. However, too many of them can be time-consuming. We have aggregation, sum, average, minmax, as well as drop columns, rename columns, and short columns as columns. Those can also be delegated at the server, and they can improve performance. Now, if you use a non-delegatable function, you will know because you will see a yellow triangle saying that this function can’t be delegated. So we’re looking at string manipulation functions, left, mid, and right. We’re looking at signals like, for instance, the compass function or the location function. They can’t be delegated to the server because only your device knows where it is.
We’re looking at volatile functions like Rand to get a random number. We’re looking at collections. But the good thing about collections, as you will see in the next section, is that they can actually improve performance and also allow you to do things offline. And finally, you can take a look at the existing performance if you’re using the data first. So if I click on the gear here in MakePowerApps.com and go to the Admin Center, which is AdminPowerPlatform Microsoft.com, then we can go to analytics and we can go to database, and within database we can have a look at the entity usage. So in other words, what tables are being used when? So here you can see I’m using my expense table a lot. I’m using the account table a lot. We can change the filters so we can say, “Well, I don’t want it to just be for the last day, but I want it to be for the last week or the last month for things like that.” Now we can also get analytics for your Power apps as well. So, once again, in the Power platform, Admin Center, and adminPower platform Microsoft.com, you can get some detailed statistics, so you can get information about overall app usage as well as information about location errors made by end users, which can help diagnose problem areas. But you can see we haven’t had any problems with this particular Power app.
So in this video, we’ve had to look at some of the implications of design choices on your app’s performance. Are you building a too-big app? Could they be divided into smaller apps? What about network bandwidth and any latency issues? Are there too many controls and screens? Could you use galleries instead of data cards? What’s the difference between the app on Start and a screen on Visible? Incidentally, if you’re wondering what options I’ve got for the app, I can run the onStart for the app whenever I want. And we’ve also had a look at settings, where there may be some preview or experimental features that can speed up your app. And you can also say how many rows can be retrieved from the server-based connection. Where delegation? We’re going back to the server and saying, “Please do the photoing; you’re quicker.” But that’s not possible. And we’ve also had a look at the app checker, and we can see that. It gives us information on canvas, app formulas, accessibility, and performance. It gives us red circles for errors, yellow triangles for warnings, and blue circles for suggestions.
5. 31. Create and publish new versions, and restore a previous version of an app
Well, congratulations! You have edited the app. You’ve got it down to exactly what you want to do. So what do you do now? Well, first of all, you need to save it. So file Save or Save as if you want to change the name. So I’m going to click save on this. So it’s now saved, but then we can publish it. But hang on, what’s the difference between saving and publishing?
Well, saving it makes it available for everybody who’s got edit permissions, but it doesn’t publish the app for others with whom the app has been shared. So what do I mean? Let’s go back into MakePowerApps.com and go into the app. This is the accounts app, and I click on the dot, and I go down to details and across to versions. So you can see that we’ve now got five different versions. But notice that version number four is the one that is live. So the one that I saved just a few seconds ago isn’t alive. So anyone that I have shared this with previously is currently using version number four. So if I want version number five to be the current version, then I either need to publish it here in the Power app or I need to click on the link next to the relevant version and publish the version. As you can see, this makes version 5 available to anyone with permission to use it. So let’s publish this version. And now you can see that version five is live. Now, what if I’m going—oh, my goodness, I’ve just found a major problem. I want to go back to my version four. Well, that is possible. You can go back to a previous version as long as it is less than six months old. So I’ll click on dot, dot, dot, and I can click on Restore. So this will be saved as version six. So what’s happening? So we had Version 4, and we’ve just published Version 5.
I want to go back to version four. However, I don’t want version five to be deleted. Instead, version four gets copied and is now version six. So clicking “Restore” can’t do that. At the moment, the app is locked. So I’m just going to close all of these other tabs. So let’s try this again. Restore. So now, what was version four? What is still Version four is now version six. So you can’t actually play a previous version. You can only restore it as a new version. Now, at the moment, it is restored but not published; version five is still live. If I want it to be live, then I need to go to Dot and publish the version. So it’s important to know that taking a previous version, like version five, which I’m going to restore and which is now going to become version seven, doesn’t delete or override a previous version, and it doesn’t automatically get published. So in this video, we’ve looked at how we can create new versions of an app. You can restore previous versions of an app by going to makepowerapps.com, going to apps, clicking on the next of the app, going down to details, going to the versions, finding the version you want, restoring and clicking restore, and they will be restored as a new version number. And then you will need to publish it. And you can do that by clicking on the dots (dot, dot, dot) and going to publish. Or you can do that after saving it in the Power apps; you’ve gone to File Save, and it’s saved. You can then click on “Publish,” and it will only be published for people with whom you have previously shared it.