Apps tailored to devices: Native vs Web

Since HTML5, web apps have been touted as a one-size-fits-all solution to a multi-platform app. Yet even the strongest supporters of this strategy have become disillusioned.

pile of smartphone gadgets graphic

It doesn't work with clothing, and it doesn't work with apps.

Native development remains the best means of creating quality mobile apps.

It is the best means of addressing differences in operating systems, hardware, and user expectations. It is also the only way of effectively managing limited mobile memory and processing power.

User interfaces should be carefully tailored to the device. An app on Android that acts like an iOS app will fail to behave the way users expect, meaning very dissatisfied users. Neither is a phone app likely to succeed for tablet - the screensizes and use cases are too different.

One advantage to web content though, can be the ability to change it without resubmitting an app. Hence within your native app, we can use some web elements as entry points for flexible content, where it fits the needs of your company.

Five Common Misconceptions about Web Apps

1. Everyone is moving to web apps... false

Facebook, a web-based company, did try a web app - but they switched back to native after a huge investment of time any money, in order to enhance the user experience.

LinkedIn, also a web based company, switched back to native because it was impossible to debug memory-related problems, and they could not make animations smooth enough.

Xero, an accounting software company, switched back after 2 years of developing a web app. They found too much time was spent fixing browser-specific bugs.

2. Web apps are a one-size-fits-all solution... false

“Betting completely on HTML5 is one of the, if not the biggest, strategic mistakes we’ve made” - Mark Zuckerberg.

On top of device/OS fragmentation, you also now have to contend with browser fragmentation. As Steve Pinches, product head of the successful Financial Times web app, said: “...Does the Web gracefully work on multiple screen sizes and browser stacks? Unfortunately not." It's difficult work and even then will not work on every device.

Some features are also native-only, requiring a custom wrapper for each platform.

3. Web apps are faster/cheaper to build than native apps... false

For basic pages, perhaps. Once features, navigation and animations are needed, a huge, timely effort is required to fake native behaviour and ensure cross browser functionality.

The Financial Times web app for iOS took 5 developers approximately 6 months - the android app was not released til a year later.

“The cost in time, effort and testing to bring an HTML5 application to a native level of performance seems to be far greater than if the application was built with native technologies from the get-go” - Xero, upon switching back to a native app.

4. Users won't be able to tell the difference... false

Web apps are slower. Javascript in a browser is 6-10x slower than native code.

“...we realized that when it comes to platforms like iOS, people expect a fast, reliable experience... One of the biggest advantages we've gained from building on native iOS has been the ability to make the app fast." - Lead Facebook developer, Jonathan Dann.

With poor internet connections, web apps can fail in unexpected ways. Since they have no explicit memory management, they also quickly run out of memory and crash.

Plus, since web apps have no thread-management, UI-updates have to compete with network/data processing for valuable CPU time – leading to sluggish/unresponsive UI.

5. Web apps are easier to maintain... false

"Even with frameworks as amazing as Sencha Touch, we’ve found the ability to iterate as fast as we would like has become harder as our application has become more complex." - Matt Vickers, Xero developer on returning to native.

Debugging is extremely difficult for a web app. Memory leaks are untrackable, and if not initially an issue, the inability to explicitly manage memory may become a major problem as the app grows and gains users.

OS updates can even break web apps. Eg, IOS 7 eliminated the ability for web developers to hide the address bar programatically, and broke the ability to request more than 5MB of local storage. Android 3.0 also broke commonly relied on web app tools. It is clear web compatibility is not the concern of these companies.

✗ Going web means:

  • HIGHER fragmentation
  • Higher costs for less features
  • A slower app
  • Unsolvable bugs
  • Ongoing future headaches

✓ Going native means:

  • LESS fragmentation
  • An established method for delivering a great mobile experience
  • Enhanced hardware/software features
  • Works offline
  • Smoother animations and faster UI response
  • Consistent behaviour
  • Fewer on-going maintenance headaches
  • Simpler development solutions (instead of trying to mimic tools already made by Apple & Google).