One of the first questions to consider when jumping into the app development arena is whether to build a native or hybrid application.
There are distinct advantages of each approach, which should be weighed carefully alongside your time, budget and feature requirements.
Which one is best for you?
Without getting too technical, in this blog i’ll lay out the facts and then cover which situational factors will impact your decision to ‘go native’ or ‘go hybrid’.
Let’s kick off with the cream of the crop: native apps.
What is a ‘Native App’?
In short, it’s a mobile application developed specifically for a mobile operating system, typically Android or iOS.
You can see from the example above, there are distinct differences in the interface and navigation of Facebook for Android vs iPhone users.
How it’s built:
To be available on multiple types of devices, a native application will need to be redeveloped using platform-specific languages.
The most popular of these languages are Swift for iOS, and Java for Android.
Native applications typically perform well, utilise many phone native features (gestures, GPS, camera, etc), and offer a great user experience through leveraging native device functionality.
Obviously, there are exceptions to these rules, with many developers still managing to create hideous native apps, however the tools are all available to do otherwise.
Some examples of native applications are:
- Bluescope’s SteelDrive
What is a ‘Hybrid App’?
Hybrid, as the name suggests, is a combination of a number of different technologies.
It is comprised of a ‘web app’ wrapped in a native shell. The real advantage of developing hybrid apps is that they allow for the rapid release of the same app on multiple platforms, as there is one central code base.
How is it built?
Some examples of Hybrid applications are:
- Amazon Web Store
- Khan Academy
You’re now saying, ‘Okay, I get it, they are different and both suit a purpose – which one should I use?’
Take a look at the following lists to get an idea of factors that typically lead to choosing a native solution or a hybrid one.
Factors that lean toward a native solution
- You want to build a refined product utilising many device functions, such as camera, microphone, compass, accelerometer and swipe gestures.
- You value user experience and performance over all else. Taking advantage of native features offers a much more seamless, intuitive experience for the end user.
- Budgets aren’t extremely tight, or if they are you’re happy to target a smaller audience but with a more engaging product.
- You plan on building a product with complex functionality.
- You plan on expanding the products breadth of functionality in later releases.
Factors that lean toward a hybrid solution
- You’re trying to gather as much user feedback as possible by targeting a large audience.
- You’re on a smaller budget.
- You don’t care too much about releasing a ‘not so refined’ product.
- You have demanding ‘time to market’ requirements and need to launch as soon as possible.
- Your app isn’t overly complex (now and future states).
- Your app doesn’t rely on offline capabilities.
Basically, native apps are a much better experience for the end user, but hybrid apps are a good alternative if you’re concerned about budget and timing above all else.
4 questions to ask before you decide:
- Does your app require access to native features? For example:
- Phone contacts
- Hardware device buttons
- Push notifications
- How fast do you need to get this out to market?
- What budget do you have to play with?
- How frequent is your update cycle? What levels of functionality do you want to add in these updates?
- How important is user experience to you? If you’re in a competitive marketplace, I would definitely recommend prioritising the user experience. Latest data is showing this will be a key product differentiator for mobile over the next 5 years.
While there are compelling benefits of each, the decision to go native or hybrid should be a strategic one, taking into consideration your:
- Product roadmap,
- Overall business objectives, and
- End user experience