- Shopping Bag ( 0 items )
The rapidly emerging category of smartphones is poised to dramatically change the worlds of mobile communications and mobile computing. One company sits right at the heart of this revolution – Symbian, the provider of the industry-standard operating system for smartphones. Symbian OS is already used in more than 32 million mobile phones worldwide. Hundreds of partner companies and many thousands of independent developers are busily creating smartphone products to take advantage of the power of Symbian OS and the opportunities it offers.
Smartphones are mobile rich portals into the ever-expanding, ever more important digital universe. As with any revolutionary new technology, Symbian OS poses challenges to software developers at a management as well as a technical level. This is the first book to address the wider set of skills and thought processes necessary to successfully complete smartphone development projects.
As a co-founder of Symbian and former executive of Psion Software, David Wood has been actively involved in well over 100 smartphone development projects worldwide. Over the time spent on these projects, he has come to understand the key issues which determine the difference between successful and unsuccessful projects for Symbian OS. This book highlights and explains:
1.1 The phenomenon of smartphones
Mobile phones are phenomenal. Today, one quarter of the earth's population owns a mobile phone. But only a few years ago, mobile phones were the stuff of science fiction. As such, mobile phones are arguably the most successful item of consumer electronics in history.
Mobile phones owe their phenomenal success to the fact that they satisfy some deep-seated human needs:
First, they provide extra means for people to communicate - to explain, to speculate, to chat, to inform, to plan, to replan, to inquire, to instruct, to entreat, to woo, and to give thanks. We humans have a great deal to communicate; the amount of money we collectively spend on mobile phones shows that we are heartily grateful to them for increasing our communications power
Second, mobile phones boost their owner's sense of safety. Their owners strongly appreciate that, in times of major or minor emergency, they can connect to people and services that are important to them
And third, mobile phones have become veritable objects of fashion, which their owners can show off, complete with their customizable covers, chart-topping ringtones, wacky homespun messages, and personalized image backgrounds. We all like to be unique; our phones increasingly help us to stand out from the crowd.
Each new generation of mobile phone meets the above needs in ever richer ways, for example adding text messaging to complement voice calls (or predictive text input to ease the creation of text messages), or new kinds of audio and graphics. At the same time, each new generation improves the portability, robustness, reliability, and basic usability of the phone. Batteries last longer, the phones themselves are lighter and smaller, the voice of the remote caller sounds clearer and louder, and the phone is increasingly resilient against misuse. In short, mobile phones are becoming better and better.
But the best is yet to come. Our current favorite mobile phones, valuable though they are, are dumb and impotent when compared to the new types of phone that will become increasingly commonplace over the remainder of this decade.
These new phones provide much greater levels of intelligence to their users. This intelligence resides partly in the phones themselves and partly in the ever-smarter networks into which they connect. This intelligence is a potent combination of hardware and software - a compelling mix of data and algorithms. In recognition of this increased intelligence, these phones are collectively described as "smartphones".
Smartphones are phones - great phones - but they are also much more than phones. Smartphones are rich mobile personal gateways into the digital universe - a universe that keeps on expanding and growing in importance. It is a universe that combines content, commerce, computing, and community. It is the home of google.com, ebay.com, amazon.com, yahoo.com, bbcnews.com, slashdot.com, aol.com, msn.com, espn.com, expedia.com, multimap.com, playboy. com, pokerroom.com, everquest.com, friendsreunited.com, last-minute. com, and much, much more. You can access this universe through a mobile web-browser - as provided on smartphones - but you can also access it through dedicated smartphone interfaces that make the experience more intuitive, more engaging, and more valuable. And just as the digital universe is steering the evolution of smartphones, the increasing prevalence of smartphones will steer the next phase of the evolution of the digital universe.
Smartphones occupy the tumultuous intersection space where four powerful contemporary trends collide.
The first trend is that software is becoming ubiquitous. Inanimate objects all around us are becoming smarter and smarter. High-powered software, once found only in stationary computers, now flourishes inside all manner of mobile devices
Second, levels of communication keep on rising. More and more types of message are being sent between more and more people - and between more and more devices. Mobile smart devices are constantly joining dynamic networks that potentially make their users into even smarter individuals
Third, users are increasingly demanding an external simplicity in the devices and tools they use (even though these devices abound with inner complexity). Users have lost the patience to bother with tedious operating manuals. Users want power, but they want it easy
And fourth, users are demanding additional abilities to customize, personalize, and adapt the devices and the tools that they use. They want to be creators and innovators, not just consumers. They want their devices to be unique and distinctive. This brings programmability to the fore. It's where software becomes really soft. It's where smartphones become really personal.
Because smartphones accompany their users almost everywhere they go, they are the natural repository to adopt and then augment functionality which previously required numerous different pocket-sized devices. Wallets, tickets, keys, maps, cameras, PDAs, dictionaries, phrase books, entertainment centers, and business communicators are all in the process of being superseded by smartphones with converged functionality. These "always on" devices become ever more central to the way users interact with the world. The consequences will be phenomenal.
1.2 Taking advantage of the smartphone opportunity
It's no surprise that the commercial market for smartphones has grown by at least 100% in each of the last three years. There are good reasons why this growth should continue throughout at least the next three years - reasons grounded in technological progress, networking dynamics, and market evolution:
Moore's Law means that, for the same cost, more and more powerful hardware can be supplied; tomorrow's smartphones will have as much computing power as yesterday's PCs
New generations of phone networks (3G, 3.5G, 4G, and so on) will allow the speedy transmission of ever larger amounts of data, both satisfying and whetting still more user demand
More powerful devices and more powerful networks jointly enable the provision of attractive add-on services, created by third parties, which in turn increase the market pull for devices capable of supporting such services
The cumulative operation of software means that new services and applications can piggy-back on the functionality and power of previous services and applications, with striking, innovative results
Many of these services are community-oriented: the more people who take part in these services, the more valuable these services become (this is sometimes called Metcalfe's Law)
As people discover the benefits of mobile online gaming, mobile commerce, and so on, they will spread this message by word-of-mouth, so that the communities of smartphone users swell in size
Phone network operators have a strong interest in ensuring that phone users are attracted to make regular use of services that involve greater amount of data transfer (and which therefore attract higher fees).
In short, smartphones are at the heart of a powerful virtuous cycle (see Figure 1.1). Improved phones, enhanced networks, novel applications and services, increasingly savvy users - all these factors drive yet more progress elsewhere in the cycle. Applications and services which prove their value as add-ons for one generation of smartphones become bundled into the next generation - much the same as happened for PCs in the 1980s and 1990s (except that the market for mobile phones is an order of magnitude larger than that for PCs). The cycle is so vigorous that we can call it a revolution: the smartphone revolution.
No wonder, therefore, that there is such a strong interest in the question of how best to add new functionality and new services into these awesomely powerful devices.
This is a question with a lot riding on the answer. It is the central question that I address in this book. The answer will allow companies and individuals to take full advantage of the smartphone opportunity.
The answer has two parts:
The first part of the answer is Symbian OS - the de facto standard operating system for the emerging generation of advanced mobile phones
The second part of the answer is the set of skills and expertise necessary to successfully complete projects using Symbian OS.
1.3 The role of the smartphone operating system
The single most important factor to appreciate, when contemplating the ongoing growth of smartphone opportunities, is the role of Symbian OS. Although invisible to the majority of end-users, Symbian OS is the internal plumbing that enables the fruitful collaboration of countless smartphone technologies. Its combination of efficiency and sophistication make it both future-proof and highly fit-for-purpose. At the time of writing, there are already more than 32 million phones in the world that run Symbian OS. By the time you read this, the number will be significantly higher.
It often comes as a surprise to people that operating systems are important in mobile phones. Most consumers have bought mobile phones without giving a moment's thought to what (if any) operating system might be included in the phone. However, like any device with a significant quantity of software, mobile phones do have operating systems.
Briefly, on a smartphone, the operating system has to fulfill the following requirements:
To make it easy for the applications on the smartphone to take advantage of the power of the phone hardware and the phone network
To avoid different applications clashing with one another - preventing, for example, two applications from drawing to the same part of the screen at the same time, or storing data to the same part of memory storage, or interfering with each other's network communications.
Without an operating system, all the different applications would have to delve into the lower levels of the phone hardware and phone network, and would need a huge amount of knowledge of these elements. They would also need to know about all the other applications, in order to coexist peacefully with them.
The greater the number of applications on a phone, the greater is the need for a sophisticated operating system. This is especially important when you consider that any given smartphone will in general contain applications from a number of different sources:
Applications provided by the supplier of the operating system
Applications provided by the phone manufacturer
Applications provided by the network operator
For phones used in a business setting, applications provided by the corporate IT department
Applications sourced from third parties by the phone manufacturer, the network operator, and the corporate IT department
Applications downloaded by end-users, or purchased in retail outlets.
The numerous different authors of these different applications generally have little interest to delve individually into the lower levels of phone hardware and phone networks. On the contrary, these authors are keenly interested to have their applications running on numerous different phones and different networks (so they don't want to become specialists for just one phone). It is much more productive for these authors to be able to write to the application programming interfaces (APIs) provided by an operating system, confident in the knowledge that the same APIs will work on a wide range of different phones and networks - even though these phones and networks vary among themselves in many ways. It is the role of the operating system to deal internally with the variations between the different phones and networks.
I spoke earlier of the powerful virtuous cycle involving smartphones. However, this virtuous cycle depends on the APIs being common between many different phones. Without this commonality, it takes everyone much more effort to develop applications: the marketplace is too fragmented. With this commonality, applications that are originally developed for phones by manufacturer A can be used, as well, on phones by manufacturers B to Z, frequently without any changes being required.
1.4 Regarding APIs and operating systems
Strictly speaking, the arguments I've just outlined do not (yet) demonstrate the need for a single preeminent smartphone operating system. To be accurate, the conclusion of these arguments is that there need to be lots of common APIs for use by writers of smartphone applications. In principle, this need could be met by the existence of multiple layers of APIs, with the operating system itself being of little interest to the application writers. Examples are Java APIs, BREW APIs (popular on phones with Qualcomm chipsets), graphics APIs such as OpenGL, and Internet standard APIs such as TCP/IP.
In this way of thinking, the actual operating system has less importance: some smartphones will use one operating system, others a second, yet others a third, and so on. The names of the operating systems will be no more likely to enter the public consciousness than the names of the diverse operating systems which have been used to create non-smart mobile phones.
There is some merit in this way of thinking. The sets of APIs mentioned - along with many others - do have a vital role to play. They make it easier for developers to write certain types of application (and certain parts of other types of application). However, these API sets, by themselves, are not sufficient to enable the full flowering of smartphones. More is needed - namely a programmable operating system that underlies and embeds these API sets. As I'll explain in a moment, there are three main reasons for this: performance, scale, and openness.
To make this easier to discuss, here are two definitions:
Phones are "natively programmable" if application writers can access (relatively easily) the same set of APIs as are used by the operating system itself
In contrast, phones are "restrictedly programmable" if application writers are in practice restricted to higher levels of standard APIs (such as those mentioned earlier).
These definitions are fuzzy ("... relatively easily" and "... in practice restricted") since an application writer can, with sufficient effort, find out how to program at the native level of virtually any phone. To that extent, all mobile phones are natively programmable. However, the key question is the degree of effort required, and whether that effort can be reapplied with profit on lots of different phones. If the effort required to access the native APIs is broadly the same as to access the functionality at higher levels of the phone (graphics, UI, TCP/IP, etc.), and if the same APIs exist on a wide number of different phones, then (by my definition) the phone is natively programmable. In contrast, phones whose main APIs are Java APIs or BREW APIs are restrictedly programmable.
Here are the principal benefits of native programmability versus restricted programmability:
Performance: native programming delivers greater speed and power, since it bypasses the need for conversion layers or intermediate virtual machines over lower level software. For many types of software, restricted programmability gives sufficient speed. However, in many other types, the additional speed of native programming is required. Suppliers of virtual machines unsurprisingly point out the increases in performance available from their virtual machines, from one version to the next. Indeed, these improvements are real. However, at the same time, the amount of data needing manipulation also increases, owing to screens having higher resolution, wireless networks having higher throughput, and users becoming accustomed to storing and accessing more data on their phones, etc. The result is that, for the foreseeable future, there will remain plenty of examples where owners of restrictedly programmable phones will find some of the apps on these phones to be annoyingly sluggish in performance
Excerpted from Symbian for Software Leaders by David Wood Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.
Introduction: Projects, Projects, Projects.
PART 1: SYMBIAN IN CONTEXT.
1. At the heart of the smartphone revolution.
2. The big picture of a Symbian OS project.
3. Involving ISVs.
4. Twenty reasons why smartphones will win.
PART 2: THRIVING ON SCALE.
5. Managing large projects.
6. Managing defects.
7. Managing configurations.
8. Managing integration.
9. Managing interfaces.
10. Managing testing.
11. Managing tools.
12. Managing plans and change.
13. Managing uncertainty.
14. Simplifying smartphone projects.
PART 3: SYMBIAN'S DESIGN PHILOSOPHY.
15. Design goals for Symbian OS.
16. Designing for efficiency.
17. Designing for robustness.
18. Designing for usability.
19. Designing for longevity.
20. Designing for smartphones.
PART 4: HUMAN ASPECTS OF SMARTPHONE PROJECTS.
21. The essential role of the project manager.
22. The essential role of the support network.
23. The essential role of renewal.
Appendix 1: Annotated glossary of abbreviations.
Appendix 2: Selected bibliography.
Appendix 3: Acknowledgements.