It seemed that the users of the applications disagreed. It’s arguable why this is the case,
but it
’s very hard to make native-looking web applications that can be reused across
many different platforms, though it is possible. Just as applications on the Mac desktop
that have been ported from Windows tend to stand out like a sore thumb by not quite
working as the user expects, web applications, especially those that are intended to be
used across different platforms, tend to do the same.
Just to be clear, this isn’t a criticism of HTML, CSS, and JavaScript. The Web’s technology
stack is solid and maturing, and the attraction of having a cross-platform code base is
going to be immediately obvious to you as a developer. However, to your users, it’s not
so obvious. Most of the arguments that are put forth in support of using web technol‐
ogies, or other non-native frameworks, are from a developer’s perspective. While that
doesn’t make them invalid, you should take a serious look at those arguments from a
user’s perspective, because none of them really address their main concern: usability.
Consumers won’t buy your application on their platform just because you support other
platforms; instead, they want an application that looks like the rest of the applications
on their platform, that follows the same interface paradigms as the rest of the applica‐
tions they’re used to, and that is integrated into their platform.
If you integrate your application into the iOS ecosphere, make use of the possibilities
that the hardware offers, and make sure your user interface is optimised for the device,
the user experience is going to be much improved. All of this is possible using web
technologies, but most of the time it’s actually really hard to write non-native applica‐
tions that work well across multiple platforms. It’s harder still to make them look native
on half a dozen different platforms.
Why Write Native Applications?
The obvious reason to use the native SDK is to do things that you can’t do using web
technologies. The first generation of augmented reality applications is a case in point;
these needed close integration with the iPhone’s onboard sensors (e.g., GPS, acceler‐
ometer, digital compass, and camera) and wouldn’t have been possible without that
access.
Although the Safari browser on iOS supports the geolocation capabilities HTML 5 pro‐
vides, this doesn’t alleviate the problem entirely. It’s doubtful that all platform-specific
hardware is going to get the same sort of treatment in HTML 5, so it’s unlikely that you
will see the arrival of augmented reality web applications.
2 | Chapter 1: Why Go Native?