iPhone 4.0: Why can’t we all just get along?

flash_iphone

There’s been a storm brewing between rivals Google, Adobe and Apple. Each day seems to bring news of some minor sparring between the software giants, but instead of looking on in mild amusement, I’ve started to realise how their actions are affecting the future of smartphone development.

The news that made me sit up and take note came only a day after Apple previewed their new v4.0 OS for the iPhone and iPad. At first glance the change was subtle; an addition to their developer SDK agreement:

Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

In a way, it’s a pretty reasonable request: that all iPhone applications should be developed and written in a C-based language, and link directly to the iPhone APIs. If I were to develop an iPhone application, that’s what I’d expect to do. However, I’m not an Objective-C or C++ developer – I’ve been a long-time .NET developer for the Microsoft platform, and my immediate thought was not about Adobe and Flash, but about a project called MonoTouch. MonoTouch allows .NET C# developers to work within the environment they’re used to, with all the benefits of the .NET framework, but write fully functional iPhone applications. In effect, it provides a bridge between .NET and the iPhone so that seasoned .NET developers can build multi-platform applications with ease (in fact, MonoDroid is in the works to provide the same bridge to Google’s Android platform). This makes sense from a developer point of view: One dev team can push out an app for the iPhone, Android and Windows smartphones relatively easily, and cheaply. Surely that’s a good thing for both developers and users? (more…)