When you google “Hybrid app development” you will find such a wonderful value proposition. Build once run anywhere, single codebase, cheap development, less time to market, less resource intensity and so on.
The first thing clients do when they see that, is they look at that value proposition and think: “What a wonderful thing. I can have an app on both platforms, time to market will be quick, talent easy to find and best of all, it will be cheap!”.
This can actually work for a small hybrid app with a few screens, but if you are serious about your business, if you want to have an app that brings revenue and provide great value to your customers, you don’t want to settle with mediocre, you want only the best for your customers.
Here are 5 reasons your hybrid app will fail and those are based on my personal experience helping my client build a $20 million company.
Reason #1: Hidden costs of hybrid development
“Hybrid development is cheaper. It is write once, run anywhere.”
People say…
Well, this is very true. At the beginning at least. There are many programmers who do HTML, CSS and Javascript. Wrap that inside the WebView and you’ve got yourself an app.
You hire a developer, explain the project to him and right at that moment, your hybrid development journey begins. In the first few weeks, everything is going great. Progress is fast, investors are happy, feedback is great and you start thinking this will be done in no time. Wonderful!
So what is the problem? The problem is finishing the product. Making sure it is bug-free and ready to be used by real people. You might say this is a problem with building software in general, but when it comes to hybrid app development it becomes impossible to polish it. You depend a lot on the open-source libraries, transitions and animations suck and it is very hard to do any customization to the native components.
If you decide to do any customization of native components, you have to write them for all platforms you are supporting, which leads to more code in a single place, resulting in more issues and making development extremely hard.
Reason #2: Poorly maintained libraries
When creating a hybrid mobile app, you have to have some sort of bridge between native and web view. I was using Cordova as the framework for building apps.
Cordova exposes API to your Javascript and handles all of the native work for you. This is amazing for small apps and prototypes cause it allows you to build and release often, but when it comes to building long-lasting apps for your users, this absolutely sucks.
You might wonder what happens when there is no API exposed to your Javascript for the feature you need. Well, you have to find a third party plugin written by someone else, or you have to write it yourself! Writing plugins for Cordova is not something developers want to do, and it takes some skill since the developer needs to know languages involved in both native platforms.
Android and iOS are updated very often, and with new releases, the old ones are changed or become obsolete. The problem is that the plugins you installed are not updated right away, so if something is not compatible you have to wait for days, sometimes weeks to get the update. In the worst-case scenario, there will be no update and then you need to find another library.
Reason #3: User experience
Failing to meet user needs and expectations will give you headaches and lots of support calls, resulting in spending a decent amount of money on support tools and processes.
Having an amazing user experience plays a key role in getting amazing reviews and keeping your users happy.
A hybrid solution requires native code to load your app from within WebView. Apple said that on average, apps should load in less than 400ms, and having Cordova, Angular and other libraries inside your project, it can take up to 3 seconds or more to load your app.
Once you are in the app, the first thing you will notice is that apps don’t have the native look users are used to. Hybrid app frameworks are promising to change the look and feel based on the OS user has, but the experience is definitely not as good as it should be.
Existing UI components provided by the framework are hard to edit and you can just forget about advanced animations and transitions.
Reason #4: Poor performance
Performance plays a key role in leaving a good impression and returning user. With technology progressing, users are getting used to fast and performing applications and that is something users expect these days. You want to make sure your app loads fast, screens have the smooth transitions and there is no waiting or flickering inside your app.
In a hybrid application, components and logic do not directly interact with the device operating system. Those are loaded through WebView component which then communicates with the other components.
The downside to this approach is that there are many platforms and platform versions circulating, all of which behave differently when it comes to the WebView component.
Adding extra complexity to any application is going to have negative side effects in terms of consistency on platforms you are targeting.
One thing I noticed is that some plugins have memory leaks and your app can force stop just because the plugin you installed didn’t free used memory. One other thing is that not all plugins are compatible, adding additional problems and performance issues.
Reason #5: You will fall behind
When Google and Apple release new OS versions, they give native developers early access to the SDKs (software development kits) to start testing newly added features. Developers test and integrate new features into their apps making sure they have an update for their app the day their users update to the new OS version.
Developers of Hybrid apps need to wait for third-party developers to create plugins that bridge the new operating system features to apps.
An alternative is to create your own plugin and that will take some additional time and resources. This gives native app developers a few months head start with the new features. The worst case is that hybrid apps may never support your desired features. Trust me, you don’t want to be stuck with hybrid apps while your competitors enjoy the benefits of native development.
The hybrid approach tricks owners and investors into a false sense of progress until it’s too late to switch to native and they must ship an inferior product.
Key takeaways
Native development is much superior to hybrid development. If you are at all serious about your business, you will go with native apps and create a truly great product and experience.
If you have a good business that has a steady growth, you will realize that your hybrid app will fail to satisfy your users and that you need to switch to native. However, there definitely is a place for hybrid apps.
Hybrid apps are good for prototyping, testing your ideas and making MVPs. With hybrid development, you can get a functional, cross-platform app within a week or two and test the concept with your users, get the feedback and learn from it. The key when testing your ideas is to develop a feature, ship it to the users and get feedback as fast as possible. Iterate this until your users are happy to use your app. Evaluating your idea, seeing if it is valuable and if your app will get you a good ROI is where the hybrid approach shines.