The Two Paths to Mobile
Mobile development currently splits between two approaches: native apps built for a specific platform, and HTML5 apps that run in the mobile browser or inside a native wrapper. The two camps have passionate advocates, and the choice has real consequences for development time, user experience, and reach.
HTML5's appeal is straightforward — write once, run anywhere that has a modern browser. Native's appeal is equally clear: full access to platform capabilities, polished performance, and first-class integration with the device's ecosystem. The right answer depends on what you're building and who you're building it for.
Native Advantages and the Hybrid Compromise
Native apps have a genuine edge in two areas. First, the in-app experience: native code can handle swipe and multitouch gestures, respond to hardware keys such as Android's search button and volume controls, and access device hardware like the GPS and camera. Some platforms even grant permission for deep operating system access — detecting remaining battery life simply isn't possible with pure HTML5.
Second, platform integration extends beyond the app itself. Android provides home screen widgets, status bar notifications, and intents that let your app announce itself as a provider of general services other apps can call on. None of that is available to a standard web page.
However, the native-only advantage is narrowing. A hybrid approach — a native shell with an embedded web view — exposes native features as web services, which is how the open-source PhoneGap framework works. This lets a web app access widgets, notifications, and intents, though at the cost of added complexity.
The web standards themselves are also catching up. Offline storage, geolocation, canvas graphics, and video and audio playback enjoy widespread support on modern smartphones. Android 3.1 added the ability to capture photos and video using web standards, and the latest iOS browser supports WebSocket for two-way streaming plus device orientation detection. Native remains a fast-moving target, but the web is closing the gap.
Performance Realities
Native apps run without a web runtime layer, so they can take advantage of GPU acceleration and multithreading directly. That's an inherent advantage for graphic-intensive applications.
Web runtime speed has improved dramatically too. JavaScript engines like Chrome's V8 have made huge strides since launch, and hardware-accelerated canvas rendering delivers substantial performance gains. The Web Workers API enables multithreading, and a growing ecosystem of performance-optimized libraries plus well-documented optimization techniques help developers squeeze out more speed. Much of this work originated on the desktop, but it is increasingly relevant to mobile — performance expert Steve Souders maintains a dedicated page of mobile performance tools.
Not every mobile platform has received all these desktop advances yet, but trends point in that direction. It's also worth noting that most mobile apps are information-based — news, mail, timetables, social networks — rather than boundary-pushing 3D games. Sites like GMail, Amazon, and Twitter already demonstrate that mobile web performance is more than sufficient for such uses. Basic games are feasible with 2D canvas, and WebGL is beginning to appear on mobile — Firefox 4 supports it. In the meantime, frameworks like ImpactJS compile WebGL apps to native apps that use OpenGL directly.
Development Experience Trade-offs
Native development leans on mature languages — Java, Objective C, C++ — with APIs designed from the ground up for their platforms. Desktop emulators provide a close representation of target devices for debugging. The web's downside is fragmentation: no guarantee that a feature will be available in every browser, and even when it is, interpretations of standards vary.
But web technologies have proven more capable than their document-centric origins suggested. JavaScript was built in ten days, yet developers have evolved patterns for scalable design, and HTML5, CSS3, and EcmaScript Harmony continue to improve the developer experience. The more significant advantage for the web, though, is cross-platform reach. An Android app written in Java requires a full port to Objective C for iOS. A web app runs on Android, iOS, WebOS, BlackBerry, and Windows Mobile — in theory. In practice, you'll still need platform-specific tweaks for the best experience, but native development requires the same kind of per-platform work due to different OS versions and devices.
The web has well-established strategies for fragmentation. Progressive enhancement means targeting a basic device first and layering platform-specific enhancements where available. Feature detection libraries like Modernizr support responsive design. With these techniques, a single code base can reach a wide range of devices, from feature phones to tablets and TVs, as demonstrated by Google's multi-UI demonstration at Google IO 2011, which targeted five distinct form factors with shared logic and markup.
Interface and Discovery
Each platform has its own visual language and interaction idioms — what a "long hold" does, for example, varies by platform. Native toolkits provide widgets that match user expectations for free. One HTML5 app can't fully satisfy every platform's conventions.
The web has its own look-and-feel, and each mobile platform effectively has its own "web look-and-feel" established by its default browser. That can be an advantage: web apps maintain consistency with the desktop browsing experience and across devices. It's also not necessarily a drawback — many successful native apps, games especially, don't follow platform conventions anyway. Even popular Twitter clients on the same platform vary widely in their interface design, which you can verify by comparing the most-downloaded options in your app store. If certain platforms matter more than others, targeted enhancement via browser detection — sometimes frowned upon, but feasible — lets you match native quality on those priority targets.
App marketplaces like Android's Market and Apple's App Store have become a powerful discovery channel: browsing, searching, ratings, and recommendations all drive installs. Yet the web is arguably the most discoverable medium ever built. URLs identify every published app, search engines index them, and other sites link to them. Anyone can share a web app via email, social networks, or SMS — recipients tap the link and the app launches in their browser. App store mechanisms for rating and commenting on web apps aren't yet comparable, though this is changing.
Revenue Paths
For developers looking at the app stores, the direct payment models are a strong lure. Native platforms offer integrated, secure mechanisms for one-time purchases, in-app payments, and subscriptions. These systems allow a successful app to evolve beyond a single sale into a recurring revenue stream. On top of that, more traditional web monetization—advertising and sponsorship—is just as applicable within native apps.
The web is equally monetizable, though its strongest models are subscription-based software-as-a-service, as seen with products like Google Apps and premium email tiers. Advertising, affiliate links, and cross-promotion round out the toolkit. However, the desire to tap into app store checkout flows is understandable for web developers, and a workaround exists: the native “wrapper app.” By creating a minimal native application that hosts a web view, you can submit your web-based product to any marketplace. Many such apps are already thriving in the stores, their web origins hidden from users.
The main hurdle lies in building these wrappers for each OS. Services like PhoneGap assist with cross-platform compilation. Cloud-based solutions such as PhoneGap Build and Apparatio can take this a step further, generating iOS or Android binaries directly from a code repository, removing the need to install a single native SDK on a development machine.
Whether the marketplaces will eventually host pure web apps without the wrapper overhead remains uncertain. The introduction of the Chrome Web Store is a meaningful signal, even if it is desktop-focused. It has spurred interest in the concept of web app catalogues, including some mobile-specific efforts, but that ecosystem is still nascent.
Choosing a Path
There is no universal victor in the native-versus-web debate. App requirements will dictate which stack is superior. The web stack holds a momentum advantage, yet native development continues to advance rapidly in capability and performance. As long as web technologies are not first-class citizens on every mobile OS, native development will remain a critical tool.
Hybrid development, blending web views with platform-native components, may be the most practical approach for many projects. It leverages web strengths where effective and falls back on native power where required.
If you choose the web route, rely on web standards and the principle of progressive enhancement. The web’s diversity, whether seen as fragmentation or variety, comes with a substantial base of prior art that developers can leverage across a vast landscape of devices and systems.



