I am considering using MonoTouch for some iPhone development, but payload size is an important factor.
For a user who has never installed Mono on their iPhone before, what would the size of an Objective-C "Hello World" app be compared to a MonoTouch "Hello World" app?
More specifically, what is the approx. number of bytes that need to be downloaded, and what is the approx. number of bytes used once installed?
A "Hello world" program in Objective-C occupies 50 KB (whole .app folder). With MonoTouch, a similar "Hello World" app occupies 5 MB (whole .app folder), which is not bad at all considering it has a runtime with garbage collection in it.
From this question on MonoTouch and Size of Executables:
The answerer goes on to say that he feels that he is more productive with MonoTouch than Objective-C. YMMV.
In 1.5 Monotouch
A release build - that is a an application built with a distribution license - and with nothing but the default project settings, is 5 MB. Of that 4.3 MB is the binary executable.
They often rise to up to 10 MB in my experience, and the forums paint the same picture. The appstore reports the unzipped size, however they are downloaded zipped. Zipped it is around 3 MB which, even on a 3G, is fine.
In my view, most people won't look at the filesize before downloading an app, nor particularly care. The appstore limit for 3G downloads is now 20 MB which is well within the MonoTouch size.
To play devil's advocate, yes, it is many orders bigger than the Objective-C equivalent and could scare off a few people worried about occupying 4-10 MB more of their 16 GB space. However there is also time to market and the existing tools available for .NET. I develop and build all my MonoTouch apps in Visual Studio 2010 then test them on the Mac, and I don't think even Apple would argue their IDE is close to the industry leader.