Mobile multi-platform development
By andre
Again I find myself thinking about how to write as little code as possible when developing applications for various mobile platform. I do find it annoying in the extreme, that iOS, Android and Windows Phone all have mutually incompatible technologies. As if they were doing it on purpose. But maybe they just do? It helps the companies to lock in software developers as well as end users, doesn’t it? Maybe they hope, that the developers won’t bother to write code for all the platforms and will just stick with one. Well, that doesn’t seem to be the case - any serious project is quickly ported to both iOS and Android, with Windows Phone and Blackberry sometimes joining the fun.
I think it’s time for both Apple and Google to stop being arrogant demigods and start converging development of their platforms. Recently Google has made a tentative move in the right direction. They have released a software kit called J2ObjC, which can translate Java code directly into Objective-C, the bastard child of restless Apple engineers which absolutely had to invent their own programming language, not content with 20,000 of existing ones. This tool, in theory, allows one to write UI-independent code in Java and then translate it automatically into Objective-C as part of the build project. GUI-specific code will still be written directly in either Java or Objective-C, since there is no common presentation layer coming with the tool nor is one being worked on.
Google claim they have used the tool to develop the new Google Inbox mobile application I wrote about short time ago. This is quite a serious undertaking, so one could assume the tool is mature enough for production. However, it does smell of desperation and is, honestly, a hack. The correct way forward would be having a common framework suitable for all developers on all platforms. Could it be .NET, so graciously opened recently by Microsoft? That would be a possibility. Even if the present situation with different platform-specific API is retained, having the same programming language for all three would be a great start. Most certainly, third party unifying libraries will appear and make our life even easier. But support of the holding companies will be paramount for such diverging framework to succeed. Will it ever happen? The future will show.