Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL
Help

Introduction

Introduction

Popular acceptance of the smartphone has brought technology once only previously imagined in science fiction to today's reality. You can now use the small electronic device that used to be a simple cell phone to manage your calendar, listen to music, take pictures, provide maps and navigation, and browse the Internet—and still make a phone call. The technology that links you to the vast information store on the Internet any time and anywhere is perhaps the greatest revolution in information access the world has seen. Not only available to the developed nations where we expect to see high-end smartphones, these devices are also widely available in developing nations, where they are often the primary device people use to access the Internet.

The convergence of low-cost high performance processors, cheap memory, and wireless networking is only some of the technology that make the smartphone possible. The widespread use of open mobile computing platforms is the key to the smartphone's success. These platforms have opened the door for third parties (that's you!) to write software applications for these mobile computing platforms quickly and inexpensively.

Applications are no longer the exclusive domain of the device manufacturer. Now, anyone can imagine an application and implement it. These applications are with you everywhere that you carry your cell phone, and can take advantage of positioning information and wireless connectivity provided by the phone. It is this ability for anyone to create an application that has made the cell phone the truly wonderful device of tomorrow.

Why Should You Read This Book?

Even after nearly 40 years between us developing applications for mobile computing, we remain excited seeing what people have realized and looking at what the future holds. Mobile applications continue to influence the way people work and play in a way that very few market segments do. Whether you're just starting to develop mobile software, or if you've already been part of that revolution, this book is for you.

When first talking about this project, we agreed immediately that providing a technical foray of all the current mobile platforms today was simply too large a project. We also noticed the relative paucity of books that discuss Nokia's open platforms, a sad gulf given Nokia's worldwide market penetration. Through Nokia's contributions to the open platforms maintained by the Symbian Foundation and MeeGo, Nokia and other manufacturers using these platforms in their products make up more than 40% of the smartphone market worldwide, and show no signs of slowing. It was immediately obvious that what we needed to bring these platforms to your attention.

Once we realized this, choosing what to share was easy. A key strategy at Nokia is to leverage open platforms for their software developers across the entire smartphone product line, whether the underlying operating system is Symbian or MeeGo (a Linux derivative). To do this, Nokia provides both a web-based programming approach that lets you write local or networked applications using HyperText Markup Language (HTML)-JavaScript-Cascading Style Sheet (CSS), with access to native platform services such as messaging and geolocation, as well as more traditional application development stack based on Qt and C++ atop Symbian and MeeGo. As you read this book, you learn about both the web-based and Qt-based cross-platform approaches, and are equipped to select which makes the most sense for you in your endeavors.

In our writing, we assume that you're new to Nokia's open platforms, but not new to software development itself. We assume that you have some experience in software development. As we show you examples of both of HTML-JavaScript-CSS and C++ based development, you should have at least a nodding acquaintance with the technologies that lie beneath the web stack as well as C++. Rest assured, though, that we're careful to document anything tricky we've done that you might encounter along the way.

How Should You Read This Book?

Think of this book as a technical survey of what's available in the Nokia ecosystem for you. We understand that most of you don't read a technical book from cover-to-cover at first, but tend to dip in and out of chapters as their titles and your curiosity resonate. Although we understand that you're likely to do exactly that, we urge you to give a cursory reading of each chapter as you go along. Because much of the material we cover is loosely coupled (for example, you don't need to understand how a web application is deployed in order to begin using Qt), you can certainly open to any chapter and give it a go. Despite that, though, there's a coherent story throughout the book, and one of the things we aim to show you is how to pick which of Nokia's open platforms is best for your application.

This book has nine chapters, covering both the fundamentals of Qt using C++, as well as web technologies such as HTML5.

  • In Chapter 1, we survey the Nokia ecosystem, starting with a brief history of Nokia's contribution to the mobile computing arena and looking ahead at the opportunities to come. You'll learn about Nokia's cross-platform strategy and how it fits together from the first line of portable code that you write to packaging and delivering your application through Nokia's Ovi platform.

  • In Chapter 2, we discuss the all-important yet neglected topic of designing applications for today's mobile devices, looking at how people interact with their phones and what they expect from today's mobile applications.

  • In Chapter 3, we provide a detailed tutorial of how to use the Nokia Qt Software Development Kit (SDK), a cross-platform environment for designing, implementing, building, and packaging Qt applications for both Symbian and MeeGo devices.

  • In Chapter 4, we show you the fundamental concepts you need to understand when writing Qt applications. You learn about Qt's object model, how Qt uses signals and slots to communicate between objects, and aspects of Qt's cross-platform porting layer, as well as how to design and build applications using the model-view-controller paradigm in Qt.

  • In Chapter 5, we continue your Qt education, moving on to more advanced topics, including how to integrate Qt-based C++ applications with web content, how to create your own widgets, and how to abstract user actions in your user interface.

  • In Chapter 6, we explore QML, the Qt Meta-Object Language, and how you can create dynamic user interfaces using QML and JavaScript that bind back to C++ for high performance when you really need it.

  • In Chapter 7, we shift gears and look closely at writing applications using HTML, JavaScript, and CSS for Nokia's WebKit-based web browser.

  • In Chapter 8, we discuss how to prepare your application for deployment, looking at how Nokia's tools support your cross-platform integration and testing efforts.

  • In Chapter 9, we discuss application deployment itself, looking at the options available to Nokia developers as they publish and market their applications through Nokia's Ovi Store.

Throughout the book, we use various implementations of a simple application, "Shake" which harvests information about recent earthquakes and displays the data using lists, detail views, and maps. This sample application—written in different implementations using both C++ using Qt and the Web—demonstrates many of the key concepts you need to understand, including model-view-controller design, XML parsing, and network access. Of course, these samples are all available electronically at the Apress web site, http://www.apress.com/.

A Word on Conventions We Use in This Book

As with other technical books, it helps to make a distinction between what's meant for you to read and what's meant for your computer to read.

Whole listings of code are set in the code style, like this:

typedef struct _Node
{
   /// Next node
   struct _Node *mpNext;
   /// Pointer to data for this node
   void *mpData;
   /// Pointer to any additional data for this node.
   void *mpMetaData;
} Node;

As with many coauthored works, we present our opinions and views in the first person using the collective pronouns "we" and "us" to refer to both of us. On occasion, where we want to emphasize an experience that belongs solely to one of us, we use singular pronouns, identifying the author after the first use of the singular pronoun.

  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint