Nokia Developer Platform Architecture
Standardized and open technologies enable developers to develop and optimize portable applications across different devices using the same APIs and tools. However, mobile devices are often used in specific application areas with very different requirements. Not all technologies are available on all devices. As a result, a monolithic Developer Platform does not work. Nokia divides its developer platform into several series, each targeting a specific device market segment. Hence, the Developer Platforms are not just about enabler technologies. They are about devices and user experiences as well.
Currently, Nokia supports four Developer Platforms. The devices covered under each platform are the following.
- Series 40 Developer Platform includes mass-market phones with LCD screens and multimedia capabilities. It is the biggest platform in terms of both revenue and number of users.
- Series 60 Developer Platform includes smart phones and mobile game decks based on Symbian OS v6, v7, and beyond.
- Series 80 Developer Platform includes high-end enterprise devices based on Symbian OS v7 and beyond, with a full stack of enterprise communication software.
- Series 90 Developer Platform includes high-end mobile media devices with advanced multimedia (audio and video) features. Those devices are based on Symbian OS v7 and beyond.
Developer Platforms are not static. They have to evolve to keep up with innovations in device technologies. The Series 40 and 60 Developer Platforms 1.0 mainly apply to devices released before 2004; the Developer Platforms 2.0 apply to most devices that came out in and after 2004.
In this book, we focus on the Series 40 Developer Platform 2.0 and cover important aspects of the Series 60, 80, and 90 Developer Platforms. This approach encourages Series 40 developers to design applications compatible with higher series devices and provides a path for Series 40 developers to extend their skills. Now, let's look at the technical specifications of those platforms.
Series 40 Developer Platform
The Series 40 Developer Platform targets mass-market consumer devices with hundreds of millions of users. Series 40 devices are very important to developers due to their large market penetration. On the other hand, they also present the biggest challenge to developers due to their limited size and resource constraints. In this section, we first look at the enabler technologies that make up this platform. Then we check out the device characteristics and user interfaces of the current Series 40 devices.
Software Stack
The basic technology stack on a Series 40 device is illustrated in Figure 2-2. At the bottom, there are device hardware and Nokia's proprietary operating system (Nokia OS). The Nokia OS is closed to developers outside of Nokia. On top of the Nokia OS, all Series 40 devices support a common set of native client applications:
- Telephony applications such as speed dialing, call logs, and mobile messaging clients.
- Personal information management (PIM) applications, including calendar, to-do lists, and phonebook.
- Synchronization applications that synchronize the PIM database with desktop PCs via the Nokia PC suite.
- Application installation and management utilities, including over-the-air (OTA) download, wallpaper, and ringtone managers.
Figure 2-2 Software stack on Series 40 devices.
The common native applications are not customizable by third-party developers and hence not as interesting to the readers of this book. For developers, the key value proposition of the Nokia Developer Platforms is the support for technologies that enable third-party applications on the device. The Series 40 Developer Platform supports the following enabler technologies and APIs: the J2ME MIDP and its optional packages, WML, XHTML Mobile Profile, MMS, OMA DRM (forward lock), and OMA client provisioning technologies. The common native applications and the open API implementations constitute the base software in the Series 40 Developer Platform.
Nokia and wireless operators can also differentiate device offerings by installing "lead software," which are device-specific technologies or native applications. For example, the Nokia 6800 messaging phone for GSM networks extends Series 40 Developer Platform 1.0 with a very capable native email client; the Nokia 6255 imaging phone for Code Division Multiple Access (CDMA) networks extends Series 40 Developer Platform 2.0 with JSR-184 (Mobile 3D API).
Device Characteristics
A typical Nokia Series 40 device features a 128 by 128 LCD display with 4,096 colors. Some devices have 96 by 65 or 128 by 160 LCD screens and other color depths. It typically displays five lines of text plus headers. The keypad has the traditional alphanumeric keys, a four-way scroll key, the Send/End keys, and two or three generic soft keys. The device displays images in common file formats, receives AM/FM radio station signals, records voice messages, and plays Musical Instrument Digital Interface (MIDI) polysynthetic ringtones. Series 40 devices have multiple connectivity protocol support built into their hardware and OS.
- Series 40 devices support 2G and 2.5G wireless networks compatible with mobile operators throughout the world. Some work over GSM and GRPS, while others support CDMA networks.
- Some Series 40 devices support EDGE networks and 3G UMTS networks for fast wireless data transfer.
- All Series 40 devices support one or several of the following local network connectivity protocols: Bluetooth, USB, or Infrared Data Association (IrDA).
Device extensions such as cameras, full alphabetic keyboards, and MP3 players are available on selected Series 40 device models that target specific market segments. Figure 2-3 also shows the Nokia 7210 and 6230 devices, which are the first devices for the Series 40 Developer Platforms 1.0 and 2.0 respectively. The Nokia 6230 device supports a VGA camera, MP3 playback, and add-on MultiMedia Card (MMC) memory cards. The figure also shows a Nokia 6800 messaging phone (full keyboard) and a Nokia 3300 music phone (deck key layout and MP3 support).
Figure 2-3 Important Series 40 Developer Platform devices.
User Interface
The user interface on Series 40 devices is based on view-switch screens. It is designed specifically for one-hand operations.
- An idle Series 40 device displays its home screen. After the user presses the Menu soft key, the device shows its top-level menu, which consists of a series of screens, each representing a different native application (e.g., the Web browser or messaging client) or content folder. The content folder could contain media files (i.e., pictures in the Gallery folder) or installed applications (i.e., Java MIDlets in the Applications folder). The user can navigate through the top-level menu items using the arrow navigation keys. The menu content and presentation of each menu item screen are determined by Nokia and the wireless operator. Developers cannot change them from J2ME applications.
- When we select a top-level menu item by pressing the Select key, the next screen is a list menu. Each menu item takes up one line. For a native application, the list menu consists of available actions. For a content folder, the list menu shows content files, installed applications, or subfolders.
- A Series 40 application typically consists of multiple screens. Application and navigation actions are assigned to each screen for the users to select. These actions are typically mapped to the soft keys. If there are more than two options, the left soft key becomes an Options key, which opens a full-screen selection list when pressed.
The above menu hierarchy is illustrated in Figure 2-4. Figure 2-5 shows the use of the Options soft key. The user interface on Series 40 devices is very screen-centric. Attempt to interact with individual UI elements (e.g., menu, selection list, options, or editable text box) often brings up a separate screen (see Figure 2-6 for examples). In Chapter 4, "MIDP User Interface," we cover how to program the UI elements shown in Figure 2-6. This UI design is a proven success on small phone screens. Hundreds of millions of existing Nokia users are already familiar with it.
Figure 2-4 The UI menu for devices in the Series 40 Developer Platform.
Figure 2-5 The use of the Options soft key in Series 40 devices.
Figure 2-6 Interact with individual elements on a Series 40 device.
Series 60 Developer Platform
The Series 60 Developer Platform targets the world's best-selling smart phones produced by seven (as of April 2004) different vendors, including Nokia. More than 10 million Series 60 smart phones will be sold in 2004. There are a lot of overlaps between the Series 40 and 60 Developer Platforms. In this section, we focus on the enhancements brought by the Series 60 devices.
All Series 40 core native applications and most lead software are available on Series 60 devices. A significant difference between the Series 40 and 60 Developer Platforms is that Series 60 devices are based on Symbian OS instead of the proprietary Nokia OS. Developers can access the OS functionalities directly using Symbian C++ language and APIs. Users can install Symbian C++ applications into the device via OTA downloading or via a flash memory card. For example, most commercial games for the N-Gage game deck are written in Symbian C++. We give a brief introduction to Symbian OS later in this chapter. Figure 2-7 shows the software stack on Series 60 devices.
Figure 2-7 Software stack on Series 60 devices.
A Nokia Series 60 device typically has a 176 by 208 LCD screen capable of displaying 65,536 (16-bit) colors. More devices with other UI configurations will come in the future. Compared with a standard Series 40 keypad, a Series 60 keypad has several additional keys, including an Application key, a Clear key, and an Edit key. A Series 60 device plays the Audio/Modem Riser (AMR) voice tones as well as other Series 40 audio formats. We can expand the data storage space of Series 60 devices using add-on flash cards. As a result, Series 60 devices can support large downloadable applications up to 4MB. The Nokia 3650 and 6600 smart phones are the first devices for the Series 60 Developer Platforms 1.0 and 2.0, respectively. A particularly interesting Series 60 device is the Nokia N-Gage mobile game deck. It is optimized for connected mobile games. Figure 2-8 shows the important Series 60 devices.
Figure 2-8 Important Series 60 Developer Platform devices.
Compared with the typical user interface on a Series 40 device, a Series 60 device looks more like a minicomputer or PDA. The top-level menu and submenus can be displayed in a grid of icons or in a selection list. It supports popups (e.g., menus, option lists, and alerts) and directly editable widgets.
Series 80 Developer Platform
The Series 80 Developer Platform is based on Symbian OS v7 and above. It is designed to support business productivity applications. A significant Series 80 addition to the Developer Platform base software is the support for J2ME Personal Profile. The J2ME Personal Profile is a more powerful Java environment than the MIDP, which is also supported on Series 80. The Personal Profile allows us to run enterprise mobile middleware, including many from IBM, on Series 80 devices. J2ME Personal Profile is not covered in this book. Series 40 and 60 MIDP, WAP, and MMS applications should work well on Series 80 devices. The Series 80 Developer Platform includes an array of enterprise-oriented lead software, including email client, messaging client, and VPN software.
The Series 80 Developer Platform was introduced in February 2004 with the Nokia 9500 Communicator device. It is a platform for enterprise devices. The Nokia 9500 Communicator features two user interfaces. An external 128 by 128 LCD screen and alphanumeric keypad are very similar to the UI design on Series 40 devices. But when opened, the device reveals a 640 by 200 large LCD screen and a full alphabetic keyboard. There are four soft keys along with the large LCD (see Figure 2-9). The Nokia Communicator 9500 user interface is clearly designed for two-hand operations. More UI designs will be available for Series 80 devices in the future.
Figure 2-9 The Nokia Communicator 9500 is the first Series 80 Developer Platform device.
Series 90 Developer Platform
The Series 90 and 80 Developer Platforms are similar. The Series 90 is based on Symbian OS v7.0 and is primarily designed to support multimedia applications. For MIDP, WAP, and MMS applications, the multimedia enhancements and pen-based input methods are transparently available to developers. But for Symbian C++ developers, the Series 90 exposes more APIs to manipulate multimedia contents and UI events. Most Series 40 and 60 applications should run correctly on Series 90 devices with little or no change.
The Series 90 Developer Platform was introduced in late 2003. A typical Series 90 device features a 320 by 240 color display with 16-bit colors. It supports many audio and video playback formats and could allow users to watch TV programs or movies on the device. Series 90 devices feature a major UI upgrade from the Series 60: they support pen-based input methods (see Figure 2-10).
Figure 2-10 An example Series 90 Developer Platform device with pen-based user interface.
Other Nokia Device Series
In addition to Developer Platform devices, Nokia makes other devices. These devices are either legacy devices being phased out or devices that do not offer a significant opportunity for third-party developers. These are not the focus of this book.