Building mobile-device version of server apps isn't so much about what High-Level Language is best to do the job. It's more about what an enterprise's entire strategy for mobile apps is.
If you thought the Mac vs. PC religious wars were amusing, you've gotta love the philosophical split that's grown up the past several years around building mobile-device apps that provide access to software running on servers, including IBM i.
Essentially, the debate is about whether it's best to use HTML5 to build Web-friendly versions of server apps that are accessible by a wide variety of mobile devices, to build apps native to each mobile device even though it's more work for developers to tailor an app to each type, or to follow the Third Way crowd, which advocates building hybrid apps that offer features of both philosophies.
In the background of the discussion is the unfortunate reality that mobile devices have limited memory, so it's not practical to download to them whole databases, such as those supporting sales, manufacturing, and other full-blown server apps. Therefore, apps running on mobile devices can't offer the full range of application services that their server-based sisters can. It's up to each enterprise—and the expertise of their developers—to find a way to split the difference.
HTML5 vs. Native vs. Hybrid
Among the vendors of application tools for building mobile-device apps are advocates (and detractors) for all three strategies.
"HTML5 apps are the best choice," summarizes Tyler Wassell, software development manager for mrc, "because they are future-proof, they work across all platforms, they aren't controlled by another company, they are easier and cheaper to build, and they are easier to maintain." In support of his arguments, Wassell particularly notes the "notorious" instability of the mobile platform landscape (e.g., how iOS and Android have supplanted BlackBerry and Palm in recent years) and the fact that businesses that are developing web apps already have the skills necessary to move those apps to mobile.
"With an HTML5 approach, an IBM i RPG team can build one mobile app that targets Apple, Android, or Windows 8 mobile devices," points out Roger Pence, product liaison for ASNA. "Without HTML5, these programmers would have to learn three different development environments, three different development languages, and create device-specific versions of their applications. Not only is that cumbersome, expensive, and error-prone, most IBM i shops don't have programming teams with the expertise to create native mobile apps."
"The HTML5 choice is a very smart choice for IBM i shops needing departmental smartphone or tablet apps quickly," he adds.
Other commonly noted advantages of the HTML5 approach are that Web interfaces for browsers are easier to customize and there's also a greater base of code libraries and development tools for HTML5.
"HTML5 apps, when compared to hybrid and native, score the lowest on user experience," disagrees David Brault, product marketing manager at LANSA. "Why? Because HTML5 apps are constrained by the limitations of mobile browsers. Native mobile apps, on the other hand, have the best user experience and performance by far when compared to [HTML5 and hybrid] because native apps are not constrained by any browser, can integrate with any device feature, and utilize the [device] operating system's native GUI tool kit to render the screens."
Other frequently cited advantages to writing apps native to each device are that they offer the ability to more finely tailor an app's look-and-feel to the capabilities of each device, promise potentially faster app performance, and present the opportunity that if you write a good app you can possibly sell it to more than just your in-house users via an app store.
"Lately we have seen a change in direction toward native apps," notes Ludo Rubin, director of product marketing and business development for Magic Software Enterprises, "as businesses start developing more sophisticated mobile apps that consume data and processes from their IBM i servers [and] apps that mobilize business processes and support real-time transactions. We see this growing trend toward native mobile apps for smartphones and tablets that leverage native device capabilities, such as GPS, camera, offline capabilities and the enterprise's back-end data. We expect that most of mobile projects in the next few years will be in this area."
"Most of our customers select the native approach because it delivers the best user experience and developers don't have to learn new languages or write multiple versions of the apps," mentions LANSA's Brault. "That being said, we do have customers that employ all three approaches."
"Native app development requires a commitment to develop similar functionality across each OS to be supported," counters Karen Tegan Padir, CTO of Progress Software. "In contrast, a hybrid approach can enable customers to create mobile applications quicker, with more flexibility, to respond to customer demands. It can also provide the ability to easily update apps for every OS and the web, instantly."
"Developing native apps requires multiple skill sets (Objective-C for Apple, Java for Android, .NET for Windows Mobile, etc.) and extra resources for developing and maintaining separate code bases for each platform," LANSA's Brault points out.
"While native app development cost varies depending on the app's complexity, it's easily the most expensive and time-consuming approach," warns mrc's Wassell. "For example, Forrester Research estimates that most native apps require at least six months of full-time work, and cost between $20,000 and $150,000, depending on complexity."
"Few [of our customers] have chosen a device native strategy," adds Progress Software's Padir. "There is little that can't be done with a hybrid or HTML5 web app strategy."
"Since hybrid apps are a blended mixture of [HTML5] and native technologies, they slide in between mobile web and native. Hybrid frameworks, like Phone Gap, allow developers to wrapper mobile web apps inside of a native app container because it allows HTML5 apps to access device features that are normally locked down in the browser," notes Brault.
Other arguments in favor of a hybrid approach are pragmatic ones. Users may choose between HTML5 and native only to discover they need to change horses somewhere down the road because one method doesn't answer all their needs. Hybrid can be more flexible because users can choose between Web and native—or both—approaches on an app-by-app basis, at least theoretically picking the best method for each app itself. Finally, hybrid enthusiasts are neither locked into device-specific problems associated with maintaining native apps nor limited to offering only browser-compatible features in their apps as they are with an HTML5 strategy.
"But there can be performance and interface issues with hybrid apps," Brault concedes. "Since hybrid apps rely on the version of WebKit burned into the device's operating system, performance and screen rendering can suffer depending on the OS version of the mobile device."
So, Which Path to Choose?
From a technical point of view, today there are lots of different technologies available to develop front-end apps, to address fragmentation of mobile platforms, or to develop server-side apps," Magic Software's Rubin summarizes. "Deployment is also challenging with needs to address scalability, security, and reliability issues required by mobile apps. There are also different tools and solutions, either cloud-based or on-premise, to integrate mobile apps with backend systems. With all these options, IT managers are faced with the challenge of choosing the right technologies and solutions to address their needs throughout [the] full mobile application lifecycle."
"[In the] mobile and BYOD era, end-users are not necessarily in control, but are driving IT priorities for mobile business apps, new mobile platforms, cloud services, etc. IT needs to catch up with users or they can put themselves at risk for potential security gaps," he adds.
Following is a list of application development tools for mobile devices, divided into three categories, although there is some overlap in the abilities of some of the products. The first category primarily creates browser (HTML5) versions of apps, the second category creates primarily native apps, and the third category creates hybrid apps, although those products actually can create all three types.
Solutions That Generate Browser (HTML5) Versions of System i Apps for Mobile Devices
Strategi SOA is a development tool that lets programmers build Web applications or extend System i server applications to browser-friendly environments, including wireless devices. The product also lets developers break apps up into components for deployment in Service-Oriented Architecture (SOA) environments and for modification via Eclipse, MS .NET, or Visual Studio.
DataGate provides native access to IBM i and SQL data for mobile, Web, and Windows applications by enabling apps written in ASNA's Visual RPG. Applications written to the DataGate interface can either connect to the IBM i database or to MS SQL Server.
Wings offers an RPG application modernization tool that builds browser UIs for legacy applications via IBM Rational's Open Access API. The interfaces are compatible with desktop and mobile-device browsers. Developers can integrate this UI with other applications and legacy systems and convert applications one screen at a time.
VHI, traditionally a solution for integrating client and server apps, also integrates server apps with tablet devices. VHI helps users repurpose server apps with mobile versions, provide customized HTML access to host apps, and translate green-screen software to mobile-ready services.
Both WebSmart products generate Web applications via templates included with the product. The ILE version generates RPG code, while the PHP version generates applications in Zend Corporation's PHP language. Generated applications are accessible by any browser, including those running on mobile devices. Procedures within both products let developers tailor application displays for dedicated use on mobile devices or develop Web apps that can display a different interface, depending on what type of device is being used to access them.
WebSmart Mobile offers templates, user-interface code snippets, and support for all mobile platforms to provide a means of creating IBM i apps for mobile-device screens. WebSmart Mobile ties into both WebSmart ILE and WebSmart PHP to support server apps written in both ILE RPG and PHP.
Presto translates server-based app screen views to the Web and enables users to access them internally or remotely from PCs, Macs, iPads, iPhones, and other tablets and smartphones. It also enables addition of graphic elements not available in the original server apps.
Valence offers an application framework for retrofitting IBM i apps to run in a Web 2.0 environment, for building RPG-based web apps that run on IBM i, or for building browser-based versions of IBM i apps that are accessible via mobile-device browsers.
Convertigo Mobile Enterprise Application Platform is an open-source tool suite that lets developers generate new applications from old ones. New app versions can run on mobile devices and incorporate such features as mashups, SOA and Web services compatibility, browser accessibility, SQL connectivity, and HTML support.
LegacyWeb regenerates existing RPG, ILE RPG, and COBOL applications in HTML, enabling those apps to run in a browser environment. LegacyWeb can also generate XML that provides a gateway between legacy applications and wireless applications.
The GeneXus Smart Device Generator lets programmers build applications for mobile devices via HTML5 by describing a technology-independent version of the desired application, generating source code via GeneXus, and deploying it with a single click.
Rational Host Access Transformation Services (HATS) converts 5250 green-screen applications to Web, mobile-device, and other user interfaces and extends them as standard Web services. Major features include an editor for developing macros and Web services.
Rational Open Access RPG Edition provides enhancements to the RPG language that let developers write I/O handlers that open legacy applications to a wide range of resources, such as browsers, mobile devices, cloud computing, Web services, external databases, XML files, and MS Office applications such as Excel spreadsheets.
LANSA's aXes (which is also offered by Linoma Software under a partnership agreement) lets enterprises deploy legacy host applications to a browser, including browsers on mobile devices, without writing new code via an automated process. The product's eXtensions feature also generates Windows GUI features (e.g., images, dropdowns, checkboxes), and other options enable remote SQL queries and access to spooled files.
LANSA's aXes Mobile delivers data from IBM i applications to mobile devices, uses HTML5 to enable mobile-device and browser access to IBM i applications, and enables development of RPG-, COBOL-, and CL-based applications that enable access from mobile-device interfaces.
LANSA Composer is a tool for integrating business activities that involve data transport. It lets users move data from one place to another, transform the data from one format to another (e.g., server and wireless device displays), and orchestrate processes. Its wizard-based Web services tools let users consume Web services, expose LANSA or 3GL code as a Web service, and integrate application transactions via eXtensible Markup Language (XML) and more than 30 Java plug-in services.
LANSA Integrator is strategic middleware that enables application-to-application and business-to-business services via XML and Java plug-ins. It facilitates data exchanges between a server and wireless devices, supports multiple data formats, lets users publish or access third-party Web services, and sends and receives XML transactions between business partners.
Rapid Application Modernization Process (RAMP) from LANSA is a modernization suite for IBM i applications. It provides an application framework that's deployable as either a Windows rich-client or Web app browser, including browsers on Android and iPad tablets.
Visual LANSA is a Windows IDE that lets developers build single code-base applications that are portable between IBM i, wireless devices, and other platforms. The Visual LANSA Framework enables programmers to prototype and create graphical Windows and Web applications with a consistent look and behavior, use platform-portable business rules and database triggers, and deploy the results on any mixture of IBM i, Linux, Web, or Windows platforms.
newlook generates improved UIs for legacy applications, including for display on mobile devices. The product features drag-and-drop support for refacing options, multiple APIs, SOA compatibility, and integrated support for emulation, mobile clients, and zero-deployment and smart-client GUIs.
Magic's xpa application-building environment has been extended to enable developers to build a single version of an application and then deploy it to a wide range of platforms, including mobile devices, IBM i (including servers running AIX and Linux), and Windows.
OnWeb converts System i apps to Web or .NET interfaces, enables real-time communication between mobile devices and IBM i back-end applications, deploys applications securely to internal users, generates Web services automatically from System i screens and business logic, and can present data from multiple sources as Web pages.
m-Power offers a solution for both converting legacy software to browser and wireless-device compatibility and developing new Web applications based on System i software. The product generates Java code for portability and scalability, provides a tutorial interface that lets even non-programmers convert apps, and can convert third-party software or custom programs.
Profound Logic Software
Profound UI is an enhancement for RPG based on IBM's RPG Open Access that offers direct generation of UIs within RPG. The product offers point-and-click tools for building browser interfaces that can then be integrated with new or legacy applications for the IBM i, or displayed on mobile devices. The Profound UI includes Profound Logic's established Genie product, which helps enterprises Web-enable their legacy apps without altering any existing code by generating standard HTML to handle Web interfaces.
Seagull Software, a Rocket Software brand
Rocket Legasuite GUI converts IBM i green-screen, mainframe, or UNIX server applications to mobile-friendly, graphical, and Web-compatible versions. New versions can function exactly as the originals, or add new features with minimum effort. The new versions also integrate with existing databases, client apps, and browser apps.
Rocket LegaSuite Mobile enables developers to directly create enterprise mobile applications that integrate with any enterprise server applications, including IBM i. Developed applications run on a variety of mobile devices that use a wide variety of screen sizes and resolutions, don't require an app store, and interact with legacy apps in real time.
Surround Technologies' Accelerator suite can be used for modernizing IBM i applications and displaying them on mobile devices. The Accelerator provides base software, code factories, and snap-in software, which eliminates non-business-specific development, while product standards guide the team through the development process.
SmartPad4i lets developers build a single version of an RPG application and then deploy it to IBM i servers, Windows and Mac PCs, and mobile devices such as smartphones and tablets. Generated apps support all major browsers, can be installed directly on supported mobile devices to access local services, and utilize all HTML components.
Legacy Mobilization is an application-conversion service that transforms green-screen server applications to versions compatible with access via browsers, mobile devices, or cloud services. (Transoft was acquired by Advanced Computer Software Group on March 18, 2013. Both companies say there are no current plans to alter services offered by Transoft.)
Solutions That Generate Native Mobile Device Apps
Pega AMP is a Java-based platform for building, deploying, integrating, and managing apps on mobile devices. Pega AMP provides model-driven development options, mobile development tools, reusable services, and a comprehensive dashboard to manage the entire lifecycle process.
An update of the company's legacy 4GL, GeneXus X Evolution 2 adds a native mobile smart-applications generator for Android, BlackBerry, and iOS devices. Developers can build mobile-device versions of server apps or new, technologically independent software versions.
Although not a tool for building applications on mobile devices, DeviceAnywhere is a cloud-based application testing suite for apps running on mobile devices or Web sites. Developers can use DeviceAnywhere suite members to manually or automatically test applications on hundreds of mobile devices concurrently.
LongRange is a mobile-device application development package that builds native mobile device apps using RPG, COBOL, and CL with DDS. Focused entirely on replicating IBM i apps rapidly, LongRange lets developers deploy new app versions via Apple's App Store and Android's Google Play.
LongRange for LANSA is a mobile-device-native language for building applications on Apple iOS and Android devices using LANSA development tools. This version of LongRange is cross-platform and does not require any programming on the mobile device to use features such as photos, videos, audio recordings, documents, maps, and geo-location in LANSA applications.
OpenEdge is a platform-neutral development environment for creating software applications that run on mobile devices. The applications support RIA and browser accessibility.
Solutions That Generate Hybrid Mobile Apps
IBM MobileFirst Platform offers a collaborative development environment that helps programmers build scalable solutions once that deploy across nearly any device, accelerate back-end integration, simplify maintenance, and conduct testing using the native, hybrid, or Web code.
IBM's Worklight Studio generates mobile device apps in developer choice of HTML5, native, or hybrid modes. Generated code is portable between platforms, enables APIs via the PhoneGap bridge, and implements runtime skins that let applications automatically adjust to device environmental guidelines.
The Telerik Platform provides user interface tools and cloud services to help users build HTML5, native, and hybrid apps for mobile devices. The tool set also includes utilities for deploying apps, connecting users, testing apps, and measuring user and app behavior.
Zend Studio is an IDE for Zend's PHP language. Zend Studio offers drag-and-drop application-building tools that enable construction of software for IBM i servers, clients, and mobile devices. Zend Studio incorporates with Zend Server, a set of APIs that enable connection of mobile devices to cloud-based server apps.