MonoTouch: Writing iPhone apps in C#

ctodx
17 September 2009

It's only been three days since Novell and the Mono team released MonoTouch, but I've already had the first email asking whether we're going to be supporting it in any way. Oh, and while we're about it, what about Mono proper?

First things first: MonoTouch is a technology that enables you to write iPhone (or iPod Touch) applications in C#. No longer do you have to learn Objective-C and grumble about header files and having to develop without a garbage collector: you just write good ol' C# in the same way you already do, and a compiler will compile your .NET application and associated libraries into a native iPhone application (which, incidentally, gets around JITting, something that's not possible with the iPhone run-time, so I understand). Because of this non-JITter approach, there are some limitations with generics — which, if you recall, are instantiated by the JITter at run-time — and there's no capability to generate/emit new code at run-time either. Debugging support is limited too.

Nevertheless, MonoTouch provides C# 3.0 support, Silverlight capabilities, the usual garbage collector, multithreading support, bindings to the native iPhone APIs, and so on. Even better, you can do things like use event handlers for CocoaTouch controls (and if you know how that all works in Objective-C, you'll be crying with joy). It provides integration into both XCode (fully supporting Interface Builder) and MonoDevelop. And so on, so forth.

Having said all that, what, if anything are we, DevExpress, going to do about it? Well, I think the only real answer at the present time is to evaluate it. Obviously a great number of our controls would make no real sense on an iPhone: after all the device has no physical keyboard (apart from the on-screen one), no mouse (just your finger!), and there are standard single and multi-touch gestures to support. The user experience is very different and our controls are designed for a different UI completely.

Sounds negative, however, we've a lot of iPhone fanboys on staff (even Ray has one), and some of us have and use Macs already, so I dare say there might be some experimentation going on to find out whether some of our products would transfer over to the iPhone. An excellent possibility is XPO of course (there's no UI to trip us up), especially since we've been doing some work already on the Silverlight port (AgXPO).

So, I'd have to say at this stage that there's a possibility, but that an awful lot of research would have to be done first. No promises, and definitely no guarantees. No timetable either, before you ask, because we have our real work to do first enhancing our current line of controls on the standard .NET platforms (version 2009.3 is currently being worked on, of course).

As for Mono itself, we've been approached by the Mono team to see if we're interested in supporting Mono with our current products, and I'm going to do some research to see what the issues are and where they lie. Again, no promises.

8 comment(s)
Mike_Grace
Mike_Grace

I personally would love mono support.

18 September, 2009
Ludo Vandenbempt
Ludo Vandenbempt

Mono support would be appreciated because in the near future our users will have the choice between a Windows based PC or a Mac.  This gives us a challenge to convert our WinForms (SmartClient) based applications.  We prefer the SmartClient technology in favor of Web-based applications.  Maybe if Silverlight + DevExpress has the same components as WinForms + DevExpress then this could also be a solution (and if there would be a project convertor that would be genial => convert the WinForms component into the Silverlight Equivalent).

18 September, 2009
Anonymous
Peter Thorpe

There are a lot of iPhone fans including me. I would love some great UI controls to go with MonoTouch, although the fact most people would need the $999 monotouch licence if it's for enterprise apps or $399 for app store apps could put some people off.

A counter point being you would gain more knowledge of multi touch interfaces which could help future controls for say windows 7.

As for Mono itself that would be fantastic I imagine you are using some P/Invoke stuff in your winforms stuff? Are you just thinking silverlight or ASP.NET or what?

18 September, 2009
Julian Bucknall (DevExpress)
Julian Bucknall (DevExpress)

Peter: For Mono, I'm going to concentrate on the ASP.NET stuff to begin with. The biggest problem with the WinForms stuff is that its UI is Windows-centric. Putting it on, say, a Mac would just look ridiculous. Far better to do some Cocoa UI tweaks, but that goes beyond my brief.

Cheers, Julian

19 September, 2009
CA Team Member
CA Team Member

About Mono support:

Didn't you guys optimized your controls with P/Invoke invocations? It would disable any possible portability, wouldn't it?

About MonoTouch:

I don't think they are providing support for code other than the one specifically written to MonoTouch (though I could be wrong). As far as I understand this is compiled to iPhone's native code and it wouldn't be possible to do this for any kind of code from .NET space.

27 September, 2009
Anonymous
Ravi

I downloaded the evaluation version and installed on my MAC book using the installation guidelines given in the web site. When I tried to open MonoDevelop application, it was not opening and it saying “Application Not Responding”. I have mentioned the steps below which I had done.

Step1:  Updated my MAC book OS to version 10.5.8

Step2: Downloaded Apple Iphone SDK (version 3.1.4) and installed.

Step3: Downloaded Mono for Mac OS X and installed.

          Downloaded File: MonoFrameWork_24.2.3_4.macos10.novel.x86.dmg

Step4: Downloaded MonoDevelop for OS X and installed.

           Downloaded File: MonoDevelop-MonoTouch-Preview-20090922_0.dmg

Step5: Downloaded MonoTouch SDK and installed.

          Downloaded File: monotouch_eval_1.0.3.pkg

Please give me your suggestions on how to work using Monotouch in my MAC book.  

6 November, 2009
José Enrique
José Enrique

Ii's now or never. Miguel Icaza abandoned Novell and start again with Nat Friedman at Xamarin (www.xamarin.com). They will rewrite MonoTouch and MonoDroid. It's time for synergys, isn't it?

26 May, 2011
Mojo
Mojo

Yes ... DevExpress Monotouch controls!! :) When??? ;)

18 November, 2011

Please login or register to post comments.