Chapter 1. Introducing Nokia's Software Platform

One of the world's largest providers of smartphones, Nokia is at the heart of a global ecosystem of devices, services, and applications. With this success comes diversity. A handset that sells successfully in the United States or Europe may be too expensive to sell in developing markets, and a phone inexpensive enough in developing markets may seem primitive by the standards in Europe or the United States. This diversity can lead to fragmentation; fortunately, Nokia is well aware of this and responds to the threat of fragmentation with software development platforms that span product lines.

In this chapter, we take a brief look at Nokia's hardware and software platforms. Once you understand the platforms that Nokia offers, we discuss application distribution options when targeting Nokia products. After reading this chapter, you should be able to select the appropriate Nokia platform for your application and understand how you will deliver your application to others.

Why Nokia?

As we write this (early spring, 2010), Nokia's global device market share rests at 38%[1], consisting of 126.9 million phones for the fourth quarter of 2009. These devices run one of three platforms (more about Nokia's phone platforms in the section "Introducing Nokia's Phone Platforms" later in this chapter), letting Nokia dominate segments ranging from the emerging market, where price can remain a major concern, to markets in Europe and elsewhere demanding high-end, versatile computing devices.

Today, Nokia's portfolio includes not just mobile communications devices ranging from feature phone to mobile computers, but services under the Ovi brand, including messaging, contact management, mapping, photo sharing, and an application store. In addition to the Ovi brand, Nokia has launched several services to specific markets, such as Nokia Life Tools (providing agricultural and educational services to emerging markets) and Nokia Money, a mobile banking service built with Obopay.

Introducing Nokia's Hardware Platforms

To deliver compelling products to such a wide range of markets, Nokia must produce devices at a wide range of prices that reflect manufacturing and software development costs. With device costs tightly coupled to component costs, the key to producing inexpensive devices is to manage expenses on components. This in turn affects the software the product is able to run. To support this, Nokia divides its software portfolio into three software platforms: Series 40, Symbian, and MeeGo.

Series 40

The Series 40 platform is among the world's most widely used mobile device platforms. A low-cost platform requiring little by way of hardware, it was introduced in 2002 and remains a key platform for Nokia and its customers around the world.

Series 40 is a closed platform. No native SDK is available for you to write your own applications using the S40 native platform. Instead, Nokia provides support for both Java Mobile Edition (Java ME) and Adobe Flash Lite applications, and its browser permits the development of traditional server-side web applications as well. Because of this, we don't say much about Series 40 throughout this book.

Symbian

Symbian has a long history in the mobile marketplace, having originally been built as an integration of software contributed by Nokia, NTT DoCoMo, Sony Ericsson, and Symbian Ltd in 1998. Ten years to the day of Symbian Ltd's inception, Nokia announced its intent to acquire all Symbian Ltd shares and create the Symbian Foundation. Today, the nonprofit Symbian Foundation oversees the development and growth of the open source Symbian platform, working with contributions from companies and individuals around the world.

Nokia remains one of the major contributors to the Symbian source code base, even as Symbian remains the platform of choice for smartphones built by members of the Symbian Foundation and others. As component costs have dropped and contributors continue to optimize the software, Symbian is now able to run on lower-cost devices. This enables Nokia and others to produce an increasing number of Symbian devices for cost-conscious markets, as well as for more demanding users.

Symbian developers have a broad array of software platforms available, including:

  • Qt, a C++ based cross-platform development environment.

  • A web-based platform using HTML5, JavaScript, and CSS.

  • Java ME, a dialect of the Java language and APIs suited for mobile devices.

  • Adobe Flash, generally Flash Lite, a dialect of Flash suitable for mobile devices.

We discuss each of those platforms in the next section, "Choosing a Development Platform."

MeeGo

MeeGo is a Linux-based fusion of Nokia's Maemo and Intel's Moblin projects. Both Maemo and Moblin have strong Linux roots. Moreover, past Maemo releases have shipped to consumers on Nokia's family of Internet Tablets, the Nokia N770, N800, N810, as well as the N900 mobile computer. As we write this, MeeGo remains a platform for higher-end devices. That may change: MeeGo isn't just a phone platform, but a general Linux-based platform for phones, web-enabled tablets, set-top boxes, and other networked computing devices.

Because MeeGo is powered by Linux, developers can use either C++ with Qt or web standards to create applications for MeeGo. As with Symbian, we discuss developing for MeeGo throughout this book.

Choosing a Development Platform

Platform fragmentation is a serious challenge for mobile software developers. Already, developers are often asked to support multiple platforms — the market is the mobile market, not just users of a specific smartphone. Thus, many developers are tasked with writing an application not just for an iPhone, Android, or Nokia, but they also write for all three. Seemingly worse is that it appears Nokia isn't just one platform, but several.

To address this challenge, Nokia products support a number of development platforms across product lines. Key platforms include:

  • Qt with C++

  • Browser-based applications leveraging HTML5, JavaScript, and CSS

  • Java ME

  • Flash

Table 1-1 shows Nokia's phone platforms and the development options available for each. To summarize, Nokia provides Qt as the definitive platform for smartphone development, spanning both Symbian and MeeGo. For developers with legacy web applications or who have other strong reasons to use web standards (such as portability across multiple platforms), the Web, with support for advanced standards such as HTML5, is also an option. Java ME remains an option when you want to target the very low-cost Series 40 devices, and Flash remains available on Symbian and MeeGo.

Note

Throughout the book, we focus on mobile-device software development for Qt and HTML5, as considerable documentation is already available that describes Java ME and Flash. If you're looking for resources for either of those platforms, consider Beginning Java™ ME Platform or AdvancED Flash on Devices: Mobile Development with Flash Lite and Flash 10, both available from Apress.

Table 1.1. Open Software Technologies Across Nokia's Product Line

Platform

Qt

HTML5

Java ME

Flash

Series 40

   

Symbian

MeeGo

 

Qt

Although you may not know it, many well regarded applications use Qt, an open cross-platform framework acquired by Nokia through its acquisition of Trolltech in 2008; Google Earth, KDE, Opera, and Skype all use Qt to ease porting between multiple platforms. Qt as a framework for portable computing devices is not new either, having been used in mobile computing, running Linux and Window Mobile devices for several years.

As you learn in Chapters 4, 5 and 6, Qt provides a broad set of abstractions above native hardware, including:

  • Help with memory management in C++ through its use of smart pointers, owned objects, and shared data between objects with copy-on-write.

  • A lightweight meta-object framework implemented using the C preprocessor and C++ to permit run-time type detection and message dispatching.

  • Not one, but two graphics frameworks, one based on widget hierarchies and the other on scene-based rendering and transformation of viewable items.

  • Cross-platform wrappers for network, file system, and other operating system services.

  • Access to hardware capabilities using either Qt Mobility or access to native Symbian APIs to use the camera, location services, access contact records, and other native operations.

  • QtWebKit, a wrapper for WebKit to permit Qt applications to load and render Web content.

Qt is available on both Symbian and MeeGo products and is a good choice for your application if:

  • You have existing C, C++, or Qt code from another platform that you want to bring to Nokia products.

  • Your application needs to squeeze out every bit of performance from the platform.

  • You intend to port your application to other platforms in the future.

On the other hand, if one or more of the following are true, you should take a good look at the Web:

  • Your application's content is primarily web-centric.

  • You are providing a thin shell application that uses Representational State Transfer (REST) or similar web-based interfaces to provide a mobile client for a server-side application.

  • You are targeting your application for other web-based environments, such as desktop widgets.

Now and in the future, Qt is the primary platform when developing software for Nokia's smartphones. Engineered to provide high performance across Nokia's products, it offers a highly portable environment that lets you target multiple devices through a single SDK, requiring only recompilation when moving your application between Symbian and MeeGo.

HTML5

Nokia has been a strong supporter of WebKit, the popular layout engine behind most of today's mobile web browsers. WebKit fully supports HTML, JavaScript, and CSS, giving you a state-of-the-art web-rendering stack for your web-based applications. Nokia remains committed to supporting open web standards, including HTML5 in the built-in browser used to access the Web. You should consider using web technologies when:

  • You are porting a browser-based web application (perhaps written to support other devices as well) from a server to run locally on a device.

  • Your application sources content from a web server using either HTML or XML

  • You are fluent in HTML, CSS, and JavaScript and do not have the luxury of learning another development platform, such as Qt.

On the other hand, if one or more of the following is true, you may want to use Qt instead:

  • Your application must meet tight performance constraints, such as a graphics-intensive game.

  • You're porting parts of an existing C or C++ application from other platforms.

  • You also want to deploy your application on other vendors' hardware platforms that provide Qt.

The Web remains a crucial component people use to access information using mobile devices, and Nokia is fully committed to supporting it through a high-end mobile browser that supports existing and the emerging HTML 5 standard.

Hybrid Applications

Before we move on, it's worth pointing out that you can wrap your web content within a Qt application, too. You can do this because Qt supports HTML, JavaScript, and CSS through its inclusion of QtWebKit, a port of the popular WebKit web environment to Qt. You should consider this approach when:

  • You want to provide the user with the experience of downloading and installing an application, but your content is largely written using web technologies.

  • Your application has key dynamic content available via the Web that should be presented to the user.

Distributing Your Application

Picking a software platform and writing your application is only the start. Once the application is written, there's the question of distribution: how do you get your application into the hands of prospective users, and how do you monetize those transactions? Nokia platforms give you a variety of options, not least being the Ovi Store, available on all new devices and a surprising number of existing ones.

Distributing applications to smartphone users is nothing new; both Symbian and Maemo devices for several years have enabled you to install applications from other sources, including the Web. This is an example of off-deck distribution — that is, distribution from a source other than the network operator.

Off-deck can sound simple — you may now be thinking, "Oh, I'll just put an installer for my application on our web site" — but it can quickly grow out of hand from the business perspective. Application purchases and subsequent registration may need special handling, and you may not even be equipped to process payments within your web site. Moreover, several companies are available to carry and sell your application off-deck, and to maximize your reach in the market you may choose to contract with one or more of those companies for distribution as well. While web and SMS delivery of your application is possible with these companies, you usually will need to execute separate agreements with each off-deck distributor you choose.

On-deck, as opposed to off-deck, is listing your application with the network operators within their application distribution platforms. Nearly every operator now has either a web site or native application that lets consumers browse and purchase applications; this is the "deck." Landing your application in an operator's store takes an agreement with the carrier, which generally takes a percentage of application sales from its site or store application. Carriers typically pay you for your content and regularly provide details about application sales. Some carriers can give you near real-time sell-through statistics, letting you measure the results of advertising campaigns or other marketing efforts.

Participating in the carrier's distribution can be helpful if your application is well placed on the deck and well promoted. As with off-deck, you can usually distribute your application through more than one carrier, although then you need to have business relationships with more than one carrier. If you're seeking to launch an application with global presence, acquiring these relationships can be both challenging and time-consuming.

An ideal way to cover multiple markets is to list your application with Nokia in its Ovi Store. The store is an application and media store that supports more than a hundred devices with listings in 30 languages as I write this. To facilitate monetization of your application, the store itself is integrated with 66 different operators in 19 different countries, permitting integrated mobile billing; in areas without this integration, your customers can remit payment to Nokia via their credit card. The Ovi Store complements application promotion, such as from your web site, too; you can use Ovi Store's marketing tools to create banners that deep-link to your content in the Ovi store.

We discuss the process of preparing your application for deployment and making money from sales of your application in Chapter 9.

Wrapping Up

Nokia's product portfolio spans the gamut of prices, with sales numbers in the tens to hundreds of millions each quarter. Nokia's broad and deep reach around the world drives a software market for almost any mobile application developer.

To address the myriad markets where Nokia sells handsets, Nokia groups devices into three platforms: Series 40, Symbian, and MeeGo. One platform, Qt running on Symbian, lets you target mid-range and premium (Symbian and MeeGo) devices using C++ and a robust porting layer. Nokia's support for HTML5 and other web standards leverages your knowledge of HTML, JavaScript, and CSS to develop hybrid and web-based environments using the latest web technologies. Most applications can be easily constructed using tools from either platform, letting you choose the platform that most closely meets your skills and prior projects. Using Qt requires skills in C++, but provides the highest possible performance, while the web route provides more-than-adequate performance with the added benefit that since it's based on W3C standards, porting from other platform's web-based applications isn't difficult.

In the next chapter, we look at what you need to know to get started designing your application for Qt and HTML5 on Symbian and MeeGo. Chapter 2 is preliminary information for all developers new to mobile software; if you're ready to dive in and begin developing your application, skip ahead to Chapter 3, where we introduce the various tools at your disposal.



[1] Statistics taken from Nokia's press release at www.nokia.com/results/Nokia_results2009Q4e.pdf.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.135.80