Is Apple Killing MonoTouch?
Sometimes I’m not sure whether I love or hate Steve Jobs.
On one hand, he has made some of the greatest products ever, yet, on the other he pulls stuff like the new iPhone 4.0 SDK agreement (which all developers must sign):
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. 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).
To be clear the old agreement just said that developers must use public APIs. This new agreement is locking you down to a specific programming language (decided by Apple) which basically kills MonoTouch (the awesome c# cross-compiler) as a dev platform for the iPhone.
This bugs me on two levels:
- Personal: One of my apps in written in MonoTouch on the iPhone because I don’t particularly like objective-C and I find c# more productive. Does this mean that apple is going to pull my app?
- Philosophical: At the end of the day, what does the user care as long as it’s a great app? Some of my favorite apps have been written in Delphi for crying out loud. Shouldn’t apple let developers use whatever language they like and let the market decide?
All of this leads to the bigger question…
Why is Apple doing this?
The most obvious reason is that Apple does not want adobe flash apps to run on their phone. Adobe was just about to release their new flash cross-compiler that would allow deployment of flash apps to the iPhone.
For whatever reason, Apple has a dispute with Adobe and this is just the next step of preventing flash on the iPhone. Unfortunately, lots of innocent bystanders like MonoTouch and Unity3D have become collateral damage.
The Adobe folks are not happy and I think the flash blog states it best:
Adobe and Apple has had a long relationship and each has helped the other get where they are today. The fact that Apple would make such a hostile and despicable move like this clearly shows the difference between our two companies. All we want is to provide creative professionals an avenue to deploy their work to as many devices as possible. We are not looking to kill anything or anyone. This would be like us putting something in our SDK to make it impossible for 3rd-party editors like FDT to work with our platform. I can tell you that we wouldn’t even think or consider something like that.
This just continues to prove what Cory Doctorow said about why he wouldn’t buy the iPad – the platform is entirely closed and not made for tinkerers:
Most of the really exciting stuff hasn’t come from big corporations with enormous budgets, it’s come from experimentalist amateurs. These people were able to make stuff and put it in the public’s eye and even sell it without having to submit to the whims of a single company that had declared itself gatekeeper for your phone and other personal technology.
The Road Ahead
So is MonoTouch truly dead?
Luckily, the good folks at MonoTouch have not given up the ghost yet. They recently posted the following on their news site:
If Apple’s motives are technical, or are intended to ensure the use of the Apple toolchain, MonoTouch should have little difficulty staying compliant with the terms of the SDK. MonoTouch runs only on Mac OS X, and integrates tightly with XCode and the iPhone SDK. Applications built with MonoTouch are native applications indistinguishable from native applications, only expose Apple’s documented APIs and uses a rigorous test suite to ensure that we conform to the iPhoneOS ABIs and APIs.
And I hope they are smart enough to probably make it work, but I have to say the whole thing leaves a very sour taste in my mouth regarding Apple. They’ve violated the Google rule of “Do No Evil”. And with it, they are loosing the trust and support of the development community…

