Engineering

Hybrid or Native - Which one best fits your product?

Hybrid or Native- Which one best fits your product?

Are you considering building a new mobile app? Are you sick of articles ‘which is better: native or hybrid’? You’ve heard and read tons of arguments why one technology is better than the other. Good news, here is another one.

I will try to approach the topic a bit differently. Instead of comparing both technologies, I will try to point the key areas which you should take into consideration while making the decision.

Costs and development time are a big factor when choosing the technology. The question is: are you building a small app, or a bigger and longer-lived product? For smaller apps, hybrid applications might actually save you time and money. For bigger products, things get more complicated. The risk you take is that you might face game changer issues during the development. Hybrid applications have their limitations, most of the components are wrappers around the native code. Its frameworks bring another layer of code. This increases the number of places where something can go wrong. Especially with the new technologies where there are not well established patterns and good practices. So you might find yourself in a situation where your developers will be forced to take a step back and rewrite a part of the application with the native code. So you might end up with the feature that will be written twice. Let me discuss some of the common ones.

Performance

Yes, the magic word used by developers very often. I don’t mean the performance of rendering a simple UI. These days, devices are so powerful that probably you won't see any difference in rendering times. However, if you are going to perform high consuming operations like processing files, synchronisation in the background or video calling, you should be careful with the hybrid apps. It’s much easier to manage resources, do multithreading and synchronisation with the native code. The more complicated logic you build, the bigger a chance that you should go with the native. I’m bringing out this issue because this, along with the UI, are the key ones when I decide what technology to use for a product.

UI

Something that is a strong side of the hybrid apps is also its weakness. It’s much quicker to build the UI using hybrid technologies. After all, you build one instead of two versions. But this comes with a big tradeoff, especially for iOS apps. iOS is an ecosystem which is known for its perfect UX and it is also the one that suffers the most. Unifying UI very often kills the platform specific experience. Even though hybrid solutions try simulating platform specific behaviour, it is hard to trick a regular iOS user. If you want to engage users more, you should really pay attention to this. So, whenever you build entertainment, a music app or a day to day tool, go with the native app. I’m pretty sure that users will pay you off the time invested in development.

Integrity

Some people tend to promote hybrid solutions with the thesis that it is better, because you don’t write the logic twice. I can agree that less code means less bugs. But I don’t fully agree that the hybrid is the solution to this problem. If your app is doing a lot of business logic it might be an architectural issue. Maybe it’s time to move the weight to the backend side more. Finally, there are plenty of tools that allow to share the business logic code between Android and iOS without losing nativeness of the code.

Updates

Every year, developers are handed new features integrated in the system. Users are thrilled to see them in the apps as soon as possible. The problem is that if you go with the Hybrid solutions, it might be harder to bring them to your app very quickly. You have to not only think about both platforms simultaneously, but you also have to wrap a system feature with a hybrid component. So, you either write it on your own, or you rely on the community. What's more, you might face the problem that hybrid SDK is not ready for it. All of this might slow you down and make it hard to catch up with the trends.

Team

All of the above does not matter so much when you have a team which is experienced in native solutions. Tools that are available in hybrid SDK’s, like Flutter, allow developers to write parts of an application as a native, platform specific code. No matter what technology you or your developers will choose to build a mobile app, please hand it to the professionals who know and feel mobile platforms. Both platforms equally.

You are still not sure what technology to choose for you product? No worries, hit us up and we will help you to choose.