Application refactoring, or “app refactoring,” as it became more widely known, is a procedural concept that was earmarked as a growth area over the last few years. According to TechTarget, app refactoring is “…the restructuring of existing computer code to improve its performance, readability, portability, or code adherence without changing the code’s intended functions.” As far as EUC was concerned, the major focus of this was to take older, business-critical applications and port them to mobile devices in a way that maintained application usability on the new form factor.
I’m sure many people, myself included, have tried to use legacy (usually Windows-based) applications on a mobile device or tablet. In most cases, it remains an unpleasant and frustrating experience. Activation of standard Windows controls like menus and context menus is extremely difficult, and the precision capability afforded by a mouse is completely absent. The idea behind app refactoring was to allow an administrator to make changes within the application’s user interface in order to make user interaction with core application functions easier. The application would be reskinned to work natively with the smaller form factor using common mobile gestures such as swipe, pinch, and zoom.
The concept was simple, and it translated well to demonstrations and PoCs: take a “standard” Windows or browser-based application, run it through a “refactoring” wizard, and produce a “refactored” version through which users could invoke the core application functions on a tablet or other mobile device. Once it was packaged up for delivery to the smaller form factor, you could then deploy the application out across desktops, laptops, tablets, and mobiles, optimized for each environment. It sounded like a natural progression.
Something like this was tried previously. Many moons ago, Citrix had something called Project Vertigo, which envisioned applications that “self-adapted” to the form factor they were displayed on. Of course, it didn’t take off, because today’s proliferation of form factors simply wasn’t present. We now have three distinct areas—mobile, tablet, and desktop/laptop—that many people utilize on a daily basis. Not long ago, this prompted commentators to think that the time for this technology solution had arrived.
Until recently, a number of vendors were operating in this space. Each had slightly different concepts behind them. Some offered a drag-and-drop interface for refactoring, and others used different methods. Some worked on Windows apps, some on web apps, and some on both. Reddo Mobility, Capriza, StarMobile, PowWow, and HopTo were the main players in this space. Initially, at least, there was a great deal of buzz around the whole “app refactoring” idea.
However, Reddo Mobility has now shut down, and StarMobile has been absorbed into PowWow, leaving the field of app refactoring with three instead of five players. Despite its being a source of a lot of noise and interest, I’ve yet to personally see an enterprise in which the use of a refactoring technology has moved past the demonstration stage. Is there any one particular reason why application refactoring hasn’t taken off?
Let’s examine some of the possible reasons why it hasn’t gained the traction that people expected.
First, Citrix has the Mobile SDK for Windows Apps, which can be used to “mobilize” applications. This is much the same as “refactoring,” except without the simple interface that refactoring provides. So, the ability to refactor the applications is already there at some level for Citrix customers. All that one of these refactoring solutions would provide is simplicity.
Also, many applications (especially those from large companies) already have dedicated mobile versions. I can use OneNote, Dropbox, and TeamViewer, for instance, without any need to invest in a dedicated refactoring solution to bring them to mobile devices. It’s possible that the industry overlooked the nature of app refactoring as simply a “bridging” technology that provided this kind of functionality for applications that hadn’t produced their own mobile versions yet. If this is accurate, and you postulate that most moderately popular applications will move to a mobile version at some point, then app refactoring becomes either a niche technology (for particular line-of-business apps that have no plans to produce mobile versions), or a technology with a limited lifespan.
If you start refactoring applications, you also need to invest in the security and management side of things, even if you are only delivering them to company-owned devices. App refactoring on its own doesn’t tie in with this directly: you’d need something like Citrix Worx SDK or the like to achieve this. Why would you invest in a solution to present the application to mobile devices, and then have to rely on another part of the stack to securely manage it?
Some applications are bound by constraints that don’t suit mobile devices anyway: client-server relationships that are sensitive to network speed and latency, for example. In these cases, delivering the application to a mobile form factor may be pointless without leveraging a solution that executes it on a remote instance rather than at the endpoint itself.
Refactoring applications in such a quick and easy way may be a “nice to have,” but something that simply isn’t on a lot of enterprises’ radars at the moment. Many IT departments are dealing with migrations and upgrades (such as Windows 10) that are being pushed to them with finite timescales. In these cases, “mobilizing” applications doesn’t rank very high on their list of priorities.
And following on from this, for a final point, Windows 10 itself is pushing the whole “Universal Windows App” platform at enterprises, together with the Desktop Bridge functionality that offers to convert existing applications into the UWP format. Once in the UWP format, they are intended to be portable with Windows mobile devices (and even Xbox consoles). Whilst not popular platforms, if Microsoft were to extend this functionality in some way that delivered UWP to iOS or Android, then it would be another reason not to leverage a dedicated refactoring solution.
Why app refactoring has failed to become a popular solution probably encompasses all of the points above, and possibly more. The refactoring technology looked impressive, but for a variety of reasons, it hasn’t broken into the market in the way that people expected. With more and more mobile devices being sold, and more and more mobile versions of applications appearing in the various stores, it is clear that application refactoring is looking at a very uncertain future.