Positioning itself to enable enterprise software to make the leap from the cloud to employees’ handheld devices in 2016, Microsoft recently acquired Xamarin, the cross-platform .NET development environment. But most agree that cross-platform mobile frameworks like Xamarin, React Native, AngularJS, Cordova/PhoneGap and the like—while they have their fans—are an incomplete answer to the mobile imperative.

According to a seminal June 2015 blog by Google developer Alex Russell, “Many platforms have attempted to make it possible to gain access to ‘exotic’ capabilities while still allowing developers to build with the client-side technology of the Web. In doing so, they usually jettison one or more aspects of the shared value system. They aren’t bad—many are technically brilliant—but they aren’t of the Web.”

According to Russell, the alternative is a new class of applications that:

  • responds to form factor
  • can work offline
  • have app-like interactions
  • refresh in the background
  • are secure via Transport Layer Security
  • use W3C manifests to be discoverable as apps
  • use push notifications
  • are installable to the home screen, and
  • are linkable, because “The social power of URLs matters.”

Why “progressive”? According to Russell’s blog, “Sites that want to send you notifications or be on your home screen have to earn that right over time as you use them more and more. They progressively become ‘apps.’”

Certainly no one will miss the plaintive request to install a website’s native app for a mobile experience. Much of the magic of progressive Web apps comes from the new ServiceWorker specification, a JavaScript-based replacement for the arcane Application Cache. ServiceWorker lets apps use persistent background processing, intercepting network requests so that the sites that have been visited at least once before can function while offline. Push notifications, background sync and adding to the home screen are also features of ServiceWorker, which is primarily a Google/Chrome project and is under consideration by Apple (though simple progressive Web apps can be implemented for Safari, according to Buenos Aires-based JavaScript consultant Nicolás Bevacqua). Meanwhile, Mozilla Firefox and Opera are already on board (see Jake Archibald’s dashboard for ServiceWorker implementation status on all browsers).

JavaScript exceeds expectations in mobile
Even without progressive Web apps, JavaScript is enjoying new prominence as a mobile enabler for companies providing Web services.

“Software developers have long sought a way to create a portable logic engine where business logic can be written once and then run across multiple platforms,” said Alex Balazs, vice president and fellow architect for Intuit, makers of TurboTax. “Attempts using C++, Java and Flash came close, but never quite solved the problem for Web, desktop and mobile. With the prevalence of Web browsers on all platforms, JavaScript has reemerged as a means to build a truly portable business logic engine.”

How did Intuit pivot from Web to mobile? In a word: quickly. Balazs describes how it only took a year to be able to offer the full version of its tax-filing software for 30 million customers.

“We created a development platform for Intuit engineers—codenamed ‘Fuego’—that has played a pivotal role in our mobile transformation,” he said. “Fuego enables the development team to write once and deploy everywhere across the 50,000 screens in TurboTax by delivering user experience as a service.”