There is a war of words in the development community when it comes to the core approach to mobile app development: use cross platform hybrid development or use native languages.
There is a strong argument for both.
The place where Hybrid development starts to fall short is when there is a need for a complex solution that leverages native APIs on the device, interfaces with complex back-office systems (such as your ERP or CRM) or needs to scale to millions of users.
Native development refers to building solutions on a platform that are based on the recommendations from the OS owner. For instance, Apple recommends working with Xcode and Objective-C for iOS development, Google recommends Eclipse with Java/C++ and Microsoft recommends Visual Studio and C#.
Each of these development environments and languages are not new. They are mature, stable and have proven their effectiveness in millions of applications. At one point in time it was expensive to hire iOS and Android developers but there are more people now with these core skills and the prices point between Hybrid and Native developers is closing.
Native Development gives you access to mature frameworks and APIs. In particular, iOS is now on greater than 78% of all iOS devices, giving developers a unique opportunity to develop with the latest and greatest APIs (such as iBeacon) without requiring the need to support a decade of legacy devices.
Which is Better: Hybrid or Native?
At the end of the day, there is an argument for both. My preference for consumer solutions is to always go native, but there is no reason why POCs should not be done in PhoneGap to validate a solution.
Which platform do you prefer and why?