Adobe - Developer Center : Working with Nokia Series 40 Flash Lite content – Part 1: Capabilities overview Accessibility

Mobile and Devices Developer Center

 

Working with Nokia Series 40 Flash Lite content – Part 1: Capabilities overview

Scott Janousek

Flash Mobile Evangelist
scottjanousek.com/blog/

No, you are not day dreaming ... it's a fact: a significant number of Nokia handsets preinstalled with the Flash Lite player are now publicly available and shipping throughout the world. Yes, we are talking millions of shiny new Nokia devices that are Flash Lite enabled, folks.

What's more, in addition to the existing Nokia Series 60 Flash Lite devices that have been circulating in the marketplace (for quite some time, mind you), this also now includes a staggering amount of newly introduced Nokia Series 40 consumer-level devices.

At the time of this writing, these devices include the Nokia 6125, 6131, 6136, and 6233 handsets models. All of these Series 40 Platform devices currently have Flash Lite preinstalled. To be more specific, all of these specific devices currently support Flash Lite 1.1 content straight out of the box with no user installation steps required.

However, not only do these Series 40 handsets support browser and standalone Flash Lite content typically created for Series 60 (S60) devices, but also additional content types, such as wallpapers, screen savers, and sub-LCD content. In fact, my goal over the course of the next few articles is to explore some of these aforementioned Flash Lite content types on the Series 40 Platform.

By the end of Part 1, you will be acquainted more with Flash Lite 1.1 as it coexists on Series 40 handsets. Here I provide a quick overview of Flash Lite for Series 40 devices. This includes capabilities, limitations, as well as some overall considerations to make when developing content for the Series 40 Platform.

In subsequent articles, you'll learn how to design, develop, and deploy Flash Lite 1.1 wallpapers, screen savers, as well as sub-LCD content for Nokia Series 40 devices.

Note: At the time of this writing, the Nokia 5200 and 5300 devices are available in some regions. These Series 40 handsets support Flash Lite 2. I hope to address Flash Lite 2 development with the Series 40 Platform in a future article.

Requirements

To follow this article you will need the following devices and software:

Nokia PC Suite 6.x (or later) — recommended for Windows users

Devices (either of the following):

Sample files:

Prerequisite knowledge

Previous Flash Lite experience or familiarity with mobile terminology.

Nokia Series 40 Flash Lite–enabled devices

The Nokia 6125, 6131, 6136, and 6233 (see Figure 1) all are consumer-level devices that cater to a different consumer audience than the typical users of Series 60 smartphone devices.

Nokia 6125 Nokia 6131 Nokia 6136 Nokia 6233
Nokia 6125 Nokia 6131 Nokia 6136 Nokia 6233

Figure 1. Partial list of Nokia Series 40 devices that support currently Flash Lite 1.1

The Series 40 Platform is aimed at users who desire a handset that has a smaller footprint but yet retains much of its voice, data, as well as multimedia capabilities found in higher end Nokia model handsets. For all intensive purposes, these are "mass market" type phones.

Note: For more technical information and the hardware specification on these devices, visit the Series 40 Platform page on Forum Nokia.

In terms of the Flash Lite player itself, the differences between devices (except the 6233 due its apparent lack of a secondary screen) are not drastically different from one another. In fact, the Flash Lite player provides a consistent runtime across this series of devices when it comes to wallpapers and screen savers, as well as browser and standalone applications.

In the first set of articles, I'll focus solely on the platform's multimedia capabilities. This means utilizing Flash Lite 1.1 to create content for wallpapers, screen savers, and sub-LCD modes.

By leveraging Flash on these devices, it is extremely easy to quickly generate multimedia content such as wallpapers, screen savers, and sub-LCD content. In the upcoming tutorials, I'll actually walk you through the content creation process for each of these specific content types.

Also as you'll see in subsequent articles, moving content such as screen savers and wallpapers between devices is, for the most part, a relatively easy and straightforward process due to the portability that the Flash Lite player provides.

However, before you start creating content for this platform, I must first review some of the specific capabilities and limitations found on this platform.

Nokia Series 40 Flash Lite capabilities overview

The underlying operating system on Series 40 devices is fundamentally different than that found on Symbian-based Series 60. In fact, the Series 40 Platform devices use a proprietary real-time operating system, and it is not even Symbian-based. Instead, it is Java-based. It is an operating system developed by Nokia.

Apparently, due in part to this, the Flash Lite 1.1 ActionScript on this set of devices has some innate restrictions that are not present with Flash Lite on S60 devices. It's important to understand these capabilities and limitations before you start to design and develop wallpapers and screen savers for Series 40–based devices.

These differences may very well have an impact on your plans for the content you had in mind for development on Series 40 handsets. They could also impact your porting efforts from one device to another within Nokia Platforms (Series 60 to Series 40, for example). It's important to take all of this into consideration when designing and developing Series 40 wallpaper and screen saver Flash Lite content.

Table 1 shows a breakdown of the Flash Lite 1.1 API command availability within the Flash Lite 1.1 Series 40 devices (specifically, the 6125, 6131, 6136, and 6233).

Table 1. FSCommand2 functions on Series 40 devices (6125, 6131, 6136, 6233)
FSCommand2 Available? FSCommand2 Available?
setSoftKeys Yes getPowerSource No
resetSoftKeys Yes getTotalPlayerMemory No
Launch No getFreePlayerMemory No
getLanguage Yes FullScreen Yes
getVolumeLevel No getDevice No
setQuality Yes getPlatform No
getMaxVolumeLevel No GetDeviceID No
getDateDay No getSignalLevel No
getDateWeekday No getMaxSignalLevel No
getDateMonth No getNetworkConnectStatus No
getDateYear No getNetworkRequestStatus No
getLocaleShortDate No getNetworkStatus No
getLocaleLongDate No getNetworkName No
getLocaleTime No startVibrate No
getTimeZoneOffset No stopVibrate No
getTimeHours Yes Escape Yes
getTimeMinutes Yes UnEscape Yes
getTimeSeconds Yes setInputTextType Yes
getMaxBatteryLevel No getBatteryLevel No

Note: When working with wallpaper and screen savers, limitations may also apply. For example, as I will discuss shortly, user key input is disabled for wallpapers and screen savers. So, for instance, the command setInputTextType() is disabled within these specific content types (see the Disabled player functionality section of this article) even though this property can be "polled" for a value.

From Table 1, you can see there are some restrictions in place when dealing with Series 40 content for wallpapers and screen savers with these devices (i.e., battery levels and signal strengths cannot be checked on these devices currently). Take these results into consideration as you map out your wallpaper and screen saver content for this platform and these specific Flash Lite 1.1–enabled devices.

In addition to the set of FSCommand2 functions, the results for global variables found in the Flash Lite player on our Series 40 devices appear in Table 2.

Table 2. Results for global variables on Series 40 devices (6125, 6131, 6136, 6233)
Global variables Available?
_capCompoundSound Yes
_capStreamSound Yes
_capMFi No
_capMIDI Yes
_capMP3 No
_capSMAF No
_capEmail Yes
_capMMS Yes
_capSMS Yes
_capLoadData Yes
_cap4WayKeys Yes

Note: When working with wallpapers and screen savers, limitations will apply. For example, as I will discuss shortly, loading data over a network or sending an e-mail or SMS message via a content type other than standalone mode is strictly forbidden (see the Disabled player functionality section of this article). So _capLoadData within this context is not useful for wallpaper and screen saver content types even though the property can be queried.

Capability testing tools

It is important to analyze the capabilities of your target device before starting to build content. You want to avoid as many surprises as possible before you begin.

The quickest and easiest way to do this is to run the Flash Lite 1.1 capabilities devices SWF provided with the Flash Lite 1.1 CDK (it is also available in the ZIP file provided with this article). This simple application reports back the complete capabilities for each Flash Lite–enabled device you run it on (see Figure 2).

Adobe Flash Lite 1.1 Device Capabilities application

Figure 2. Adobe Flash Lite 1.1 Device Capabilities application

Another excellent resource is the Flash Lite 1.1 capabilities and benchmark metrics application, which you can freely download and use at the Flash Mobile Forum's Flash Lite Capabilities Database website.

In addition to posting device capabilities, this application reports back some basic performance metrics for devices (see Figure 3).

Flash Lite 1.1 Device Benchmark/Performance tester

Figure 3. Flash Lite 1.1 Device Capabilities tester (actual results may vary)

You can copy both of these applications via PC Suite to your physical device to test your target device's capabilities.

Important: Running these applications within the Adobe Flash Mobile emulator or Nokia Series 40 emulator (instead of on an actual target device) will not yield accurate results.

Disabled player functionality

In addition to API limitations, it's important to talk about disabled functionality when developing within the wallpapers, screen savers, and sub-LCD frameworks.

This is functionality that is explicitly disabled and not permissible due to the way in which the content runs on the device (inline), as opposed to standalone content you may already be familiar with under the Series 60 Platform.

The following functionality is not supported for wallpapers and screen saver content running under the Nokia Series 40 Platform:

Sound

When working with wallpapers, screen savers, and the sub-LCD mode, sound cannot be utilized inside of Flash Lite content. For instance, with the devices I have mentioned, you cannot have an audio track associated with a screen saver, or play a notification sound for wallpaper. This is explicitly disabled.

Think about the user experience confusion it would cause. Wallpaper with constant ambient background music, for example, could be construed as annoying by users—not to mention a potential battery resource drain.

Sound is not an option when Flash Lite content is used as wallpaper or a screen saver (even in sub-LCD mode). The content is not running standalone but inline with the device. It could therefore impede or lead to a confusing user experience when coupled with the device user interface. Therefore, wallpapers and screen savers act as silent entities under the Series 40 devices I have mentioned in this article.

Network connectivity

The following commands are disabled when running content within the confines of wallpaper, screen saver, and sub-LCD modes:

In addition, network status commands via FSCommand2 functions are not supported. The following commands will not work on Nokia Series 40 devices: getSignalLevel, getMaxSignalLevel, getNetworkConnectStatus, getNetworkRequestStatus, getNetworkStatus, and getNetworkName.

Why disable network connectivity? Two reasons come to mind. Because Flash Lite 1.1 prompts a request dialog box, it would first disrupt the user experience while running a wallpaper or screen saver. Second, a user may be charged a fee unnecessarily for data being transmitted while a wallpaper, screen saver, or sub-LCD content is running. Both of these reasons may also combine to form a potential security risk as well (i.e., unauthorized data connections that may be unsecured and cost money to users unknowingly). At this time, network connectivity is not possible with Flash Lite 1.1 content deployed for screen saver, wallpaper, or sub-LCD modes under Nokia Series 40 devices.

User input events

Capturing user input events is not allowed for wallpaper, screen saver, and sub-LCD content. In fact, keyPress events will be ignored by the Flash Lite player while running in these specific modes.

//-- This will not work on Series 40 for wallpaper, screen saver, or sub-LCD modes
on( keyPress "<ENTER>" ) { trace( "foobar" ); }

It is not possible to capture softkeys either:

//-- This will not work. Softkeys are also inaccessible within wallpaper, screen saver, and sub-LCD modes
retval = FSCommand2( "setSoftKeys", "left", "right" );
on( keyPress "<PAGEUP>") { trace( "foobar" ); } //-- attached to a button instance on the Stage

You can catch key events only when dealing with standalone or browser modes on Series 40 devices. Neither wallpapers nor screen savers are true standalone applications (they run inline with the phone user interface on top of the operating system), so they do not support this functionality. To prevent keys from overriding the events of the phone's user interface and/or the underlying operating system, they are completely disabled with Flash Lite wallpapers, screen savers, and sub-LCD content.

Designing and developing content for Series 40

As I have already discussed, Nokia Series 40 devices support Flash Lite, including wallpapers, screen savers, and sub-LCD modes. These devices even ship with Flash Lite content preinstalled on the device itself. Look under the screen saver folder in Menu > Gallery > Graphics > Screen savers for sample content on some of these devices.

Here I discuss some of the considerations you need to make when developing this sort of content for Series 40 devices. These are merely suggestions and not actual rules of thumb when developing wallpapers and screen savers for Series 40 devices.

Development considerations

First off, there are some aesthetic design issues you need to address when dealing with content other than standalone or browser modes: wallpaper and screen saver content. I'll review each of these, including the following:

Later, in the tutorials following this article, you'll employ some of these considerations when designing and developing wallpaper and screen saver content.

Fonts and text

Generally speaking, you don't want to use text when creating wallpapers because it may pose a problem with existing content on the screen. Text that overlaps other text can lead to a poor user experience. However, with careful positioning, you can avoid most of these issues if you absolutely must use text within a wallpaper.

Just be aware that the device may be configured to display header and footer information (see Figure 4). On Series 40 devices, the header typically contains battery, time, date, carrier name, signal strength, as well as other potential assets that may be displayed within wallpapers.

The footer typically contains the navigation control elements for the device. Color choice and asset positioning are critical to a more readable user interface (see the right image in Figure 4). It may also be prudent to use fonts or text that has a border surrounding it. This may lead to better readability in the case of wallpapers. Note that the sample image with white text and gray bar is easier to read than the black text on blue (see Figure 4).

Which Series 40 wallpaper is more readable? Which Series 40 wallpaper is more readable?

Figures 4. Which Series 40 wallpaper is more readable?

Screen size and resolution

Each Series 40 device has its own screen resolution for both the main and secondary screen (also called Mini Display). As you can see in Table 3, this is dependent on the device model.

Table 3. Supported screen resolutions for the main and sub-LCD screens
Model # Main display Mini Display/sub-LCD
Nokia 6125 128 x 160 96 x 65
Nokia 6131 240 x 320 128 x 160
Nokia 6136 128 x 160 96 x 65
Nokia 6233 240 x 320 N/A

If the dimensions of Flash Lite content differ from what is available on the actual device, scaling will occur (see Figure 5). This is possible because the Flash Lite content is being rendered in a vector format.

Rescaling a vector-based image from 176 x 208 (left) to 128 x 160 (right)

Figure 5. Rescaling a vector-based image from 176 x 208 (left) to 128 x 160 (right)

However, depending on content, this automatic scaling may impact negatively on what is displayed—for instance, if there is a bitmap graphic (see Figure 6).

Rescaling a bitmap (right) to fit 128 x 160 (left)

Figure 6. Rescaling a bitmap graphic from 176 x 208 (left) to 128 x 160 (right). Note the pixelation that occurs!

The alternative to default scaling is to accommodate for both the main and Mini Display screen sizes by creating content that is set to the right proportions for each target device's display. This may mean creating multiple SWFs containing various screen sizes depending on your target Series 40 device(s). Figure 7 shows the relative screen sizes found in Series 40 devices.

Although your vector-based content should scale to the correct dimensions in most cases, you should be aware that it may be necessary to create custom-sized content for each device you plan to support if you are not using vector assets.

The bitmap example in Figure 6 is an excellent example of this. I would need to output the image with the matching dimensions for the target device, otherwise scaling would cause the image to pixelate. Changing the Stage dimensions from the original Series 60 dimensions of 176 x 208 to 128 x 160, to accommodate the Nokia 6125's primary display, would fix this problem.

240 x 320 128 x 160 96 x 65
240 x 320 128 x 160 96 x 65

Figure 7. Series 40 screen sizes relative to one another (not to scale!)

Frame rate

Depending on your content, 15 frames per second will be your approximate target frame rate for these specific S40 devices. How did I arrive at this number? By using the Flash Lite 1.1 Device Capabilities tester (shown previously in Figure 3) as well as the FPS Speedometer (see Figure 8). You can find the Flash Lite FPS Speedometer in the ZIP file download (also found in the Flash Lite 1.1 CDK).

This application helps provide a good indicator of capability of Series 40 device(s) you plan to work with. You should run this as a good "litmus test" for the kind of frames per second (fps) throughput you can expect from your target device. This number is not set in stone, however. You may need to make adjustments based on testing that you perform on content run on actual physical devices.

Using the Flash Lite 1.1 FPS Speedometer to test Series 40 device framerate capabilities

Figure 8. Using the Flash Lite 1.1 FPS Speedometer to test S40 device frame rate capabilities (actual device results may vary)

Color and contrast

Color choice is an important characteristic of content when designing wallpaper. Since wallpaper runs inline with the phone operating system, some care is needed to make sure that color choice does not interfere too greatly with user preferences. If there is a color conflict between Flash Lite content and the font color choice for onscreen information, it may impact the user experience negatively. Figure 4 demonstrated this, for example.

Pick colors that contrast nicely when dealing with wallpapers. Also, you do not typically want to use a black background because the default font color setting for onscreen text through the device operating system is also black. Use contrasting colors where at all possible.

Memory, processor, and ActionScript performance

As with Flash Lite 1.1 development under the Series 60 Platform, you need to be conscientious about the amount of memory your content is using, as well as the impact of any code or complex animation that may cause performance-hit issues. This is especially true of Series 40 devices, which do not have the "horse power" (CPU speed) found on some higher end Nokia S60 devices.

I recommend that you test on the actual physical device, both early and often, as you create your wallpaper or screen saver content. Use the Flash mobile emulator or Nokia Series 40 emulator to speed your development, but just do not forget to test for real performance metrics on actual target devices.

Tip: The Nokia Flash Lite Visual Guide has some great pointers on working with ActionScript inside of S60. Much of this also applies to Series 40 devices, so I will not cover specifics here.

File size

As always with Flash Lite 1.1 development, you're going to want to keep the size of your SWF files as small as possible. This means optimizing images and vectors to manage assets and overall content file size.

A size of less than 500 KB is recommended for most content. However your mileage may vary. It is device- and content-specific. Test your content on the actual Series 40 device to determine where the "cut-off" point is before performance and/or memory become an issue.

As a hard and fast rule, keep your content as small as possible and optimize where needed.

Animation complexity

It's generally a good idea to keep animations as straightforward as possible. Try to limit complexity in your animations for wallpaper, screen savers, and sub-LCD content.

Tip: For some useful best practices as well as tips and tricks on this, check out Introduction to Animation in Flash Lite 1.1 by Dale Rankine and James Talbot. This is an excellent resource on the subject.

Built-in Flash Lite pause timer

The most important thing to note with screen savers and wallpapers on Series 40 devices is that the Flash Lite player has a built-in timer which suspends content from playing after a certain amount of time has elapsed. This is done to conserve battery life.

Although it puts a damper on developing real-time clocks, and other such uses cases, this is a restriction that you need to be both aware of and prepared for when developing Series 40 content because it directly affects how your content will interact with users. I'll cover this in more detail when I cover walkthroughs in subsequent articles.

Content types

Now that we have covered some of the considerations you need to make when creating Flash Lite content for Series 40 devices, it's time to discuss some basic details about wallpaper, screen saver, and sub-LCD content types.

In Table 4, I have provided a summary of all the Flash Lite content types currently available for Series 40 devices. You'll note that all five content types are supported on these devices except sub-LCD for the Nokia 6233. This particular model is an example of a Series 40 device that does not have a secondary display. Hence, it not supported.

Table 4. Supported content types for Flash Lite enabled Series 40 devices
Model # Standalone Browser Wallpaper Screen saver Sub-LCD
Nokia 6125 Yes Yes Yes Yes Yes
Nokia 6131 Yes Yes Yes Yes Yes
Nokia 6136 Yes Yes Yes Yes Yes
Nokia 6233 Yes Yes Yes Yes No

Wallpaper

Wallpaper mode integrates Flash Lite content directly into the background of the phone operating system (see Figure 9). Device information is overlaid on the top of the user interface while menu choices occupy the lower bottom portion of the screen.

Flash Lite wallpaper (device info elements clearly visible)

Figure 9. Flash Lite wallpaper (device info elements clearly visible)

Because this wallpaper is part of the overall user experience, it is important to make sure that the graphics, colors, and placement thereof do not obscure or impede the user's actions.

For example, if the background were black (#000000) and the default font text set on the device were also black (#000000), this would present an issue, forcing the user to select a different color for the default font.

I should also note here that the wallpaper is present only on the default screen. Once the user navigates to within the main menu (Figure 10), the wallpaper is no longer active. In order to customize the background here, you'll need to explicitly create and install a custom Series 40 Nokia Theme (NTH file). This allows further personalization of the device user interface.

Wallpaper not active on the main menu screen

Figure 10. Wallpaper not active on the main menu screen

Screensavers

The only notable difference between wallpaper and a screen saver is the role they play on the handset. Wallpaper is an integrated part of the user experience. A screen saver is a modal application that runs full-screen. It runs until a user chooses to cancel the animation running (see Figure 11) or another low-level event occurs, such as an incoming call being intercepted or the built-in Flash Lite pause timer event fires.

There are two states to screen savers: active and inactive. The screen saver is normally activated after a user-defined timeout of user inactivity is reached. At this point, the screen saver kicks in. It continues to run until it is either interrupted by an event (such as incoming phone call) or until user intervention (i.e., a user hits a device key).

In Part 3 of this series, I'll actually step you through the creation of an ActionScript-based screen saver as seen in Figure 11. I'll also cover how to deploy it across the Series 40 Platform.

Flash Lite screen saver

Figure 11. Flash Lite screen saver

Sub-LCD

Sub-LCD is another name for Mini Display (see Figure 12), the terminology used by Nokia to refer to the secondary display of the Series 40 devices. The primary screen is referred to as the Main Display.

Both wallpaper and screen saver sub-LCD modes are supported while the device is closed and the secondary display is active. In fact, you can think of the sub-LCD content type as just wallpaper and screen saver modes that are specific to the secondary display size.

A simple screensaver running in sub-LCD (Mini-Display) mode

Figure 12. Simple screen saver running in sub-LCD (Mini Display) mode

Sub-LCD display sizes

The dimensions of the Mini Display vary. In the case of the 6131, this is 128 x 160 pixels. Other devices may differ. Refer back to Table 3 for these specific dimensions when dealing with sub-LCD content.

Potential scaling issues

Perhaps one of the biggest challenges you face when deploying to this secondary or Mini Display is scaling. It may be necessary to adjust the dimensions of the content to match those of the sub-LCD display. However, this is needed only if the specific content contains non-vector images that do not scale well. You'll need to perform some testing on your specific content to make sure scaling is not an issue for the sub-LCD display.

Typically, the auto-scaling that occurs will be good enough for your content to be displayed both on the main and secondary screens without changing the actual physical dimensions of the Flash Lite content. However, creating a secondary version of content to fit the sub-LCD dimensions usually produces the most professional looking results, and is recommended.

Color considerations

In addition to larger dimensions, the primary display of these devices supports more colors than that of the Mini Display. For instance, on the Nokia 6131, 16.7 million colors are supported on the Main Display but only 262,144 on the Mini Display.

It's important to recognize that this may impact the overall color rendering of your content. Keep this in mind when planning your screen saver or wallpaper if it will run in sub-LCD mode, otherwise some unintended color approximations may occur when it's rendered.

Where to go from here

In this article, I have reviewed some of the Flash Lite 1.1 capabilities found on Nokia Series 40 handsets. I have also covered some considerations you need to make when creating content such as wallpapers and screen savers.

Nokia has finally opened the gates to creating multimedia with Flash Lite content types such as screen savers, wallpapers, and sub-LCD content for Series 40 handsets. These are exciting times. It's time to get busy designing, developing, and innovating for these newly supported Flash Lite content types.

In Part 2 of this series, I cover how to build simple wallpaper content, including. Part 3 will cover creating a more advanced dynamically generated screen saver.

For more general information on designing and developing for mobile devices with Flash, you can always refer to the Mobile and Devices Developer Center and Flash Lite Developer Center.

Additional resources

About the author

Scott Janousek is a Flash and mobile developer working in Boston, Massachusetts. He is an Authorized Adobe Certified Instructor for Flash Lite and co-author of Foundation Flash Applications for Mobile Devices (Friends of Ed/Apress, ISBN: 1590595580). You can find out much more information, or contact him through his blog, at scottjanousek.com/blog/.