AppForge Crossfire 5.0
Write Once, Run Anywhere on the Most Popular Set of Mobile Computing Devices ... Really!
By Mike Riley
Microsoft's Mobile Internet Toolkit is a slick VS .NET addition that can deliver a Web-based experience optimized for the mobile client calling the application. Unfortunately, that scenario only works in a connected state. The Compact .NET Framework resolves this restriction for the Pocket PC/Windows CE platform, but doesn't even attempt to provide a framework for non-Microsoft mobile platforms. Although this works in an all-Microsoft world, few organizations (and especially large enterprises) have a homogenous single-vendor environment - especially when it comes to mobile communication devices.
AppForge, a company that has for several years been building bridges between Microsoft Visual Basic syntax and non-Microsoft mobile computing platforms, has released their latest tool to serve not just one, but three alternative platforms using a single VB .NET syntax codebase. The result is quite impressive. In fact, executing a Crossfire application in any of the disparate targets can make a developer downright giddy, anxious with the new world of catalyzing opportunities.
The Development Environment
Crossfire lives within the familiar Visual Studio .NET IDE and leverages all the functional aspects the IDE provides (see Figure 1). However, developers will need to obtain emulators for the various mobile platforms from the respective product companies to facilitate design and debugging (see Figure 2). Of course, the application can be deployed directly to the device for testing; but as any developer who has done mobile device development knows, this quickly becomes a painfully slow cycle. Imagine connecting a Pocket PC, downloading the application, disconnecting the device, executing the application, noting any issues, and repeating this cycle for three devices, each with their own display limitations. Obviously, the emulator path is the most efficient route.
Figure 1: Crossfire resides within the familiar Visual Studio .NET IDE, but requires its own set of proprietary widgets for constructing applications for the supported mobile devices.
Figure 2: The Project Settings dialog box allows easy modification of deployment and packaging parameters. Note that target emulators - including the Palm, Nokia, or Sony Ericsson - have to be obtained and installed separately from Crossfire.
Once the respective emulators are installed, they need to have AppForge's Booster virtual machine (known as MobileVB in prior versions) installed on them (this goes for any supported mobile device expected to run Crossfire applications, as well). This virtual machine's footprint ranges from roughly 500KB to 1.3MB, depending on the platform. And although not every function in VB .NET is supported in Booster, AppForge intelligently selected the most appropriate for the mobile environment. This means that VB .NET developers will have constructed and executed their first Crossfire application literally within minutes after installing the product.
Although the documentation installed (see Figure3) into the Visual Studio .NET IDE Help system is adequate for basic orientation, developers will quickly find that they need to download the latest set of PDF-compiled documentation from http://www.appforge.com/dev/usersguide.html to fully understand the programming facets that Crossfire operates under.
Figure 3: Excellent product documentation is electronically provided. This page details the required installation of the AppForge Booster on any device intended to execute a compiled Crossfire application.
Drag-and-drop controls are what made Visual Basic such a winning Rapid Application Development (RAD) environment, and Crossfire extends that RAD metaphor with over 30 unique controls, from the standard Label, Radio, TextBox, ComboBox, and ListBox controls to GraphicButton, Shape, and Timer controls, to the astonishing Camera (for the Sony Ericsson P800/P900 phone), Scanner, Movie, Filmstrip, and SpriteField controls. The five sample projects that ship with the product showcase these controls and do a great job of further instilling excitement in the developer. My neurons were popping like firecrackers with the number of new applications I could author for specific platforms whose SDK's I had no desire to learn.
A number of other advantages work toward Crossfire's favor. AppForge spared no expense in taking on the hard problems such as database synchronization (see Figure 4) and TCP/IP communications. Although retrieving Web content is more verbose than constructing a System.Net.WebRequest object, it is not overly difficult. In fact, the StockQuote example contains code that can be lifted to serve many AppForge.Net.ClientSocket calls.
Figure 4: The AppForge Universal Conduit Wizard configures established ODBC connections to a Palm database file for easy data synchronization needs.
The most impressive features I found with Crossfire were its cross-platform visual controls (see Figure 5). Conversion programs for fonts, graphics, and even video create proprietary image and video files for the Crossfire application environment. Using the AppForge Font Viewer and Font Converter utilities, any TrueType font can be converted to any of the supported platform (see Figure 6). However, the style and size of the font converted can spell the difference between failure and success. For example, I discovered that most fonts need to be converted from the 20 point size or higher to have enough bitmap data to be entirely legible on screen.
Figure 5: The Crossfire toolbars provide quick access to conduit configuration; database, font, graphic, and movie conversion utilities; and deployment configuration settings.
Figure 6: AppForge bundles conversion utilities for fonts, graphics, and even movies to provide a rich visual user experience across multiple mobile device platforms.
As for the video converter utility, it works only with uncompressed AVI files, typically those used by Windows to show a file flying from one folder to another. The video quality is hardly intended for lengthy playback; it is best used for quick, frame-based animations. I did encounter an annoying bug when using the converter. The text boxes listing the path for the file names isn't read when converting files. Instead, files must be manually selected via the Select button for the proper file paths to be recognized. This is a minor issue, especially when considering that the alternative effort to bring such features to fruition on say a J2ME-supported platform, and even the Pocket PC's Compact .NET Framework, isn't as intuitive when it comes to this level of control.
Crossfire is one of the easiest ways to deploy intelligent client applications on four very different mobile platforms. Although the Booster virtual machine installation adds more overhead to the requirements, its weight is inconsequential compared to the weight of synchronizing the proprietary SDK's development practices for each respective platform. The solution may be expensive overkill for an easier way to program a rich-client application for the Palm OS, for example, but if that same logic must run unaltered on a Pocket PC and a Nokia Series 60 phone, Crossfire is without question the fastest way to achieve that goal.
Web Site: http://www. appforge.com
Price: US$1,000 (US$1,070 for boxed version)