A new rapid application development (RAD) tool from France changes the mobile-app landscape for IBM i.
I just got my first Android phone, and I have to say I'm impressed. I've had two BlackBerries before this Samsung Galaxy S: first the Pearl and then the Bold. I had some guilt moving away from the BlackBerry, which is highly reliable and easy to use. But as a friend of mine said recently, once you try a touch keypad, "you'll never go back." Of course, it's the Web access that really gets your adrenaline flowing, and when BlackBerry chose to support Flash only on its Playbook tablet, I decided to pass on the next BlackBerry upgrade.
There's no question that mobile is the way to go, but the prospect of retaining the investment in RPG programs while giving users a fast and flexible mobile experience has been challenging the best minds in the industry. IBM had vision for where things might be headed when it released Rational Open Access (ROA) for RPG, but I don't even want to think how much time and money companies have sunk into making that technology work. It finally seems to be paying off with some viable legacy-modernization solutions.
One company in France, however, has been pondering the RPG back-end, multi-client, front-end dilemma for some time. It recently released a very sensible and down-to-earth approach to enterprise mobile applications that could save development shops a lot of time and beaucoup d'argent. (That means "a lot of money" for those of you who never cracked a book during your high school French class.)
SmartPad4i is a development solution that rapidly creates Web applications in RPG and HTML to run on IBM i on the server side and will work with any client from a Mac or PC to any smartphone or tablet using a browser. The RAD tools aren't designed for legacy modernization as much as for new application development, but they are intended to leverage the skills of RPG and COBOL programmers, who can begin developing new mobile applications with as little as three days of training.
The tool is from the minds of some very smart people at SystemObjects of Paris, France, who have been working with IBM i and the AS/400 for about 20 years. They're the folks behind Delphi/400 developed with Borland back in 1997.
SmartPad4i has a clever and unique way of integrating RPG with HTML. The developer begins by creating an HTML page with any Web page development tool, such as Dreamweaver. The HTML works in place of display files (DSPF). He then gives a unique name to each "object"—edit box, image, button, etc. —to be used by the program. The developer has at his disposal two powerful tools, the SmartPad4i Designer and the Generator. Using the Designer, the developer specifies the physical characteristics of his fields, such as whether numeric or date. He also chooses the library to generate the program code, the program's name, and the output language. SmartPad4i then generates a basic framework for the program to display the HTML page and process user input data. A key tenet of the whole process is the decision to make one HTML page equal to one native program.
The uniquely named "objects" defined in the HTML page are seen by the program as external data structures, and if you want to display something on the page, you move your data to the output data structure of the object. To read user inputs, you move the information from the input data structure. Communication between the HTML page and the program is accomplished using these external data structures, which are automatically generated by SmartPad4i. For displaying multiple rows of data, SmartPad4i generates "multi-occurrence data structures." Using the OCCUR statement, you populate only the number of occurrences you want, and SmartPad4i displays those lines only. If you want to add your own business logic inside the generated code, you can add your code between the "YOUR CODE" tag to protect your work during future code generations.
For the back-end business logic, the developer calls upon the SmartPad4i Generator that can output RPG or COBOL and automatically create an application without writing a single line of code. It builds "modules," which can be a list of tables, an update of a record, an insert of a new record, a display, or any combination. Access to the database is accomplished using data "models"—a simple physical file, an SQL table, or any number of tables. A module can use one or more data models.
Serge Charbit, president and CEO of SystemObjects, explained to me his philosophy and the underlying approach his company took in developing the unique toolset for IBM i. The problem for enterprises challenged by building mobile applications is quite different from that faced by companies developing mobile apps for consumers, he explained. In the enterprise, you don't want to be building two or more applications that do the same thing just because there are different client devices. If you build a mobile application that runs on the iPhone, it for sure will not run on a PC. And companies have lots of PCs. What's even more intimidating is that you might develop for one type of smartphone, say the Android, but how do you keep up with multiple releases of the operating system? You could be faced with building multiple applications for multiple clients running multiple versions of a basket of operating systems.
So to conserve development investment, you want to build only one application that will run on any client. SmartPad4i does that by running everything in the browser, and SystemObjects is committed to supporting the five major Web browsers as well as those of the leading smartphones. The created HTML application senses which device you're using and makes adjustments for the screen size, but if you need to update the application, you do so only once, and you do it on the server.
"It's difficult to imagine spending money to build something that cannot be used locally on a PC on the intranet of the company," says Charbit. "That's the problem with native mobile apps. You cannot use them on a PC or Mac."
I found it refreshing to hear a point of view that didn't profess trying to be all things to all people—or at least to all clients. With today's frameworks, you can create really spiffy looking HTML browser-based applications that work extremely well on the latest smartphones. For the iPhone and iPad, you can now even eliminate both the address and navigation bars so the application is indistinguishable from a native smartphone app.
The other paradigm shift that Charbit expressed is that trying to run a legacy application on a mobile device is a fruitless undertaking. First, it's extremely difficult to accomplish and requires at minimum that the display and logic portions of the application be separate, something that many still aren't. And second, who needs it? The functions you want in a mobile app generally are different from those you need in your core application. Who is going to try to run an entire ERP application from a mobile phone? So it's actually easier to build your mobile application from the ground up, says Charbit, than it is to try to convert a legacy application to run on a mobile device. This becomes even more pronounced when you can build the new Web application with a rapid application development tool like SmartPad4i with its Generator feature.