First look: Play citizen developer with Microsoft PowerApps

If you can write an Excel macro, you can develop an application using PowerApps, Microsoft's new 'citizen developer' offering

First look: Play citizen developer with Microsoft PowerApps
Shutterstock

Modern application development isn’t only about cloud hyperscale microservices. It’s also about bringing application development to new audiences. Many of the tools and techniques that have been rolled out over the last few years apply to folk who simply want to solve a business problem fast as opposed to dev teams building the next unicorn startup.

That’s where Microsoft’s new PowerApps tool comes into play. Best considered for quickly building mobile and desktop applications, PowerApps enable anyone who has written an Excel macro to create an application -- as long as the data you need is accessible, either in a database or on the other side of an API.

Back in the early days of my development career, the consulting company I worked for was focused on 4GLs, using scripting tools like Forte to build graphical desktop applications that could take advantage of data stored on soon-to-be-obsolete minicomputers and the eternal mainframe. With the advent of cloud services with RESTful APIs and thanks to API description tools like Swagger, it’s time for a new 4GL-like software development paradigm.

That’s where PowerApps comes in, offering a visual development environment for cross-platform mobile applications.

Powering up PowerApps

You’ll find PowerApps versions for Windows 10, iOS, Android, and the Web. I’ve been experimenting with the iOS version on an iPad and the Windows 10 version on a desktop PC. You can build an app using any version; the phone and tablet versions are full-fledged development environments.

Open the PowerApps app, and you’re presented with a set of options for building an app -- starting with a template, with data, or with a blank slate. Choose a template and you’ll get a list of common business scenarios, with a focus on tools for handling collaboration and planning. Initially there are a handful of app templates, but they’re all well designed and easy to work with. Pick the template you want to use, and the PowerApps service will assemble an Excel file with sample data, then deliver it to your choice of storage services. Click “Add a connection” to start building a file.

This isn’t the old Microsoft, so you’re not limited to OneDrive or SharePoint for your connections. Instead, you get the option of using Google Drive or Dropbox alongside OneDrive, with data stored in Excel files. That Excel relationship is key to building apps; if you’ve programmed an Excel spreadsheet, you’ll find working with PowerApps familiar. Adding content and code is exactly like adding an Excel function, right down to Excel-like input bar at the top of the screen. A Quick Tools pop-out gives you layout and content options, where you can pick and choose a theme.

Working with PowerApps code

PowerApps code lies somewhere between Excel macros and JavaScript. Starting with a data connection, you can use familiar controls to quickly add content to an application. Excel sources need to be formatted as tables, and while you can build code from scratch, automated tooling will take a data source and build it into familiar views, like the common master/detail view used in online catalogs. Content can be parsed appropriately -- for example, pulling out image URLs to add images to a page.

While the free and basic PowerApps accounts are perhaps best thought of as an Excel back end on a cloud-hosted Access app, things get more interesting if you subscribe to the enterprise option. Here you can use the Azure App Service back end to work with more than the default API endpoints, with support for any Swagger-documented API. It’s an approach that gives your users a managed gateway into your application APIs, so you can control and throttle access, making sure APIs aren’t misused or overloaded -- and only registered users get access to your data.

Twists and triggers

You’ll find some inconsistencies in PowerApps. For example, if you plan on adding a logic flow to an app, you’ll need to switch to the Web-based development tooling. There you can pick from a series of SaaS and social media triggers that can be used in your applications. Currently, it’s a limited set, focusing on working with objects in Salesforce and on OneDrive and SharePoint Online, as well as files on Dropbox and new tweets from specific Twitter accounts (you’ll need to sign into Twitter to link PowerApps to your account).

Once you’ve created a trigger, you can assign an action to it. Here you get a larger choice of options and SaaS applications. For example, Salesforce object creation can be matched by adding a contact to Office 365 -- or by adding a line to an Excel spreadsheet. The ability to automate actions in a PowerApp is an important feature, and it’s interesting that logic flows exist outside the user experience elements of an app. An action can update a field used by an app, while the app isn’t in use. This is a big change over previous 4GL-like applications, making PowerApps more suited for modern application models.

It’s best to think of Microsoft’s PowerApp development tooling as two different environments: a device-based tool for building and scripting user experiences, and a cloud-based tool for delivering workflows to those user experiences. Multiple logic flows can be delivered to your data sources independently of the applications your users get to use and you can refine and update them separately from each other.

Posting your app

No need to go through an app store to distribute your apps -- they’re delivered via the PowerApps app and users’ Office 365 accounts. Once an app is ready for use, it can be assigned to users and is then delivered to their PowerApps clients, ready for use.

With the Enterprise option, your PowerApps workflow is also an Azure App Service, which can then be used with Apache Cordova or Xamarin to deliver a cross-platform app, treating PowerApps as a tool for building a back end and prototyping a user interface.

The result is an interesting new application development model. Users can build the apps they need in PowerApps without learning new skills, and if those apps prove popular, they can be used as the basis of native applications or subsumed into existing business services. You don’t need to spend ages gathering information or collecting user stories. Instead, give your business users access to PowerApps, let them play, and use the prototypes they build as the basis for your app.

Copyright © 2015 IDG Communications, Inc.