Collaboration in PowerApps

Previously I have written in blogs about how to collaborate on Microsoft Forms, and also in Microsoft Power Automate. In this blog we will look at how we can collaborate within Microsoft PowerApps, as at the moment this also lacks the ability to work together in the way that we would in other products.

In the blog post which I created for Collaboration in Power Automate, I spoke about what I generally call the "My Turn, Your Turn" method which means that we simply take it in turns going in and out of the app to do what we need to do.

We could work in a more efficient way by utilising the Component framework to create individual components and then combine them into a single app.

Collaborating through Components

This works in a similar way to the collaboration method which we looked at for Power Automate. One developer would be responsible for the primary app and would pull each of the individual components into the final deliverable, and the other developers each create components.

Components, at the time of writing, are still experimental, so first of all we need to turn them on.

Enabling Components

In order to use components, we first of all need to enable them through our app settings. I really hope they go Generally Available at some point in the near future as I can't emphasise just how useful these are for being able to easily reuse controls.

To get to the app settings, we first of all need to open the File menu within the PowerApps Studio, which will automatically open the Settings for the app.

Once I have the settings open I need to select Advanced Settings and then scroll down until I find experimental features. Listed under the experimental features are Components, so simply toggle them to on.
Then when you click back to the Studio, you will notice that in the Tree View you will see a Components tab next to the Screens.

Now that Components are enabled, we need to create a new component to hold our controls.

Creating the Component

To create a new component, select the Components tab in the Tree view and then select + New component. When this has been clicked you will see the component canvas, which looks and feels exactly like a normal canvas app.

The main difference that you will find with Components is that the Data table and Forms controls are disabled. This is because a data source cannot be used directly with controls in a Component, instead we have to pass data in using custom properties.
So for example, if I create a date component to display a date in a nice way then I can add my components onto the canvas, and add a property in the right hand blade to request a date to be passed in.
It doesn't matter what the component is, what I am creating is a standalone component for a canvas app which could be used time and again, with the key data being passed in using properties.

Once the component has been created, we need to be able to be able to export it to share with our other developers.

Exporting Components

Exporting a component will generate a .MSAPP file which we can then pass to someone else. To export the component, we need to return back to the Screens view so that we can see the  "Custom" menu group.
On this menu is the ability to export components, however the key thing to remember with this is that it will export ALL components which exist within the app, so if you intend to just create a number of individual components then you will need to do it in separate apps.

The .MSAPP file which is generated though is what we need to give to someone else to then import into their app.

If the primary developer has access to this app, then we can skip the part where we download the .MSAPP file as the import process will be able to take it directly from here.

Importing Components

The developer who is working on the main version of the app can then take the .MSAPP file and pull that into their app. Again, as long as the main developer has enabled components, then they will be able to go to the custom menu and select import.

When we go to import we have the choice of two options. We can either upload the .MSAPP file, or if we have edit access to the component and have created it within the same environment, we can import the components directly from the app.
Once the import is complete, the Component will then be available within your app to use.

So using this technique, we can have individual developers creating components which all add together to create the main app.

Finally...

Office 365 is all about how we collaborate on our workloads, unfortunately the ability for us to do this easily within the Power Platform isn't quite there yet. However, we can do it. We can either do it in the traditional way, where we take it in turns being in the app, or we use the experimental Components to help us carve up the functionality.

Components are still experimental, but they are becoming a key way of being able to create reusable components to be used across multiple apps. But they can also be used to break out functions as long as they can be developed in a standalone way.

These components should be relatively simple and rely on properties being passed into them, which means that when they get given to someone else then they just need to pass in the relative data.

Components, once created can be downloaded as a .MSAPP and then imported into the main app, or alternatively if the importer has edit access to the app where the component was created, then the components can be imported directly.

This technique, just like it did with Power Automate, can help us to get multiple developers working together on the functionality, albeit it not all directly in the same app.

As always I hope this blog was useful, and I welcome your feedback.

Comments