Today we’re talking about hybrid publishing apps from the technical perspective.

Let me start by quoting @brad_frost from his article "Native vs. Web" is Total Bullshit:

No one working in the mobile web will say that the web can out-perform native. We simply don’t have the tools available to even try. Likewise, no native app developer is going to say their app is available to anyone with an Internet connection. Now that we have "the argument" out of the way, let’s ask the question: how do we approach mobile?

Touché. So let’s look at the different components that need to be built, and for each of these decide whether native technologies or web technologies will make our life easier. If you have no idea what I’m talking about, you’ve probably missed the earlier articles in this series -- Part I (target platforms), Part II (data formats) and Part III (native and web). Maybe read those first and come back here.

Native Tech vs Web Tech: Component Death Match

For the rest of you, it’s time to dive into the detail. For each of the main components of a publishing application, we’ll look at the two options and decide which we think is better. For those that couldn’t be bothered, jump straight to the table at the end.

Publishing for Tablets_Flavors1.png
Financial Times and OnSwipe: Pure Web Apps

Content Layout

What: The ability to display and format content in a way that will keep editorial teams happy.
Summary: Writing a layout engine is difficult. However, HTML and CSS are made for this, and improving all the time. WebKit is available almost everywhere. Other layout engines are painful and, more importantly, device specific. While it is, of course, possible to write layouts using technology like iOS Core Text, it is more effort, requires hard-to-find skills and means an app update for every new layout. We went into detail here in Part II (data formats).
Verdict: Web wins hands down.

Core User Interface and Navigation

What: A beautiful user experience that delights the user and just feels right.
Summary: Even if you ignore the consistency user experience arguments, it is difficult to make a pure web based interface that has the smoothness and performance of a completely hardware accelerated native user interface.
Verdict: Native takes this one, although the web will make a strong comeback in the coming years.

Business Logic

What: The code that sits behind the user interface and controls how the application works.
Summary: For applications without much business logic, this isn’t really relevant. I’d argue it is probably easier to implement the business logic natively, but that does mean it needs to be done in different languages for different platforms. Writing the business logic once in JavaScript is an interesting (albeit new) idea (Kirin) so I’m giving the Web a slight edge here.
Verdict: A controversial narrow victory for the Web. I’m probably going to regret this.

Access to device features

What: The ability to access hardware and software features of a tablet or phone.
Summary: The web can’t compete here yet. Yes, yes, I know the standards are on their way, but it is going to be a while. PhoneGap is the King of the Hybrid when it comes to this category. Have a look at their documentation for a complete list of features that Native can do that the Web cannot: Accelerometer Camera , Compass, Network Connection Info, Contacts from Address Book, Device File System, Geo-location, Media record and playback and more.
Verdict: No contest. Native wins by a country mile.

Publishing for Tablets_Flavors2.png
The Times of London: Pure Native

Content Downloading

What: The ability to download content to the device so it can be read quickly and easily.
Summary: Both web and native can download content just fine, and both use the same protocols to do this. Native has a slight edge in that it is easier to download a single zip package and unzip it on the client, although it has to be said that Javascript only unzip libraries are appearing. However, the clincher here is the ability to automatically download content in the background -- iOS 5 Newsstand being the neatest implementation of this. I can wake up in the morning, get onto a train with no connectivity, and read my daily paper which was silently downloaded overnight. The web can’t match this yet.
Verdict: Native, because remembering to download in advance is a pain in the ass.