BYOA - Build Your Own App

Using Microsoft PowerApps to easily build desktop, tablet and mobile apps

Microsoft PowerApps allows people to connect easily to pre-existing data sources provided by Microsoft such as Outlook, Office 365, Twitter and Google, and design their own apps to exploit that data, solve problems or create better business insight without a huge price tag.

Waterstons’ London team decided to use their development experience to take PowerApps to the next level by creating a custom connection to a data source that is not already provided by Microsoft. Naturally, our tube travelling Londoners took to building a transport related PowerApp using data from Transport for London (TfL).

This PowerApp would allow people to check the status of the tube lines when they were in the office, or out and about from their mobiles, so they could make an informed decision whether to spend a bit longer in the office or find an alternative route home! We decided to use Azure functions to build our custom connection. Our Azure functions would sit between our PowerApp and the TfL Transport API, translating the data in-between. Azure functions are perfect as they let you build APIs extremely quickly without the need to worry about environments, or software; you just code and go!

We built three Azure functions to bring everything together

  1. UpdateStatus – this checked the status of tube lines from the data in TfL and reported back the results
  2. CheckStatus – Every 10 minutes this function initiated a request to UpdateStatus and processed the results
  3. GetStatus – this is the function our PowerApp would use directly to get the tube line results

All these functions totalled a mere 200 lines of code; an incredibly small application for its functionality.

By far the easiest thing to do was the PowerApp. We dragged the list view component to the screen; told it to use our API as the data source; and up popped all of our tube lines with the line status. We did some more ‘fancy’ things like set the background to a light red for a particular tube line if it was down and had a little coloured bar on the left of the row showing the colour of the line. All of this was accomplished using easy Excel-like functions; if(this.LineStatus = 10, “Red”, “White”), LineStatus 10 being service disruption.

Our Tube App

PowerApps was created to enable power users to quickly create small apps that consume and display data. In our example we took data from TfL and displayed it, but what if the data was from a business application? This might be a sales application where a user creates PowerApps to get specific sales data relevant to their team or a marketing app that lets users pull in data from a marketing system and mix it up with data from Twitter.

Once you expose data from your business systems to PowerApps you empower your users to get inventive with business information, allowing them to quickly build applications that let them work smarter, faster and more creatively. You could also mix all of this together with Microsoft Flow, a companion platform to PowerApps from Microsoft; the API is easily transitioned to that platform. Together these applications allow users to come up with some potentially transformational apps.

Overall it took us just a day of designing our app, coding it and then building our PowerApp. The novelty hasn’t worn off yet and we still check the PowerApp before travelling on the tube - it’s just become the easiest way to check. What’s truly amazing is that all of this was free, using a developer account in Azure, and PowerApp preview. We spent no money building our API or PowerApp and it continues to run for free.

So if you feel inspired and want to find out more about PowerApps and how they can unlock data in your business, or if you need help building a PowerApp, get in touch and we’d be happy to help!

Jisc | Data Matters

26 January 2021

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we'll assume that you are happy to receive all cookies. However, you can change your cookie settings at any time. For further information about how we use cookies and how to change your settings, please read our Cookie Notice

I'm fine with this