Last month, AppForge, Inc., announced a new version of its handheld application development system, AppForge 2.0. AppForge is a Visual Basic IDE add-in that allows developers to create Palm applications in VB. You may remember that I looked at AppForge in an article earlier this year. Figure A offers a look at the AppForge IDE.
|The AppForge IDE|
I liked most of what I saw in the product then, with the exception of its gargantuan run-time library and lack of support for some Visual Basic language features. At the time, I would have rated the product somewhat behind its chief competitor in the RAD Palm development tool space, Satellite Forms. Does this new version change things?
Smaller Booster and changes various and sundry
It would seem that someone at AppForge, Inc., agreed with my assessment that 335 KB is simply too much storage space to sacrifice for the tool's run-time library, or Booster. Even though the Booster seems to have grown a tad larger, it is now modular, meaning that you can, if you want, install only the parts of the library you plan to use in your applications. The Booster's newfound modularity isn't its only enhancement, though, as you'll see in a bit.
My other gripes with AppForge had to do with the paucity of VB language features it supported and the trouble it had with overlapping controls, or ingots, on a form. These areas have been addressed as well, with AppForge now supporting the following new language features:
- User-defined classes
- VB's WithEvents keyword
- Error handling with VB's Resume and Resume Next constructs
- The Double and Currency data types
That's right, you can now create your own event-enabled classes for use with AppForge.
AppForge also better leverages the Visual Basic IDE, allowing menus to be created and edited with VB's menu editor. Ingots now support a Zorder property, so you can move them in front of or behind other ingots on a form. You can also create applications and their icons in color to satisfy your users of non-color-blind handhelds.
The need for speed
Development tool vendors have an unfortunate tendency to trumpet speed increases in their new versions. AppForge, Inc., is no different. Its product information page proudly proclaims that version 2.0 has "7 times faster execution!" I'll try to contain my enthusiasm on this point, though, and just say that in my limited experience with an evaluation copy, AppForge does feel a bit faster.
Of course, that perception could come from the Palm m100 I had to borrow in order to run an AppForge application. It seems that with version 2.0, AppForge now supports only Palm handhelds with more than 128 K of dynamic heap space. That may or may not be a problem for you, but it was a requirement that sent my poor old Palm III running for the hills. Maybe it's time for me to upgrade?
A three-platform balancing act in a small town
Thus far, I've neglected to mention what may be the two biggest pieces of news surrounding this new version of AppForge: multiplatform support and Piedmont.
First off, AppForge now has versions of its Booster run time for certain makes of PocketPC as well as for Palm OS handhelds. In theory, the same code can be compiled for each platform, with the Booster handling any platform-specific quirks. In practice, though, only HP's Jornada and Compaq's iPAQ are currently supported, and both of these lack certain features found in the Palm Booster. The problem here almost certainly is that PocketPCs are far less standardized than Palm devices and can vary greatly from vendor to vendor. Given time, I'm sure support will become more uniform and cover more vendors.
Can you tell me how to get to Piedmont?
There's also this enigmatic thing that AppForge, Inc., calls Piedmont. Piedmont is the name of a component technology for AppForge that, conceptually at least, bears a striking resemblance to COM—APIs are exposed over well-defined interfaces that are described by a language known as Piedmont Interface Definition Language (PIDL), which has a very XML-like syntax.
One of the things Piedmont makes possible is a clearly documented structure for creating third-party add-ins and components for AppForge, a la Visual Basic's VBX, and later, OCX, controls. This third-party component market was missing from AppForge the last time I looked at it, so if it takes off, it could help the package's acceptance considerably.
AppForge, Inc., isn’t selling Piedmont as just a component creation tool. The company seems to be leveraging it as an application development platform as well. As such, Piedmont appears to be a fairly powerful platform, providing asynchronous calls and events, as well as insulating an application from the vagaries of its host hardware. Whether today's handheld computers are up to the task or this will become just another case of software driving us to faster hardware remains to be seen. Either way, AppForge, Inc., has been working hard to get independent software vendors on board and using, or at least supporting, Piedmont in their products.
No matter which way you slice it, AppForge 2.0 is an improvement over what was already a great product. It's now easily on even footing with Satellite Forms. In fact, AppForge’s support for multiple platforms even gives it an edge, although Satellite Forms still has a larger and more mature component library. The new Piedmont component technology is an exciting addition to the handheld programming world and has the potential to become revolutionary. You can, and should, check out the evaluation version of AppForge 2.0 here.
What do you use?
Do you have a favorite Palm development tool you’d like to see us talk about in the Pocket Programming column? Send the editors an e-mail or post a comment to the discussion.