Is echt echt mogelijk dat de gewone man applicaties bouwt of is dat een mythe? Als het een mythe is, is dat er eentje die Microsoft al decennia najaagt. In de begindagen van het pc-tijdperk hadden we het over gebruikers, programmeurs en power users. Die laatste was bijvoorbeeld een gebruiker die bijvoorbeeld een spreadsheet met formules kon manipuleren.
Computerworld selecteert hier interessante artikelen uit het internationale netwerk van onze uitgever IDG.
Later, power users were supposed to learn Visual Basic, the Basic dialects for Excel and Word, and all the form and scripting features of Microsoft Access. Finally, they were supposed to use those programs to work with data in SQL Server databases. Was it any wonder that the results of these efforts were often unmaintainable, unauditable, and lacking in security?
Given the complexities of mobile devices, even low-code development platforms can be daunting for nonprogrammers, and actual no-code platforms often limit the capabilities of the apps being built. With PowerApps, in light of those difficulties, Microsoft has attempted to create a mobile development platform suitable for the power users of old, or the citizen developers we've been hearing so much about recently. The main question I'd like to answer, then, is whether and to what extent they've succeeded.
Programming for the people
Let's start with the big picture. According to Microsoft, PowerApps is a service for creating, managing, and using custom business apps across platforms. PowerApps you create can run on Windows 8.1 and later, on the most recent versions of iOS and Android, and in a Web browser. As a service, PowerApps lives in the Azure Cloud. Because it's from Microsoft, the design environment, PowerApps Studio, is a Windows Store app.
Cue screams of outrage from Microsoft customers still locked into Windows 7 desktops by corporate fiat, who can't use Windows Store apps. Microsoft says it's going to work on a cloud-based PowerApps design environment Real Soon Now. But I digress.
Despite the Office 365 logo, Microsoft says that you don't and won't need an Office 365 subscription to use PowerApps.
Returning to the PowerApps Web interface, we see four sample apps. Clicking on any of them loads a live app preview with sample data. You would hope there'd be an easy way of getting from the app to the source code or design elements of the app, but you'd be disappointed. Later on we'll see two of these samples again, this time as templates.
The PowerApps sample app Budget Tracker running in a browser with sample data.
The Budget Tracker app shown here has tablet and phone form factors. This, obviously, is the tablet form factor I'm using from my computer. If you go to add an expense (using the huge plus sign next to Expenses) the data entry form that opens will try to activate your computer's webcam so that, presumably, you can hold up an invoice in front of your face to photograph. This would make more sense on an actual smartphone or small tablet, where you would have the invoice on the desk and hold the device's camera over the desk.
While this is not exactly a killer app, it is functional and might even be useful with a little customization. I could say similar things about the other three samples.
Your first PowerApp
For building your first app, Microsoft suggests you install PowerApps Studio for Windows on a tablet, laptop, or desktop computer and load data from a table full of data residing in cloud storage. PowerApps Studio will generate an app from the data.
You can create a PowerApp from tabular data that lives in cloud storage, from an app template, or from an empty app layout. The wizard that creates apps from tables currently can create only a smartphone layout.
The resulting app will have three smartphone screens: one for browsing a list of records, one detail view, and one edit view. If the app wizard didn't do exactly what you hoped -- it almost certainly won't -- you can fix up the layout manually. Those of you familiar with Microsoft Access will feel right at home.
Automatically generating an app from data sounds impressive until you realize that nothing new or interesting has actually been done. The technology here goes back to the initial release of Access in 1992.
There's also a huge drawback to generating an app from data, at least in the current version of PowerApps: You won't be able to delegate filtering and sorting to the data source. Without that delegation, filtering and sorting will happen on the device after a full download, which is going to be painfully slow when there's a lot of data in the cloud. And what is the cloud for, if not lots of data? By all means, experiment with generating an app from data for yourself, but don't use that method for any app that might ever go into production with a large data set.
In addition to generation of an app from data, PowerApps lets you build a smartphone or tablet app from scratch or from templates. It currently includes two templates.
PowerApps has two app templates, Budget Tracker and Site Inspector, both available in smartphone and tablet layouts. Here we are starting to create a tablet app starting with the Budget Tracker template.
To finish downloading the template app, you need to provide a connection to a cloud location where PowerApps can copy the random data for the app, to be its data source. I should explain connections and data sources.
PowerApps supports a variety of connection types for hosting data sources. The selection does tilt toward Microsoft productions.
PowerApps connections and data sources
Connections are Internet services to which you can provide credentials to PowerApps. The list of standard connections currently contains 33 items, many of which are Microsoft services, such as AzureBlob, Office 365, OneDrive, SharePoint, and SQL Azure. There is a fair assortment of third-party services, such as Box, Facebook, Google Drive, and Salesforce. What I don't see are serious databases, be they SQL or NoSQL, except for SQL Azure. I certainly don't see anything hosted on AWS, not even SQL Server.
What you can do about this is to create your own custom connection with a Swagger API definition. Most real programmers can do this. Citizen developers are likely to find this too hard.
Once you have a connection, you can create a data source on that service. The easiest option is to create an Excel spreadsheet that contains a single table and doesn't use any formulas. The table name should be in English; cell contents can be in any language.
On SQL Azure, you can do CRUD row operations on a SQL table and execute stored procedures. The GetItems call on SQL Azure returns a specified maximum number of rows, and it supports filtering and ordering the data on the server.
In general, PowerApps expects data sources to have tables and records. PowerApps formulae can manipulate numbers and text much like Excel formulas, and they can refer to data source tables and columns. PowerApps formulas are probably within the reach of most citizen developers.
PowerApps Studio allows you to work with controls and forms visually, add new screens, bind controls to fields, and use formulas. This kind of work is often done by a designer, but like creating Access forms, it is certainly within reach of a citizen developer.
Within PowerApps Studio, you can edit forms visually, add new screens, add controls, and bind fields to controls.
PowerApps and flows
PowerApps can trigger Microsoft Flow "flows," typically from a button in an app. Flows cross app boundaries: A typical flow might involve creating a file on Dropbox, sending an approval email with Office 365 Outlook, and deleting the file from Dropbox if rejected. Flow started out as part of PowerApps, but it is now available as a separate service (see the InfoWorld preview).
Once your app is ready to run, you can share it with multiple co-workers at the same time, a group in Azure Active Directory, or all users within your organization. You can grant permissions ranging from "can use" to "can use and share" to "can edit."
The last option allows the user or group members to run your app, customize it, and share a new version of your app. There's a known limitation about editing, however: You can corrupt an app or overwrite others' changes if more than one person modifies the same app at the same time. Close the app before someone else edits it.
Has Microsoft succeeded in creating a mobile development platform suitable for citizen developers? Sort of. I called out a few features that nonprogrammers may find difficult in the body of the review, including the creation of custom APIs with Swagger specifications. But most of the capabilities of PowerApps should be accessible to the sort of people who create spreadsheets and Access forms.
Right now, PowerApps is a work in progress with a number of known limitations. When it gets to the production stage, we'll update this review and add numeric scores. PowerApps is a promising start. It will be interesting to see how far Microsoft can push no-code development and to what extent the would-be citizen developers will care.