FORUM

Choosing the Right Development Environment for Series 60 Application Development

Version 1.0; June 7, 2002

Symbian Forum.Nokia.com

Choosing the Right Development Environment for Series 60 Application Development

Revision 1.0; June 7, 2002

Introduction Series 60 is a mobile terminal software platform designed for one-hand-operated with a large color screen and an intuitive (UI). Series 60 provides a stable, standards-based platform that developers can use to build applications for a variety of markets ranging from entertainment to business. Application development on Series 60 is a good investment, since Series 60 is a platform designed to work on devices of today and tomorrow.

The platform supports a variety of development choices, including C++, Java and WAP (WML). Developers need to understand the strengths and limitations of each of these design environments so they can successfully match the right technology to the right application.

Developers designing applications for the platform will be able to support a wide variety of upcoming devices that conform to the specification; the first device introduced to the market was the . The Nokia 7650 conforms to the the Series 60 Platform specification and adds product-specific features, such as a camera interface. The Nokia 7650 supports three data rates: CSD (standard GSM data 9.6 kbps), HSCSD (single-slot high-speed data 14.4 kbps) and GPRS (up to 40.2 Kbps) as WAP bearers. Local wireless communication is supported over and infrared (IrDA). four MB of RAM is shared by applications, images, and a contact database.

Support for Multimedia Messaging Service (MMS), an evolutionary step from Short Message Service (SMS), is part of the Series 60 Platform. In practice, this allows applications to be easily integrated with e-mail and messaging for enhanced consumer services and corporate applications such as database access. Nokia and RealNetworks have announced the inclusion of the RealOne Player, with support for 3GPP media formats, RealAudio and RealVideo, as a standard feature on Nokia's Series 60 platform and Nokia phones based on OS. This feature will enable users to enjoy live and on- demand access to digital audio and video for information and entertainment.

A developer has several choices in developing applications for the Series 60 platform. The first, C++, is the native programming language of Symbian OS, the phone’s OS. All the phone’s functions are easily available through C++ . See the Resources section at the end of this article for more information on the C++ and Java SDKs.

The second option is Java™, using the Mobile Information Device Profile (MIDP), a subset of the Connected Limited Device Configuration (CLDC). The MIDP is intended specifically for communication devices such as cell phones.

The third choice is browsing, using Wireless Markup Language (WML) and Wireless Application Protocol (WAP) 1.2.1. The 176 x 208 pixel display is well suited to focused content, but developers need to structure content destined for mobile devices separately from applications intended to be accessed from desktop or notebook computers.

Copyright © 2002. Nokia. All rights reserved. 1 Forum.Nokia.com

In general, C++ provides the most flexibility in user interface and use of the phone’s features, and offers higher performance and more compact code, but portability of applications to devices other than Series 60-based terminals can be a little time-consuming. Java offers portability to other MIDP devices, but without access to specialized functions like Bluetooth. Browser applications are intended for interactive access to services specifically designed for mobile devices, and are not intended to replace C++ or Java applications, but to augment them.

C++ C++ is a flexible and efficient programming language. By itself it does not enable any specific user interface, but the environment and the APIs available determine what is possible.

Developers familiar with C++ will find that the environment provides easy access to all the features of the device. For example, C++ is currently the only way to access features that are not part of the MIDP standard, such as the camera interface on the Nokia 7650; TCP/IP network socket functions, such as FTP, SSH and telnet; or alternate networking functions such as Bluetooth or infrared (IrDA). Data interchange between applications is only available through C++. C++ applications can read and write device data, so, for instance, they have access to the images stored in the photo album and can read from or write to the contacts database.

C++ allows the developer to create a full-featured user interface, with option menus, listboxes and all other Series 60 UI elements. Applications developed with C++ are accessible to users by means of a separate icon under the device’s applications menu, with a large icon available to the programmer. The C++ environment allows developers to create real-time applications for Series 60 devices. For example, applications written in C++ can initiate voice calls using data stored in the device’s phonebook or calendar.

See the Resources section at the end of this article for links to the C++ and Java SDKs, including API features, the user interface guide, a full description of Series 60 functions and features and the MIDP specification.

JAVA and MIDP Java applications are relatively easy to port from device to device, though if portability to other platforms is critical, a Java MIDlet may be limited to 30 kB on other platforms. MIDP and CLDC define the APIs that are available to Java MIDP developers. Through the APIs, programs written to the specification can make HTTP 1.1 stream-based client connections over either a WAP or a TCP/IP connection.

UI classes in Java applications include such features as text boxes and forms, and these elements are well integrated with the Series 60 look and feel. Java applications can store a limited amount of data, but cannot directly access device data.

Java programmers can optimize their applications for Nokia Series 60 phones such as the Nokia 7650 through the use of the Nokia UI API. With this API, developers gain access to features beyond the scope of the MIDP specification, including pixel-level image data, transparency, full-screen drawing, sound, vibration and control of device lights.

To access Java applications, users navigate to the Java Application Manager where they find a list of all installed Java applications.

Choosing the Right Development Environment 2 Forum.Nokia.com

Browsing, WML and WAP Browsing is intended as a way to access content in a client/server environment, rather than as a development standard for stand-alone applications. The device is intended to be handheld and it is assumed that content will be tailored to the size of the device.

The display of Series 60 platform devices measures 176 x 208 pixels. The Nokia 7650 display has 4096 possible colors. When using a browser, a status pane at the top of the screen is 176 x 44 pixels, and a softkey panel at the bottom is 176 x 20 pixels. This leaves an available display area of 176 x 144 pixels for application content.

Development Tools The Series 60 SDK for Symbian OS is available at Forum Nokia for developers to start developing Symbian OS C++ applications for Series 60 Platform. The SDK requires a Windows NT computer and a Microsoft Visual C++ development environment.

For Java development, Sun’s Java 2 Platform Micro Edition, (J2ME™) Wireless Toolkit provides application developers with the emulation environment, documentation and examples needed to develop Java technology applications targeted at CLDC/MIDP-compliant mobile phones and entry- level PDAs. This product is based on the CLDC 1.0.3 and MIDP 1.0.3 reference implementations, and can be tightly integrated with Forte for Java, providing a complete development environment with which developers can write, test and debug applications from start to finish. See Resources below for more information.

Metrowerks has development environments for C++ and Java. The toolkit is CodeWarrior, which includes both native C++ and Java support plus an Integrated Development Environment (IDE). The IDE includes an editor, a project manager, a , a linker, an emulator and a debugger. CodeWarrior Wireless Studio supports MIDP/CLDC/J2ME as well as PersonalJava™ and J2SE™.

Applications can be downloaded into a device based on Series 60 Platform by using PC synchronization software, or by pointing the over the wireless network to a page that contains the download. Bluetooth or infrared can also be used for downloading applications. Each Series 60 device has an application installer utility.

Series 60 Platform is a complete package of applications, user interface and development tools built upon Symbian OS technology. The sizes and capabilities of mobile phones and communicators continue to be diversified. Although the core is the same in different types of devices, the user interface and application functionality may vary. This is a great benefit of Symbian OS. Series 60 Platform helps the developer by providing a standard platform for one-hand-operated smartphones, enabling applications to run on all terminals whose manufacturers have adopted Series 60.

Series 60 Platform relies on mobile telecommunication and Internet standards, such as SyncML, MMS, vCard, vCalendar, POP3 and IMAP4. These technologies are created for application and device interoperability, and Series 60 supports them along with other standards.

Nokia has a number of tools available on its Web site (see Resources section) for developing PC Synchronization, SyncML and other types of applications.

Choosing the Right Development Environment 3 Forum.Nokia.com

Resources Log on to Forum Nokia at www.forum.nokia.com to find the following resources: • Nokia Series 60 SDK for Symbian OS • Nokia Series 60 MIDP SDK Beta 0.1 for Symbian OS • Nokia UI API • Nokia Mobile Internet Toolkit 3.0 (IDE for Browsing applications) • Other development tools

The following additional information is available from Nokia partners: • Mobile Information Device Profile (MIDP) http://java.sun.com/products/midp/ • Connected Limited Device Configuration (CLDC) http://java.sun.com/products/cldc/ • J2ME CLDC toolkit http://java.sun.com/products/j2mewtoolkit/

Choosing the Right Development Environment 4 Forum.Nokia.com

Build Test Sell

Developing and marketing mobile applications with Nokia

Go to Forum.Nokia.com

Forum.Nokia.com provides the tools and resources you need for content and application development 1 as well as the channels for sales to operators, enterprises and consumers. Forum.Nokia.com

Subscribe to updates

Stay abreast of news and developments through a subscription to our regional newsletters for Europe 2 and Africa, the Americas and Asia. Subscribing is easy and your privacy is strictly protected. Forum.Nokia.com/newsletters

Download tools and simulators

Forum.Nokia.com/tools has links to tools from Nokia and other industry leaders including Adobe, 3 AppForge, Borland, Macromedia, Metrowerks and Sun. Forum.Nokia.com/tools

Get technical support

The support area contains a of white papers, sample code and FAQs arranged by technology. 4 The Nokia Knowledge Network enables you to ask questions of the global developer community. Forum.Nokia.com/support NKN.Forum.Nokia.com

Test your application

The Nokia OK program provides the opportunity for your application to enjoy premium placement in 5 Nokia's sales channels. Forum.Nokia.com/ok

Sell your application

Global and regional channels get your application in front of operators and XSPs, enterprises and 6 consumers. Go to Forum.Nokia.com/business to access all of the opportunities Nokia presents. Forum.Nokia.com/business

Choosing the Right Development Environment 5