About the Technical Reviewer

Fabio Claudio Ferracchiati is a prolific writer on cutting-edge technologies. Fabio has contributed to more than a dozen books on .NET, C#, Visual Basic, and ASP.NET. He is a .NET Microsoft Certified Solution Developer (MCSD) and lives in Rome, Italy.

Acknowledgments

The authors received enthusiastic support from many of the creators of the software discussed herein. We would like to extend our thanks for technical review and enthusiastic support from the Rhomobile team: Adam Blum, Lars Burgess, Brian Moore, Evgeny Vovchenko, and Vladimir Tarasov; Brian LeRoux from Nitobi, David Richey and Jeff Haynie from Appcellerator; and Ed Spencer from Sencha. We also want to acknowledge Rupa Eichenberger's significant contribution to early technical reviews; Nola Stowe for initial work on the Android chapter; and Sarah Mei for her work on Rhodes geolocation. Jim Oser, Bruce Allen, and David Temkin each had a substantive impact in reviewing specific chapters.

Introduction

Developing mobile applications can be tricky business. Mobile developers need to use platform-specific tools and APIs and write code in different languages on different platforms. It is often hard to understand what it takes to develop and distribute an application for a specific device without actually building one. Each platform has different processes and requirements for membership in developer programs and documentation for different parts of the development process are often scattered and hard to piece together. Therefore, we have divided the book into three main topics: Platform Development and Distribution, Cross-Platform Native Frameworks, and HTML Interfaces.

Part 1: Platform Development and Distribution

In Chapters 1-5, we provide an overview of four platforms: iOS, for building iPhone, iPad, and iPod Touch applications; the Android open source platform, created by Google; Research in Motion's BlackBerry platform; and Windows Mobile from Microsoft. Each chapter follows the same outline:

• Building a Simple Hello World

• Running in the Simulator

• Adding a Browser Control

• Building for the Device

• Distribution Options and Requirements

This common outline allows for comparison across the operating systems and provides a feel for the patterns of the development process. If you decide to pursue native application development using only the vendor SDK, you will need a lot more details than any single chapter can provide, but this should provide the right amount of information to kick-off some experimentation or help make a decision about which platforms to pursue.

It is inevitable that developers create ways to share code across plaforms when CPU power is fast enough and there is sufficient memory to support some kind of abstraction and demand fuels faster time to market. We saw this with cross-platform desktop frameworks that emerged in the 1990s, and now with cross-platform mobile frameworks.

Part 2: Cross-Platform Native Frameworks

Chapters 6-9 provide an overview and examples of applications written in three popular native frameworks. In categorizing as a "native framework," we selected software that allows a common development approach across platforms but that build to an application that is indistinguishable by a user from one built with native code (as described in Part 1). Note that to build using these frameworks, you will still need the vendor SDK described in Part 1 and use vendor-specific techniques for code signing and distributions.

There are two chapters on the Rhomobile platform, one for the client-side Rhodes and one for the RhoSync server framwork. Rhodes is covered in more depth than the other two platforms: Titanium Mobile and PhoneGap. Rhodes is at version 2 at this writing, Titanium v1.2 and PhoneGap 0.9. As with the rest of the book, these chapters are designed to provide a feel for what it is like to develop for each platform, to kick-start some experimentation, and aid in deciding what platform to spend more time with.

Part 3: HTML Interfaces

You can use the technique of adding a browser control in combination with the HTML and CSS patterns and frameworks presented in Chapters 10-14.

To develop a mobile application user interface, a mobile developer must typically learn a platform-specific language and SDK. This can become quite cumbersome if you need your application to run on more than one platform. Fortunately, there is an alternative; all smartphone platforms today include a browser control component (also known as a web view) that a developer can embed in their application that will allow them to write some or all of their app in HTML, CSS, and JavaScript.

Leveraging HTML and CSS for mobile application UI gets even better with the introduction of the mobile WebKit browser. WebKit is an open source browser engine originally created by Apple. WebKit introduces a partial implemention of HTML5 and CSS3 with full support for HTML4 and partial implementation CSS2. Note that as of this writing, HTML5 and CSS3 are still in "working draft;" however, these emerging standards have been aggressively adopted by multiple web browsers and the latest versions of WebKit-based browsers include most HTML5 and CSS3 features. The WebKit mobile browser is currently the native browser for iPhone/iPod Touch/iPad, Android, Palm, and many Symbian phones. BlackBerry plans to catch up with its own WebKit-based browser, recently demonstrated at Mobile World Congress in February 2010. Windows Mobile ships with an IE-based browser, which includes a better implemention of CSS1 and 2 compared with BlackBerry, but still has limitations. It is possible, though sometimes challenging, to build cross-platform UI in HTML and CSS that works across WebKit, mobile IE, and BlackBerry broswers. The most challenging part is differing levels of support for current HTML and CSS standards.

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