Mobile application developers have to make a choice of whether to go with native development or Web—or even a hybrid development strategy—to build apps for the devices they want to support.
When a programmer starts
looking at mobile application development, one of the first questions that
comes to mind is whether to go native versus Web technology.
Although Objective-C is key
for building native iOS apps, Java for Android and BlackBerry, and C# and
Visual Studio tools for Windows Phone, the opportunity to build mobile apps
with Web-standard technologies is making many developers think about the Web as
a first option. HTML5 and JavaScript have essentially changed the game.
Indeed, Forrester Research
issued a January 2012 report on the subject, titled "Building Mobile Apps?
Start With Web; Move to Hybrid." In the report, Forrester identifies not two
optionsnative versus Webbut four: native, hybrid (native code with HTML and
JavaScript), mobile middleware platforms, and a straight Web technologies
approach with HTML5 and JavaScript.
"I don't think there is
going to be a clear winner in the native versus Web debate, but different
workloads will trend toward one technology or the other," Jeffrey Hammond,
the principal author of the Forrester report, told
eWEEK. "For example, I still see most customer-facing apps
written in native code, but I'm also seeing a lot of B2E [business-to-employee]
apps written with a hybrid style or on top of middleware. Likewise, device-centric
workloads tend toward native code, while multichannel services (e.g. social
networking, content) are moving toward Web and a hybrid style."
"With the gap between
native and Web shrinking dramatically, applications that share a common, Web-standards-based
code base are appealing and also a very real option," said Dylan
Schiemann, CEO of SitePen and co-creator of the Dojo Toolkit JavaScript library.
"Creating apps for each native platform, as well as the desktop Web, all
with disparate technologies, is not my idea of fun, especially now that we are
equipped with HTML5 and open-Web technologies like Dojo Mobile, Wink Toolkit,
Maqetta and PhoneGap to create extraordinary mobile application experiences. By
clearly separating data from user experience, it's possible to more efficiently
create applications that target the platforms of today and tomorrow."
On the one hand, you get
faster code execution with native code versus JavaScript. However, Web apps
cost less to port to multiple platforms. Also, Web apps are easy to change and
give developers more control over their content.
Plus, it's easier to find
developers skilled in Web technologies rather than in native code. And the Web-standard
technologies tend to be less of an intellectual property risk, potentially
limiting exposure to lawsuits, the Forrester report said.