As I wrote in my earlier article, there's a lot to like about Flash and SWF. It could be, for example, a good choice for developing embedded and mobile devices. I'd like to walk you through what Flash has to offer and what options exist for developers interested in this market.
There are two main technical reasons to start thinking seriously about Flash development for embedded and mobile devices: new software and better hardware. If you’ve been following the Flash scene recently, you know that these applications of Macromedia’s flagship technology have become even more interesting with the release of the Macromedia Flash Player 5 for Pocket PC 2002 devices. It supports MP3, ActionScript scripting, XML, and other essential features.
Developers can now use Flash to write interactive applications that communicate with remote servers. Coupled with the new network connectivity features of embedded and mobile devices, it's now possible to write complex business applications for data access, entry, and processing on the move. Add to that the new multimedia and animation features, and this combination of technologies could make Flash a very interesting solution for developers.
Even better, the Pocket PC 2002 is not the only hardware platform capable of running Flash applications. The Player software is also available for Microsoft Television, Microsoft Windows CE .NET, and Microsoft Windows XP Embedded. To keep things in proportion, and avoid a Microsoft–only view of this interesting area, I should also add that Flash Player software is available on the Sony PlayStation 2 game console, Nokia 9200 Communicator mobile phone, Sega Dreamcast game console, WebTV, Sony eVilla, and Intel Dot. Station. The size of that market is now big enough to interest even those developers who typically steer clear of mobile applications.
Isn't the plethora of devices a problem? Not really. Today, all developers need is a copy of the Flash MX authoring application, the device on which they will test their application, and some literature. The applications, if designed properly, should run on all platforms without modification. I say "if designed properly" for a good reason, because not all devices on the market today are capable of running the latest incarnation of the Flash Player for mobile devices, and not all devices capable of running it have the same hardware configuration. However, because most embedded and mobile devices are now quite powerful contraptions, this is not as much of a problem as one would think.
As usual, the place where mobile applications shine are the vertical markets, mobile data acquisition, and remote database access. Vertical markets used to be thought of as niche markets cluttered with the carcasses of startups that failed to meet their promises. The reason for that were high entry prices (developers had to pay good money for the development kits, test hardware, and licenses to distribute their software on the new hardware) and proprietary platforms that were incompatible with the rest of the world.
But the world has changed and developers can now simply order the basic components online without leaving their offices, without signing silly NDAs, and without paying hefty license fees. A complete development environment of that sort (including desktop and embedded or mobile device, software development tools and books) can be bought for less than $5,000.
Of course, if you're already using Flash, then your cost is just the cost of the device for which you are developing. In the case of devices that conform to the Pocket PC 2002, or other embedded or mobile devices, the initial cost of devices can be zero, because Microsoft distributes software development kits and device emulators for free. The final testing has to be done on a real device, anyway, but the emulators help to lower the cost of development for larger teams where it is too expensive to give everyone their own device to play with.
With the Flash Player available for a great majority of embedded, mobile, and desktop hardware platforms, the developers are no longer tied to any single hardware. For vertical markets, this benefits the developers and their clients, because neither side will be left in the cold if the device they choose for a particular application doesn't survive on the market. This has to be a good thing, because it will lower the cost of embedded and mobile applications for their users. Consequently, we should see more such applications outside their original niche markets.
Using Flash Player as the target platform, developers can deploy the same application on embedded devices, mobile phones, ATMs, TV, and full–size desktop workstations. This is a tempting way to achieve cross–platform compatibility and scalability of applications. Of course, the small screen resolution and limited input options of mobile phones or TV appliances will be an important limit on the complexity of the interface of these applications; this will not be a problem on devices with larger screens. And besides, the simpler the interface, the better.
If you want to see what kinds of applications can be built for embedded and mobile devices, I suggest you visit the apps section on flashenabled. The quality of the serious applications (city maps, medical references) is high. Even more information about Flash on Pocket PC can be found on Pocket PC Flash. Both sites are run by coauthors of an excellent book, Macromedia Flash Enabled: Flash Design & Development for Devices. For official information about the Macromedia Flash Player, the Pocket PC Player site is the best place to start. There you can download the player itself as well as additional tools for Pocket PC. Microsoft, too, has a site dedicated to Pocket PCs and embedded devices running its embedded and mobile flavors of Windows.
Even though the Flash Player is quite a powerful platform by itself, it can use help from Java Micro Edition from time to time, so it is worth visiting Sun Microsystems Java Micro Edition (JME) site, as well as IBM's own WebSphere Studio Device Developer site. Also, places like the macromedia.flash.handhelds newsgroup, Ultrashock.com's Flash & Devices forum, and Flashkit are great places to discuss Flash on devices, find help, and fame.
Another interesting site is Pocket PC Passion, which, while not focused on Flash alone, keeps an eye on everything that's happening in the Pocket PC world. The site is a real eye opener for anyone who's still discarding mobile PCs as a passing fad.
When Web sites are no longer of help, there are three books that ought to be in every Flash developer's library:
These three books ought to be enough to answer most developer and management questions. I especially recommend Flash Enabled and ActionScript to anyone contemplating Flash development on embedded and mobile devices. There's a lot of essential information packed into these two books and I cannot imagine working without these books. The JavaME book will come in handy when you will want to go beyond the functionality of Flash Player.
The next piece of the puzzle is the software (the links can be found earlier in this article) and the hardware. Fortunately, the cost of mobile devices is now lower than ever. New, general-purpose mobile devices can usually be bought for less than $500, while more rugged, specialized handhelds or pocket computers can cost around $2,000 per piece depending on their purpose, shock and water protection, or additional equipment (GPS, bar code scanners, and so forth). The prices of embedded hardware are always a secret, as these are usually made to order.
Developers with limited budgets, can usually find good deals on eBay, where older hardware still capable of running Flash Player 4 can be had for reasonable prices. Also, liquidations and surplus sales can be a good source of cheap hardware of all sorts.
So, summing up, there's really no excuse now not to try your hand at Flash development on embedded and mobile devices. We have hardware, software, and plenty of easily available information. What are you waiting for?
Jacek Artymiak started his adventure with computers in 1986 with Sinclair ZX Spectrum. He's been using various commercial and Open Source Unix systems since 1991. Today, Jacek runs devGuide.net, writes and teaches about Open Source software and security, and tries to make things happen.
Return to the Web Development DevCenter.
Copyright © 2009 O'Reilly Media, Inc.