cross-platform smartphone development
January 01, 2011
In the past few years there has been significant changes in mobile development. More than half of the world population now has a mobile phone — more people than have access to personal computers. Mobile phones have compute power that exceeds that of personal computers when I started programming and smartphones are gaining adoption fast.
My work has focused on application development on mobile phones and on the web. I’ve seen an interesting trend in mobile development that is explored in my new book: Pro Smartphone Cross-Platform Development: iPhone, Blackberry, Windows Mobile and Android Development and Distribution. If the title seems a bit long and complicated, it speaks to how mobile development today is a bit longer and more complicated than it should be given what we are able to produce. Every platform has its own APIs and often requires that you code in a specific language as well. The book addresses an alternate path which borrows patterns from the web and allows for rapid application development.
The cross-platform methodology explored in the book is where the UI of your application is in HTML with your business logic in Javascript, Ruby or native code. The focus is on native applications, which have access to local storage, camera, contacts, geolocation, etc. The book is written in three parts:
- Platform Development and Distribution covers how to write using the native language, tools and framework. It includes a “hello world” application with simple UI and how to embed a web browser component in your application. It also includes how to distribute an application, what you need to get into the platform marketplace or app store and whether there are other options, like “over the air” distribution.
- Cross-Platform Native Frameworks covers Rhodes, PhoneGap and Titanium Mobile. Originally we were just going to cover Rhodes and PhoneGap, which both use HTML UI with Ruby and Javascript respectively (although Rhodes lets you access native components). Titanium Mobile was a late addition and uses Javascript to include native components and supports just two platforms (iPhone and Android).
- HTML Interfaces covers how to sue HTML to make your application UI look and feel native on WebKit browsers. It also includes a chapter on how to craft HTML for BlackBerry if you need to support the older BlackBerry browsers — that chapter alone is worth the price of the book if you need it. There is also a nice appendix on core CSS concepts that you’ll need if you are new to app development in HTML.
It is a survey book, designed for people new to mobile development or who only know one platform and are seeking to understand how to tackle multiple platforms economically. The content has been criticized as something you could “google for;” however, I found that to really understand what it takes to develop and release a mobile application on each platform, you need to build one. This book gives you a good grounding in your options and collects all of the information in one place that you would need to make a decision about pursuing cross-platform development on your own or using one of the popular frameworks. The goal is to give you enough information so that you can productively dive into the right starting point for you.
This book won’t tell you everything. It’s not for folks who want to develop a game or expect to focus on a single platform. It’s for people who need to make quick decisions about how to move into mobile and to get a preview of the challenges they will face. It doesn’t endorse specific technologies, but lays out the trade-offs. This is the book I wish I could have read when I started mobile application development.