Assume that the app will include a back end API and a back end data store, but that they need not necessarily be constructed with the same technology as the front end (the app on the mobile devices). By "technology", I mean programming language and/or framework and/or platform.
There are two sides to that question. One is the mobile app itself and the other is the backend. If I misunderstood in any way and you didn't mean "native" app I apologize in advance.
On the backend, there is no clear cut answer to which is the "best". It depends solely on the developers you are able to get. We for example use Node.js , mongoDB, redis, elasticsearch and a couple of proprietary tools in the backend. But you have your pick of the litter now both on the backend api and the datastore with the myriad of options available and touted as the "best" currently on the market.
Now on the app side again it solely depends on what you need your mobile app to do. Experiencing first-hand "develop once, run anywhere" I can say it's more like "develop once, debug everywhere" to quote a Java saying. We have tried Phonegap and Titanium Appcelerator and we have switched to native (ObjC and Java) after a couple of months of trying to go the hybrid route. The reasons behind the choice are as follows:
- anything that breaks the pattern of how those frameworks NEED to operate is just a huge technical debt that keeps accruing a huge interest.
- anything that uses css3 accelerated animations on Android is buggy at best and slow as hell at worst on any lower (< 4.1 I think) versions of Android
I hope this gives you some insight. If you need/want to ask me anything feel free to contact me.