What is a Smartphone

Cell phones today are generally divided between the low-end "feature phones" and higher-end "smartphones." A smartphone has a QWERTY keyboard (either a physical keyboard or soft keyboard like the iPhone or BlackBerry Storm) and is more powerful than the feature phone with larger, high-resolution screens and more device capabilities.

Smartphone Landscape

Relative to desktop computers, smartphones have a diverse set of operating systems (see Table 1-1). Moreover, unlike desktop operating systems, the OS in mobile computing typically determines the programming language that developers must use.

When developing an application for the desktop, such as Microsoft Word or Adobe PhotoShop, application developers create their core application in a language such as C++ and share that core code across platforms, but then use platform-specific APIs to access the filesystem and develop the user interface. In the 1990s, a number of cross-platform desktop frameworks emerged, making it easier for companies to develop a single codebase that they could compile for each target platform (typically, just Mac and Windows). For mobile development, this is a bigger challenge.

5 Wolfe, Alexander. "Is The Smartphone Your Next Computer?" October 4, 2008. http://www.informationweek.com/news/personal_tech/smartphones/showArticle.jhtml7art icleID=210605369, March 16, 2009.

6 Gary Kim, "Can Mobile Devices Replace PCs?" http://fixed-mobile-convergence.tmcnet.com/

topics/mobile-communications/articles/66939-mobile-devices-replace-pcs.htm, October 19, 2009.

Table 1-1. Smartphone Operating Systems and Languages

OS

Symbian

RIM BlackBerry

Apple iPhone

Windows Mobile

Google Android

Palm webOS

Language

C++

Java

Objective-C

C#

Java

Javascript

Even focusing only on smartphones, there are four major operating systems that make up over 90% of the market: Symbian, RIM BlackBerry, Apple iPhone, and Windows Mobile, with the rest of the market shared by Linux and emerging mobile operating systems, Google Android and Palm's webOS. For most of these operating systems, there is a native development language, which is required to develop optimally for that platform, as illustrated in Table 1-1. While it is possible to develop using other languages, typically there are drawbacks or limitations in doing so. For example, you can develop a Java application for Symbian; however, several native APIs are unavailable for accessing device capabilities. Besides the differences in languages, the software development kits (SDKs) and paradigms for developing applications are different across each platform. While the device capabilities are almost identical, such as geolocation, camera, access to contacts, and offline storage, the specific APIs to access these capabilities are different on each platform.

Cross-Platform Frameworks

The fast-growing market for applications drives the need for faster time to market. Just as market opportunities led vendors to release cross-platform applications on desktop computers in the 1990s, mobile applications are more frequently available across devices. Operating systems vendors vie for the attention of developers and application vendors, but improve their tools incrementally. Where such dramatic challenges exist in developing across multiple platforms, it is natural for third party cross-platform frameworks to emerge.

The innovation in cross-platform frameworks for smartphone applications surpasses the patterns of abstraction seen in the cross-platform desktop frameworks of the 1990s. These new smartphone frameworks are influenced by the rapid application development techniques we are seeing in web development today. There are three specific techniques in web application development that are borrowed for these non-web frameworks: 1) layout with mark-up (HTML/CSS); 2) using URLs to identify screen layouts and visual state; and 3) incorporating dynamic languages, such as Javscript and Ruby.

A generation of designers and user interface developers are fluent in HTML and CSS for layout and construction of visual elements. Additionally, addressing each screen by a unique name in a sensible hierarchy (URL) with a systemized way of defining connections between them (links and form posts) has created a lingua franca understood by visual and interactions designers, information architects, and programmers alike. This common language and its standard implementation patterns led to the development of frameworks and libraries that significantly speed application development on the Web. These patterns are now being applied to the development of mobile applications as common techniques by individual developers as well as in cross-platform frameworks.

The new cross-platform frameworks (and the native Palm webOS) leverage these skills using an embedded web browser as the mechanism for displaying application UI. This is combined with a native application that transforms URL requests into the rendering of application screens simulating the web environment in the context of a disconnected mobile application.

The Branded Experience of Mobile Applications

New cross-platform smartphone frameworks support a trend where mobile applications, such as web applications, are a branded experience. The Web is a varied, diverse place, where the lines between application functionality, content, and branding blur. Web applications do not express the native operating systems of Mac, Windows, or whatever desktop happens to host the browser. Web applications are liberal with color and graphics, defying the UI conventions of the desktop as well as avoiding the blue underlined links of the early Web that Jacob Nielson erroneously identified as the key to the Web's usability.

As an example, the NBA released its NBA League Pass Mobile app for both iPhone and Android. "Multiplatform is a key tenet of our philosophy," said Bryan Perez, GM of NBA Digital. "We want our content available to as many fans as possible, and with more and more carriers adopting Android around the world, it's important to be there now."7 Most businesses simply can't afford to focus on the niche of a single operating system or device. To reach customers, more companies are developing mobile applications, and the customers they want to reach are divided across the wide array of mobile platforms. Despite the challenges, businesses are driven to communicate with their customers through their mobile phones because of the enormous opportunity presented by such connectedness.

It may be effective shorthand to say that smartphones are the new personal computer; however, in reality they represent a new communications medium. This book covers frameworks and toolkits that make it easier than ever before to develop applications for multiple mobile platforms simultaneously. Leveraging these tools, you can take advantage of the widespread adoption of smartphone devices to broaden the reach of your business.

To provide some perspective on how application interfaces vary across platform, Figures 1-1 to 1-5 illustrate how two applications, WorldMate and Facebook, are realized across various platforms. These specific applications are not implemented using cross-platform frameworks, but are included to provide context on design decisions made in cross-platform implementation. As you will see, the two applications look quite

7 Todd Wasserman, "So, Do You Need to Develop an Android App Too Now?," http://www.brandweek.com/bw/content_display/news-and-features/ direct/e3iebae8a5c132016bcab88e37bc3948a44, October 31, 2009.

different from each other, even on the same platform. As is typical, these mobile applications choose a color scheme that is consistent with their brand, rather than adhering to defaults provided by the smartphone operating system.

Tip Calculator

TAKE CHARGE Of YOUR TRIPS

GET WORLDMATE'GOLD

VorldMate Services My Trips Book Hotel Learn More

Figure 1-1. WorldMate ¡Phone

Figure 1-1. WorldMate ¡Phone

Services

Book Hotel

Book a hotel near your trip locations

Flight Search

Search nights between cities

Limo Reservations

Great rates, over 5000 airports

Local Search

Find restaurants, nightlife and more

Currency Converter

Convert sums & get exchange rates

Tip Calculator

TAKE CHARGE Of YOUR TRIPS

GET WORLDMATE'GOLD

VorldMate Services My Trips Book Hotel Learn More

My Location: London

"^i Cloudy

09:45, No delays posted

GO GOLD

I World Weather

t»55 = 0

London

¡p Sun

14W

Drizzle

Mon

ll'i"

Light Rain

P tue

11 '2°

Drizzle

ip Wed

Drizzle

& Thu

12°:4°

Light Rain

options

Back

22/03/2009 Sun London

23/03

Paris

Tokyo

22/03

New Von. NV

Bertln

options

Back

Play Mow

Los Angeles CA

HP Sunny

*P Mostly Sunny jjfc Satur day 3S° 17° r^-b Partly Cloudy

cT-b Partly Cloudy

15:Z91 Local Search I Location. I« Near Me

^J Meeting: Board Conference

*P Mostly Sunny jjfc Satur day 3S° 17° r^-b Partly Cloudy

cT-b Partly Cloudy

^J Meeting: Board Conference

Figure 1-3. WorldMate BlackBerry

x Status Updates ~

i) Aarti Patel is stuck in traffic

22 hours ago C„ me 1 _ki Sarah Symortds is almost done school! :)

News Feed i Status Updates s Photos 1 Links

Igetting married

Dilute officially done x Status Updates ~

i) Aarti Patel is stuck in traffic

22 hours ago C„ me 1 _ki Sarah Symortds is almost done school! :)

Figure 1-4. Facebook BlackBerry

' Uploads

Figure 1-4. Facebook BlackBerry facebook cant love it here any more than i do.

every person is incredible, I'm getting to know everyone individually.

the house was built in the 1600s, with 4 stories and at least 20 rooms.

I swim and play soccer and get bruised and sweaty and bug bitten and tanner every day.

it's like 23580436 degrees outside.

the church bells never stop.

it's like 23580436 degrees outside.

the church bells never stop.

RMM

gppH

MM

HI

HB

' *

facebook Ph°,os H L°901" facebook

Figure 1-5. Facebook iPhone

Figure 1-5. Facebook iPhone

Cross-Platform Development

Frequently, the industry produces multiple platforms that essentially provide the same solutions for different market segments. In the 1990s, Microsoft Windows and the Apple Macintosh provided GUI platforms with windows, mouse input, menus, and so forth. Software vendors needed to create applications for the both platforms and, inevitably software developers created libraries and frameworks that abstracted the differences, making it easier to develop one application that ran across platforms. In the 2000s, as more applications moved to the Web and browser syntax diverged, software developers created cross-platform libraries and frameworks, such as jQuery, Dojo, and OpenLaszlo. When there exists both a market for applications and enough processor speed and memory to support a layer of abstraction, developers naturally create cross-platform tools to speed time to market and reduce maintenance costs.

With the phenomenal growth of mobile, which has seen broad adoption across a diverse array of platforms, it is inevitable that software developers would create cross-platform mobile solutions. However, the challenge with mobile operating systems today is the diverse set of languages, in addition to platform-specific API syntax. Mobile cross-platform frameworks are addressing that challenge by leveraging the ubiquitous browser Javascript or scripting languages such as Lua or Ruby.

Making Games For the iPad

Making Games For the iPad

Making an iPad game doesn't have to be something that only developers do. You too can create a game that will help to entertain the user and it will help to make you money. With Making Games for the iPad, you don't have to be a computer genius, but you will certainly feel like one.

Get My Free Ebook


Post a comment