I have some very personal opinions, not sure to be "universal arguments".
- Native Mobile: built using "serious langs" like Swift (iOS) or Java (Android). Serious means: statically typed, good OOP and speed.
- UI fidelity to platform
- Native Mobile: ready in your hands. Just using the default native components you get a perfect native UI look and feel.
- Hybrid Mobile: you must use a mobile toolkit simulating native UIs and make two visual versions (iOS/Android) of parts of your app.
- Access to the native API
- Native Mobile: direct and unlimited access (only security restrictions of the app are applied).
- Development Performance
Maybe this is the most opinionated item of this analysis.
In my opinion native development is by far more productive than hybrid thanks to the language, the tools, the natural native integration... Yes, you must make two (iOS/Android) apps, usually two teams. The performance of both teams surpasses in quality and development performance to the "one hybrid team". Some things can be reused like data management using a Java-Objective C generation tool like Google does. I recognize that if you need to support Windows Mobile the advantage is not so great.
- Native Mobile: native tools are fine enough.
- Hybrid Mobile: debugging tools have been improved but not in the same level than native.
- Version management
In this subject we must differentiate between two types of hybrid applications:
- Behavior/UI (HTML/JS) is mainly local. In essence the hybrid app is self-contained and is not different to a native app.
- Behavior/UI is mainly remotely delivered. In essence the hybrid app is like a mobile web site packaged into a native app.
If your application is type 2 you are lucky, version management is by far easier than a native app, in a native app minor UI changes and behavior requires a new release and you must keep back compatibility with old versions because upgrading is a task of the end user. This is where hybrid development can shine.
I suspect Amazon Shop apps are of this type 2:
"the most compelling reason to incorporate HTML5 into your mobile applications is to get the ability to update the app without requiring an upgrade on the device user's side. This capability makes it both easier and safer to manage apps -- permitting developers to roll out or draw back updates as needed. In the brave new world of continuous deployment and live testing, that's a huge advantage"
And by the way, this type 2 is the reason of ItsNat Droid development.
ItsNat Droid: native UI (and some behavior) delivered remotely.