Mobile devices are exploding onto the IT scene. They seem to be available for every possible application as we move from traditional work on a desktop computer to laptops, tablets and smart phones. As we begin to make this transition, there seems to be a lot of discussion and difference of opinion on how to develop this technology.
There seem to be three camps of thought:
Each device is unique and the best mobile applications are developed in the language native to the device being used. This is of course true, especially if you are developing games, but it also can be extremely expensive if you are developing an application that will be used on several devices. You also leave your application open to have to be upgraded every time the native operating system is upgraded, which seem to happen a lot. The cost to develop in a totally native environment may be cost prohibitive.
By using a technology like HTML5, mobile applications can be developed which are platform independent. This will allow you to develop once and deploy across multiple platforms. HTML5 is the lowest cost solution, but may not give you the best performance across platforms. This may be particularly true with device capabilities like photo sharing and automated address book synchronizing.