This week I had a rare day out of the office and
went to the Microsoft Partner Conference on the Gold Coast.
The highlight
of the day for me (with the quirky exception of the kick-off
speech from Nigel Marsh) was getting up
close to the new Windows Phone 7. It has a great user
interface that takes a leap from the now-common 4x4
rectangles, is fast, has a very fluid UI and integrates
brilliantly with MS Office, to list a few top level features.
This would be a perfect development platform for us as it would
utilise many of the development skills we already have, but as
we approach the launch of this new addition to the smart phone
market, I am experiencing mixed feelings as to what advice to give
clients when it comes to smart phone development.
The problem lies in the fact that the market already has several
big players including Apple's iPhone and Google's Android hogging
the spotlight, Blackberry (who, just quietly, had more
sales in Q1 than either the iPhone or Android) and the open
source Symbian - used on
many Nokia phones. So with so many platform options leading
to a segmented market, how can we tell clients that the best
course for mobile development is to build an app for the
latest phone to market, or in fact any one particular
type of smart phone.
In considering this issue it brings strong comparisons between
two particular on-going battles: PC versus Mac and the war of
the web browsers. The war of the web browsers is one that I've
been intimately familiar with since starting in this industry in
the late 90's and is one from a development point of view is
currently quite stable with the common browsers all generally
compatible, providing you code to W3C standards.
My quick Google based research for this post brought me to
an article, written around the time of the Android launch, by
John Blossom: Yeah, There's a Web
for That: Where are Mobile Apps Really Taking Us?
This highlighted some great points including the (IMO) accurate
statement that "most media companies view mobile
applications as little more than Compuserve-like kiosks from which
they can serve slightly jazzed-up versions of their Web page
content"
I think the key reasons for mobile OS companies to want more
apps, is to have an additional source of revenue (a percentage
of app sale revenue) and, because of the availability of a
particular app, as a method of locking subscribers into
using their phones. This is especially worth noting as, just like
with the battle between PC and Macs, the general capabilities,
features and performance of these phones is converging, so it is
less likely that the performance of a phone can be used as a
distinct selling point.
Clearly smart phones is not a medium that can be ignored. The
opportunities for creating a device based or
an integrated experience will continue to grow,
especially as the boundary between smart phone, ipad, slate,
netbook, notebook etc blurs.
So with the introduction of more smart phones OS's to the
market, it is becoming very hard to choose a single type
of phone to focus on when developing an application.
The clearest answer to this problem is to focus on the smart
phone web browser. Each of the phones has a capable browser, built
in the era of web standards (and generally complying..), so
building a mobile web application, you can conquer the
segmentation issue by providing an optimised mobile experience
to all smart phone users.
For a while we will revisiting the issues around browser
compatibility including which features (GPS, contacts etc) can be
revealed to the app, but these will be addressed and the process of
developing for a mobile will mirror the process of developing for
the web.
There are notable exceptions to this - for example if the smart
phone app is to be used in a closed environment, such as a
single business where the model of handset can be controlled by
policy, or if the application needs to utilise a unique feature on
the one of the phones.
But for general development where the audience is the public I
believe the answer is cross-compatible, one site for all mobiles,
mobile web applications.