Yeah⊠Iâm not really being fair, here.
I always get cranky when people get hung up on tools as being âmagic bullets.â
The simple fact of the matter is, is that if you want to get good results, you hire good people.
Good people can be a really good native programmer, expert on the UIKit, or they could be a really good JavaScript programmer, expert with React Native. Each will give you an excellent result, given a problem domain to which the given skillset is best-suited.
And good programmers; regardless of their specialty, seldom come cheap.
It does get a little bothersome when you get âmy only tool is a hammer, so all problems are nailsâ approaches.
Most hybrid systems will give very satisfactory results, when paired with a client-server system. The apps can be big, and you canât get too fancy with UX, but, given good design and a good UX designer (pretty important -sometimes the engineer is good at it, but more often, youâll need to hire someone else), you can get very good results.
In these cases, you can get a lot of bang for your buck, as you can often get multiple-platform deployments for one (mostly) codebase. Donât skimp on the programmer, but youâll get a decent Android app and a decent iOS app, suitable for simultaneous release.
They are maybe not so good for things like games, applications with intense UX, or intense communications requirements (like fancy WiFi/Bluetooth stuff). I just spent a couple weeks writing up a really nice spinner button, and thereâs no way that could have been written in anything but native, or in a game engine (which would have been overkill, as these are going to be map markers). Iâve also written WiFi device control frameworks, and that needed not just native, but Objective-C native (for a static fat framework).
You get what you pay for. There just ainât no such thing as a free lunch.
Be careful listening to hype. Google âthe Dunning-Kruger Effectâ to find out why a person can honestly believe themselves to be far more apt than they really are.