A common theme in my blog posts is the challenges that face developers, and businesses, who develop applications for smart phones. I've already discussed the issues around multiple platform support as well as how to get adequate ROI with the current Application Store model that has been adopted by all the major smart phone manufacturers. Today I'll address another challenge, and that is of acquiring the necessary development skills in your team in order to tackle smart phone development. This goes hand in hand with the challenge of supporting multiple hardware platforms because each hardware platform requires a different set of programming skills: iPhone is Objective C, Android and BlackBerry are Java, Windows Mobile is C/C++/C# and Symbian is C++.
Even in the current economic climate, there is still a war for highly skilled talent making the recruitment and retention of a development team to support all these mobile platforms extremely costly. What are the alternatives? In my earlier posts I advocated narrowing down your target platform based on you target consumer, so if this is possible then you would only need to acquire skills for one or two platforms. However if this cannot be done then another alternative is to leverage the skills your development team already has. Some of the most common skills among current developers are Java, .NET/C# and AJAX/HTML/JavaScript. Assuming that these are the skills you currently have in your development team, it would be great if a set of tools existed to convert from those programming languages into the native format of the various smart phone platforms. Luckily such tools exist!
MonoTouch has released a platform that allows developers to code with .NET/C# and compile their applications into native iPhone Objective C. Innaworks, in New Zealand, is working on releasing their
alcheMo-for-iPhone tools which allows developers to convert J2ME Java code into native iPhone Objective C. In the past I also mentioned
PhoneGap which offers a platform for developers to write HTML/JavaScript code and deploy natively on the iPhone, BlackBerry and Android platforms. I'm sure there are other very similar tool platforms out there, however my goal here is to highlight the fact that development teams can be smart and leverage their existing programming skills to target multiple smart phone platforms.
If any of you have experience with the tools I mentioned above, or similar ones, I'd be very glad to hear your feedback on them….