AppForge's Write Once-Run Anywhere for Mobile

AppForge is taking a real bite out of the high cost and high maintenance of mobile app development with an integrated development/deployment platform that brings "write-once/run anywhere" to PDAs, SmartPhones, Pocket PCs and many cell phones. See how AppForge uses VB and Visual Studio.NET -- not Java, to cut the time and hassle of building, deploying and managing mobile apps.

Tags: Developer, Mobile, Tyburski, Mobile App, AppForge, Design, Device Definitions,

It's often a hassle to bring mobile apps to the enterprise.

With its high cost and high maintenance (mostly because every project seems to be a one-off), apps must be tuned for each device, updates can be a nightmare, and often IT departments don't want to figure out how to manage dozens of different cell-phone designs brought in by employees from home.

Well, AppForge, a former hardware/software wireless design firm with more than a decade of experience in working with clients such as Motorola and FedEx, has developed a unique approach to vanquish many of these mobile developer dilemmas.

"A lack of portability is probably the biggest impediment to mobile application development today," Chris Tyburski, Chief Technology Officer and VP of Engineering, told IDN. "That can be a real problem, especially when you listen to the underlying message from Palm, PocketPC, Symbian [Nokia] or even C++ developers. They all say it can take a lot of developer time and training, and on top of that, once you learn how to build an application for one, there's nothing compatible you can use to move that app to another device. They just aren't compatible today, in any way, shape or form," Tyburski added.

AppForge has set out to solve those headaches with its CrossFire mobile app design, development and deployment environment. The keys to simplifying mobile app development and deployment, Tyburski said, are, in effect, two distinct layers of abstraction -- one for the developer, and one for the underlying device. AppForge is taking a real bite out of the high cost and high maintenance of mobile app development with this integrated development/deployment platform that brings "write-once/run anywhere" to mobile apps for over 90% of the world's handheld, mobile and wireless devices, including Palm OS, Pocket PC 2000/2002, Windows Mobile 2003, Nokia Series 60 and Symbian UIQ.

Inside AppForge's Write Once/Run Anywhere Architecture
"In our approach, we provide developers a library of drag-and-drop functions, such as buttons, signature boxes and other functions," Tyburski said. These features are generated into code using underlying VB 6 and/or Visual Studio.NET compilers. Tyburski explained that AppForge did not reverse-engineer .NET's CLR, but "we created something that wraps our VB 6.0 [capabilities] in a .NET-friendly manner, so we're moving to support both C# natively, as well as .NET's CLR."

Further, AppForge provides a device definition for each mobile device that masks the platform's intricacies from the developer, so he doesn't have to then take his application and customize it for each device. "We don't target just the lowest-common-denominator with our device definitions" Tyburski said. "Our device definitions, which run on each client, run very deep and are engineered to exploit many of the features touted by each device manufacturer."

Using AppForge's combination of VB-based developer tools and device definitions, one client was able to take a suite of 25 applications specially designed for the Palm OS and move them over to work on Symbian OS in a week "The key was that the developers did not have to rewrite their applications of their device interfaces -- they could just use VB and our device definitions," Tyburski said.

"And that's where Java falls down on their portability religion. Java's portability relies on following lowest common denominator, which means you can only use a limited set of tools and so you can't build the exact application you want. There are always compromises and trade-offs, and even then, many times I've seen a Java developer get to 80% of where he wants to be, and the tool just runs completely out of gas."

Aside from tools and uniform deployment, AppForge also offers a taste of what might be called mobilizing Best Practices.

For instance, on the topic of "Should a mobile cell phone work from the Web or with the web," Tyburski has the following insights:

"Having a full [web] client mode is not the way to go. What we learned was that dynamic information is not something you want to have to go out and get just at the time you need it. The Web is not designed to be used that way; [because] it can be unreliable and the protocols can be slow," Tyburski said.

"Instead," he added, "what you want to do is use a drip-synch type approach, where you update your local memory or cache once or twice at day, say at midnight, and then the data you need is stored locally. That means when you need to access it, you can get at it in 30 seconds or less, and you wouldn't be able to guarantee that kind of access if you had to go out to the Web and browse for that."

AppForge also comes with a full suite of tools and guidelines for designing your UI to fit your chosen device(s). In specific, AppForge controls mimic the device user interface in the Visual Studio .NET IDE, allowing you to design, implement and debug your application just as it looks on the device. Other notable UI features include:
  • Support for full 24-bit color, and logical system colors;
  • Native device menu support;
  • Support for multiple graphics file formats, including BMP, JPEG and PNG;
  • Native, TrueType or AppForge multi-platform fonts, including a utility that converts licensed TrueType fonts to AppForge multi-platform font;
  • A rich set of user interface controls to provide maximum flexibility in designing your user interface, including buttons, listboxes, textboxes, grids, graphics, sound and video;
  • Custom control creation through the widgets; and even
  • Ability to control a devices' built-in camera.

  • AppForge also comes with sample code snippets, as well as full-blown applications, such as for PIM, inventory, barcode input/output and applications requiring signature. Licensing is on a per-device basis.
    Devs can sign up for a free 15-minute Crossfire demo from AppForge.