Denned - Fotolia
As more companies embrace mobility, they find themselves unable to modernize all the apps they need.
Many organizations have a large number of Windows applications and Web apps meant to be accessed from desktop browsers. These are often older, legacy apps or customized in-house apps, and the original source code may no longer be available. It can be prohibitively expensive and impractical to create mobile versions of these applications by building native iOS and Android apps from scratch, and off-the-shelf replacements often don't exist.
Application refactoring, also known as app transformation, addresses this problem. App refactoring takes the user interface of existing applications and uses special remote protocols and software to transform them into mobile-friendly, modern apps.
Refactoring requires that the original desktop applications still run and be maintained, which brings an added bonus: Refactored apps can take advantage of their desktop counterparts' existing back-end integrations. Windows applications can run in a corporate data center, in the cloud using desktop virtualization, or even on a physical desktop. Web applications can run in what's known as a headless browser -- a browser without a graphical user interface, which is often used to test apps because it's controlled by the command line.
Step one: Read the source app
All app refactoring products work differently. In general, they take all the user interface (UI) elements of a source application, including text fields, forms, menus and other controls, and transform the code to make it more suitable for modern apps on mobile devices. There are three ways for app refactoring products to do so:
- Read the UI elements out of a Web app's HTML and CSS code in a browser;
- Insert an agent between the operating system and a Windows application to watch the UI instructions sent between the two;
- Intercept the remote display protocol, which has instructions for rendering the UI on the remote client, and use that to transform an application into HTML5. (This approach works for both Windows and Web applications.)
The technique the app refactoring platform uses will determine what applications the developer can refactor. In general, app refactoring is better for business apps that are data-centric as opposed to apps with rich media or pictures.
Step two: Create the new client app
Once app transformation software has extracted the controls and UI elements from the source application, the next crucial step is to define the mobile UI. Simply taking the functions of a desktop app and making them touch-friendly will not make a satisfactory mobile app. It is important to decide what features to build into new mobile apps and what to leave out. It's often best to break up a large desktop application into multiple task-specific mobile apps, each with a few essential features for specific workflows.
App refactoring platforms usually include a design environment that allows app creators to select functions from source apps and build them into new mobile apps. These design tools often use codeless drag-and-drop interfaces, allowing non-developer IT staff or even end users to create apps.
The resulting client app can be an HTML5 app, accessible from a mobile browser or from a hybrid app, or it can rely on native device UI elements. IT can distribute and secure these apps just like any other, using enterprise mobility management software.
Refactoring can also bring new capabilities to enterprise apps. Some products can pull features from multiple source applications and combine them into a single mobile app, eliminating the need to copy and paste or switch between apps. App creators can also enrich apps by incorporating local device frameworks such as the phone dialer, address book, camera or GPS.
App refactoring's future
Considering the number of legacy applications that companies have, app refactoring is likely to be around for many years. Organizations may consider app refactoring in situations where they are using desktop virtualization technologies, but that's not its only role. Any company with existing desktop apps should consider refactoring as a way to embrace modern apps.
Still, this is just one of several options available for mobilizing enterprise applications. Some use cases may be better served by mobile app development platforms or custom native iOS and Android apps. Plus, more off-the-shelf enterprise apps will become available in the future.
A look at PowWow's app refactoring
App refactoring products you need to know
Dig Deeper on Application modernization and mobile app delivery
Continuing changes affect the App Refactoring space (which I think we’re calling RMAD now)
MBaaS and refactoring tools ease app development
Reddo Mobility shuts down. Is App Refactoring fading away?
A look at HopTo's unique approach to app refactoring