y now, it’s certainly no secret to anyone that Flash is a successful delivery option for animation and interactive content on the desktop. Flash content can be distributed in its own standalone player, which is said to be available to almost 98 percent of Internet viewers. With the desktop delivery market well in hand, Adobe has its eyes on the mobile market as its next big stomping ground.
Flash Mobile, a generic categorization of all use of Flash on mobile devices, is a segment of the Flash Platform?an even more generic categorization of all use of Flash on all devices. Don’t let the marketing speak, or visions of Big Brother, fool you. The idea is to achieve a level of Flash support analogous to the degree of support for JPG or other common formats. In the case of the feature-rich Flash technologies, however, it’s no small challenge to get content working as universally in the mobile space is it does on the desktop.
To accomplish this feat, Flash Mobile is currently loosely divided into two major camps: use of the Flash Player for devices with more capacity and processing power, like PDAs, and use of Flash Lite, Adobe’s player for lighter devices such as phones.
Flash Player for Mobile Devices
While there are plenty of good reasons to want to deliver Flash content to mobile device users, it’s important to remember that versions of the Flash Player for mobile devices?known as Flash Lite?lag behind their desktop counterparts. Generally, some features available to desktop players may not be available to mobile players, but that is to be expected. Regardless, when developing content for mobile devices, you should code to the version supported by your target device.
Currently, there are two mobile versions of the Flash player. The most widely used is Flash Player 6 for Pocket PC. A standalone player, this engine supports most Pocket PC devices and most features up to Flash 6. A version 7 player for this market is currently being considered and public queries have even been made at the developer relations level to gauge interest. However, no firm plans have been announced about future versions.
A second player, for the Palm OS, is also available with significant caveats. To begin with, it only supports Flash 5 but, more importantly, it is only available for the now-retired Sony CLIÉ line of Palm devices, much to the chagrin of Palm owners everywhere.
In the mobile space, Macromedia pursued (and Adobe is still pursuing) a course that is quite different from its desktop saturation approach. Mobile device manufacturers must license a Flash mobile technology to make players available for a specific platform, a strategy that many pundits have blamed for a slower advancement of Flash in the mobile space.
Whether or not that may be true, it is undeniable that Flash provides a compelling delivery platform for multimedia content over handheld devices and the small size of its players is a key driver. In this article, I’ll show you what you have to do now to create applications for the mobile Flash players using Adobe’s Flash Lite IDE and what you can expect in the near future with Flash Lite 2.0.
Flash Lite 1.1 for Mobile Devices
If you are a happy Flash 8 user and are frustrated at the prospect of dumbing down your files to run on a Pocket PC, hold on to your hat. The currently available version of Flash Lite, version 1.1, supports… wait for it… Flash 4. Goodbye ActionScript, hello Timeline! That’s an exaggeration, as you’ll soon see, but it’s not far from the truth. (See Figure 1 for a sample app developed in Flash Lite 1.1.)
|Author’s Note: For deployment, remember that today’s players for both the Pocket PC and Sony CLIE devices you must develop to Flash 6 and Flash 5 features, respectively.
|Figure 1. Big Apple: This NY tourism demo is an example of timeline tweens and simple frame navigation that are the basis of most Flash Lite 1.0 and 1.1 files..
For developers new to Flash, and especially for those new to ActionScript, that might not be a big jolt. Experienced Flash developers, however, may find it tough giving up all the tools at their disposal to go back to the menu-driven “scripting” days of yore. Many have said as much and have delayed entry into Flash Lite development for this reason. These folks prefer to wait for the imminent release of Flash Lite 2.0, which, as you will soon read, will offer more coding flexibility.
Approaching the idea from a practical standpoint, however, it helps to consider a few things. First, a tiny player size is very important when it comes to handset devices. The same discretion hindering the introduction of weighty features to the Flash desktop players applies even more so to the development of Flash Lite. Second, despite the point release of the current version, Flash Lite is still a “1.0 product,” if you will, and most developers still prefer to have the option of working under constraints than not working with Flash mobile at all. That’s the price of being an early adopter.
Having said all that, and for those of you who don’t have enough experience with Flash to be weighing the pros and cons of when to jump in, Flash Lite 1.1 is still the little engine that could. Despite the Flash 4-compatible technology base, Flash Lite 1.1 can still do quite a bit more than simple timeline animations. Feature highlights include:
- Access to device-specific features?Flash Lite allows developers to create a more immersive experience for the user by accessing device-specific features such as monitoring signal strength and battery level, controlling vibration (where applicable) and even dialing phone numbers and sending SMS messages directly. Not all features work on all devices.
- Network Access and Connectivity?Flash Lite content can use getURL() to load compatible data from a server using HTTP (http:), or Secure Sockets Layer HTTP (https:), send email using mailto:, and dial a phone number using the mobile tel: protocol. (Additional functions loadMovie(), loadMovieNum(), loadVariables(), and loadVariablesNum() can also be used to load compatible data and SWFs.)
- Enhanced Audio Support?In addition to the MP3, WAV, and ADPCM audio formats familiar to desktop Flash developers, Flash Lite adds event and streaming sound support for SMAF (Yamaha chip sets) and MIDI (local/event only). Hardware support for these audio formats is used when available, and software picks up the slack in other instances.
- Multiple Text Format and Font Options?Static, Dynamic, and Input text elements are supported, using native device text input models (including double-byte IMEs). Both embedded and device fonts are supported and are an important part of file-size optimization decisions.
- Navigation and Key Events?Support for standard key input (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, and #) is augmented by support for the Select key and device-specific support of 2-way (Up and Down) and 4-way (Up, Down, Left, and Right) navigation keys. The Up, Down, and Select keys correspond to the Shift+Tab, Tab, and Enter keys on the desktop versions of Flash Player. Developers can also program the Soft Keys (the context-sensitive left and right buttons immediately under, and labeled by, the screen).
|Figure 2. Little Apple: The NY Tourism demo is seen here running, in the Flash 8 Professional emulator, on a Nokia 6680.
Another interesting thing about Flash Lite is that it supports SVG-T (or Tiny SVG, for those who place their adjectives before their nouns). SVG stands for Scalable Vector Graphics and is a W3C standard (part of 3GPP, for those keeping track) developed to render vectors without proprietary technology. This is not big news from a Flash designer/developer standpoint because SVG is a significantly small subset of what even Flash 4 can do, and SVG-T is a (tiny) subset of what SVG can do. But from a Flash Lite growth standpoint, it’s important. Adding support for SVG-T means that OEM decision makers can license Flash Lite both for delivering Flash content as well as rendering SVG content. This makes it even easier to justify Flash Lite as an option and will, ideally, speed adoption of the player in future devices.
Flash Lite is available as an integrated component of mobile browsers from Access, Opera, Espial, Ant, Microsoft, and OpenTV, among others. But it also exits as a standalone player and as an integrated part of the device OS, with support varying from device to device. This allows OEM developers to provide custom user interfaces based in Flash as well as offer standard content playback. As a result, the tiny Flash Lite player is popping up in all sorts of unexpected places including more traditional consumer electronics devices.
Flash 8 Professional is recommended for developing Flash Lite content. It has an impressive array of templates for supported devices, and an even more impressive emulator that allows you to see your content in a skin of the target device, as seen in Figure 2. Most supported devices are included in the emulator. Newly supported devices will be made available through Flash 8 updates, one of which has already been released. A link to the first update can be found in the Additional Resources section of this article (see left column). The emulator is a critical feature that helps you ensure that your Flash content runs as expected on virtually every device that you care to investigate.
Flash Lite 2?The Future of Flash Mobile
The great news is that Flash Lite 2 is already in public preview release. Version 2 brings Flash Lite closer to parity with current desktop players by supporting Flash 7 content and object-oriented ActionScript 2.0. Here are some feature highlights:
- Enhanced Support for Loaded Assets?External asset loading is further enhanced with the support of images, sound, and video based on the codecs supported by the target device. It is important to note that FLV is not supported in Flash Lite 2.
- XML Support?External XML files are now supported in the same manner as Flash Player 7 on the desktop.
- Persistent Data?Local Shared Objects are supported for persistent storage of preferences, high scores, and similar data.
- Text Enhancements?Text color, size, and other properties can now be modified at run time, and Unicode and right-to-left languages such as Arabic and Hebrew are also supported. It’s important to note that CSS is not supported in Flash Lite 2.
- ActionScript Drawing API?Shapes can be generated on the fly with ActionScript.
- Synchronized Device Sound?Animation can now be better synchronized with audio formats such as MIDI, SMAF, etc.
In its current preview release, a standalone development version of the Flash Lite 2 player is available for supported Symbian Series 60 devices from the Macromedia Online Store. Normally, it will retail for $10 for any supported phone that does not have the player pre-installed. During the preview, however, it is free. Like Flash Lite Player 1.1, Flash Lite Player 2 is locked to the IMEI (International Mobile Equipment Identity) of the device. Currently, the preview release is Windows only and available only for select Nokia devices. The final version is expected to ship later this year.
Now or Later?
Choosing to develop for Flash Lite now, rather than waiting for the upcoming update to Flash Lite 2, is a decision only you can make. While it is true that Flash Lite 2.0 will be more powerful and easier to work with, especially to those with ActionScript experience, here are some things to consider.
First, your comfort level with the Flash environment and ActionScript may make Flash Lite 1.1 a perfectly reasonable entry point. Second, Flash Lite 2 isn’t out yet. Even early adopters will need to deal with preview release software that is not yet cross-platform and still has issues to be worked out. So, if you want to start developing now, Flash Lite 1.1 is your only option.
Most importantly, perhaps, is the fact that Adobe maintains that over 45 million devices have already shipped with Flash Lite 1.0 or 1.1 from companies including Nokia, Sony Ericsson, Samsung, Reigncom, NTT DoCoMo, and KDDI, as well as others in a wider variety of industries, including traditional consumer electronics. Since most mobile devices do not support software upgrades, it is expected the Flash Lite 2 will only be available in newer devices, or as user-installed standalone players where supported. That leaves an awful lot of Flash Lite 1.0 and 1.1 users out there needing content.
FlashCast: Serving Flash Lite Since…
One quick final note is to look into FlashCast. FlashCast is an OEM client-server option that resides on mobile handsets, utilizing the Flash Lite runtime engine to receive server-driven channels of content. This push technology keeps time-sensitive content like stock prices, weather, and so on up to date. Mobile operators run FlashCast servers, so it is unlikely that an average developer will be interfacing directly with the server. However, FlashCast could provide another outlet for Flash Lite content developers.
I haven’t seen a lot of activity surrounding FlashCast in recent months, but that may be because carriers are still working out their adoption decisions or waiting for Flash Lite 2. It’s probably too early to tell how successful FlashCast will be, but if you didn’t already know about it, you do now.
Where to Begin?
If you haven’t already decided to wait this one out, perhaps the best way to get your feet wet is to gain some experience developing Flash Lite 1.1 content. Owners of Flash 8 Professional can develop Flash Lite 1.1 files from templates that ship with the software, and can emulate any supported device at no additional cost. (See information regarding the device profile update elsewhere in this article and in the Additional Resources section, left column.) This will allow you to see if working in a Flash 4 world is for you.
The biggest barrier to a happy developer may be your own phone. Emulation is fine, but there’s nothing like the hands on feeling of seeing your work in action on the actual device. If you don’t have a compatible phone, you may not find the work very satisfying. I, for example, am one of the Treo 650 owners endlessly irritated that no further player work was done for the Palm OS. If you’re in the market for a new phone, however, it’s not a bad idea to add Flash Lite support to the list of considerations when choosing a model.