Topic: Mobile Development
Hybrid or Native Apps?
Alex Chernyshev, Head of development
This article is about business apps only. Although we love playing games, we develop «less casual» solutions, which doesn’t mean they can’t be entertaining as well.
We’ve already discussed a marketing-based approach to building a mobile app. Once you’ve figured out how your app fits into your business model and the role it plays, you can proceed to the technical questions.
Before discussing them with the CTO or a mobile agency, we urge you to answer several crucial questions (below) addressing the business strategy rather than the technical specifications.
There are three major ways to build an app: hybrid, cross platform, and native.
Native is the easiest to grasp: the entire app is made specifically to suit the requirements of the chosen platform, using the programming language and development tools specific to that platform. This means you need to make several different versions of the app for each major platform and you need a team with various skills (iOS requires proficiency in Objective C and Toolkit, Android requires Java expertise and a separate set of tools).
Hybrid apps are, in a nutshell, advanced interfaces that allow access to web-services and forms as if they were native. This may result in lower performance in some cases, but is useful in many other ways.
Cross-platform solutions are developed in a universal language and then compiled depending on the platform. Obviously, this saves you time during prototyping, but on the down side, it leads to (sometimes unsolvable) compatibility issues.
Remember, there’s no silver bullet. Each way serves its own purpose. The choice depends on your specific needs and resources.
90% of the time, an agency will try to convince you to choose the way they are most experienced in. That’s not necessarily a bad thing: people should stick to the tools they feel most confident with. On the other hand, this doesn’t mean these tools are the best choice for you.
Start by finding a detailed and reasonable answer to the following questions together with your in-house marketing team.
01Which platforms are most popular with our target audience?
If most of your users prefer Android, it would be reasonable to focus on a native Android development in order to deliver the best user experience possible. If you’re not sure and want to do some preliminary testing with basic functionality, then build a cross-platform prototype.
The more you know, the better. If you’re making a mobile version of a popular web-service, you probably have stats on mobile device opens, but be careful not to fall for the survivorship bias: if iPhone users open your website more often, this could mean that it works fine for them and thus, you should focus first on the Android users to provide them with better access to your products.
Always remember: your app must perform best on your clients’ devices, not your Board of Directors’ shiny new iPhones.
02Does it move?
03Does it use the device to its full capacity?
Native apps get all the exclusive access to the latest features: camera, GPS, parallax—you name it.
There are libraries and add-ons for hybrid developers that allow access to additional functionality, but this could make the development process much more convoluted and turn further support of the app into a real pain. However, if you don’t need anything too complex, for example—just camera, then it’s okay to use hybrid if it suits you better.
04What kind of content are you going to distribute through the app?
Last time we checked, Apple’s policy on top-notch in-app distribution was quite strict. It’s fine if you’re selling additional levels in a gaming app, but you almost certainly can’t sell food or furniture. What’s more, an e-store will require access to an enormous (in terms of disk space) database, and your users won’t appreciate you clogging their devices. What do you do? A hybrid app can provide a convenient access to your e-store for a mobile device user. That being said, native apps are far more secure and have the tools to work with complex databases.
05Please check the internet connection!
Is it crucial for your app to remain fully operational even without an internet connection? All of the above approaches allow you to update all the data later, once connection is restored (unless it’s crucial to update immediately, for example, in a stock trading app). Yet, being partially web-based, a hybrid app may malfunction.
06Support and updates
Once in a while, each platform releases a new version (iOS 9, Android Marshmallow). Even minor changes/fixes in a couple of protocols can cause serious problems. The native development toolkit allows a new patch for the app to be released almost instantly. In cases where the changelist is known ahead of time, you can release the new version at the same time as the platform does. Hybrid and cross-platform developers often have to use tools and libraries made by third parties. This is not the best practice when it comes to updating because if you need a crucial change, you have to wait for some developer to release an update for its tool, or come up with your own solution. Both are inconvenient and lead to complex app architecture, bugs, and unhappy users.
07Show me the money
Native app development is the most resource-consuming approach at the start, but the most time and money saving one when it comes to support. If you know exactly what you need, start with a simple native version and add new features and fixes with no headache. Hybrid and cross-platform are the best choices for hypothesis testing, prototyping and apps, and they won’t require any serious changes in the near future. Choose wisely, a poorly made app will make you pay twice: for the development of a new app and for the marketing campaign to bring back dissatisfied clients.
Ask an expert
we are glad to answer any kind of question related to app development