Native, Web or Hybrid Apps?
I’m going to be covering some basics for relative newcomers to the world of app development today. I’m primarily writing for those of you who know your business and have a decent grasp of the web, may or may not have a smartphone, but are new to the world of mobile development and its jargon.
So you’re considering investing in a mobile app, but you’re immediately faced with a barrage of terminology. What’s the difference between iOS and Android? What are native, hybrid and mobile apps? More importantly, which is most appropriate for your business?
The Basics
Just as with computers, there are a few main kinds of smartphones that you’re probably already aware of. Your laptop is likely either a Windows PC or Mac.
With mobile devices, the main kinds these days are iPhones/iPads, Android, Blackberrys and Windows Phones. The difference between these devices isn’t just aesthetic. Just as your MacBook won’t run a Windows application, an Android phone can’t (in most cases) run an app built for iPhone.
When you decide to have an app built for your company or website, it’s important to factor this in to your decision making process.
As it stands, most people have Android or iOS (iPhone/iPad) devices, or a Blackberry. A few people have Windows Phones or older Symbian devices, but they probably aren’t overly worth worrying about at this stage.
Native Apps
The most basic way to build apps for mobile devices is to write them for a specific kind of device. For instance, iPhone apps are written in Objective-C, Android apps in Java, etc.
There are a number of advantages to writing apps in this way: they offer the fastest, most reliable and most responsive experience to users and can tap into the wider functionality of the device, such as the camera, compass, accelerometer, notifications, etc.
The downside of writing apps for a specific kind of device is that it will not work with other devices. If I write an app in Objective-C for iOS, it’s not going to run on Android without being completely re-written in Java.
This makes native apps the preference for particular categories of app development. More demanding apps such as games tend to be written natively to take full advantage of the device’s capabilities and wider functionality. Large organisations often choose native apps because they have the money to fund the longer development cycle and want a really slick final product.
Native apps are basically the ideal. If you are in a position to get a native app developed, there’s really no reason not to.
Some examples: Angry Birds, Shazam, Instagram
Mobile-Optimised Web Apps
At the other end of the scale are mobile-optimised web apps. These have often been the choice of companies who are not ready to invest in a more robust mobile presence. You’ve probably logged into your favourite blog or website and been taken to a ‘mobile version’. They’re usually just a condensed version of the usual website, resized to fit a smartphone screen.
The advantages of a mobile-optimised website or web app? With a few exceptions, they’ll run on any mobile device with a web browser and internet connection. They don’t require any mobile development expertise, so your usual web designer can probably throw one together.
The downsides? They’re extremely limited in what they can do effectively. They will display text and images. Videos will work on most devices, with the big exception of Flash videos on iPhone/iPad.
They’re often made to look more like applications than websites and some level of interactivity can be acheived using web technologies such as HTML5, CSS and Javascript. Mobile web developers typically avoid Flash, due to incompatibility with iOS devices.
The biggest argument for avoiding pure mobile web apps is that people are far less likely to use them. Less than 20% of time spent on mobile devices is spent browsing the web, people much prefer dedicated apps to browser-based solutions.
You have less options to keep users coming back: you won’t have a shortcut on their home screen and can’t send them notifications. Your content will only be available when they have an internet connection – there’s no options for offline viewing.
Web apps are great for displaying static content. For instance, you won’t find an app for our website – there would be little point and no-one would download it. For platforms like blogs, however, where you want to drive repeat visits to view new content, apps provide a valuable service. Push notifications can be used to notify users of new publications, the icon on their home screen will give you significant visibility when they’re bored and looking for a distraction.
Finally, app stores themselves can be an important marketing tool. Most of the apps that I’ve downloaded I’ve stumbled across in a list of featured apps or through a search there, rather than on the internet. Native and hybrid apps will appear on the App Store and Google Play, where web apps won’t.
Top Design Mag have compiled a collection of really well-done mobile-optimised websites.
Hybrid Apps
Somewhere between native and web apps are hybrid apps. They are quicker to build (and thus cheaper) than native apps, but a step up from what you can expect out of browser-based web apps.
Hybrid apps are web apps built into a native mobile framework. This essentially means that they take advantage of the cross-compatibility of web technologies such as HTML5, CSS and Javascript, but sidestep the disadvantages of web apps by being built leveraging device-specific, native frameworks.
The bulk of the app is built using web technologies, but native code is used to allow the app to access the wider functionality of the device and produce a more refined user experience.
The advantage of this approach is that only a portion of native code has to be re-written for different kinds of devices. The vast majority of development goes into the web component, which is used across all devices, reducing the time it takes to build the app (and thus the development cost).
As far as user experience is concerned, most people probably won’t notice a huge difference from a native app – particularly if there isn’t a significant interactive component to your app. They will still have a shortcut on their home screen, it won’t open in a web browser and they’ll receive notifications.
If a native app is unfeasible, a hybrid app is the obvious second choice and a close contender. Some large organisations use them and they are more accessible to smaller companies than native apps.
Some examples: Facebook, TuneIn Radio, LinkedIn
Final Thoughts
It used to be the case that any decent mobile app was native. There’s an increasingly compelling case to go with hybrid apps these days, though. HTML5 technologies can do some impressive things and native frameworks reduce the impact of the traditional disadvantages of web apps.
Some recent examples of what can be done with HTML5 as part of hybrid solutions make a really strong case for giving it another look, however.
The Financial Times has pulled it’s native app in favour of a (very good) hybrid app, which is almost indiscernable from a native experience. Likewise, games like Pirates Love Daisies and Gravity Maze demonstrate that HTML5 has limited possibilities for more complex apps such as games.
Ultimately, hybrid apps are never going to replace native entirely. They can’t quite achieve the same fine-tuned user experience and polish. However, they’re an increasingly attractive option for those wishing to make a serious investment in mobile without worrying about maintaining multiple apps for various devices.
Further reading:
Hybrid mobile apps take off as HTML5 vs. native debate continues
Native, Web and Hybrid Apps – Understanding the Difference
HTML5 and the Rise of Hybrid Apps