[Mono-list] Porting desktop application to OSX/Iphone

Susan Mackay susanmackay at optusnet.com.au
Mon Apr 20 17:53:48 EDT 2009


 >Hi,
 >I have a desktop application with a local mysql / sqlite database,  
written
 >in C#, and using WinForms on Windows platform.
 >I'd like to port it to the OSX and the iPhone platform.
 >
 >1) For the OSX part, I guess I need to do the following:
 >
 >a) complile with mono, and try to run it with mono's winforms  
implementation
 >b) rewrite the winforms part to use gtk#, to have a native look
 >c) drop the GUI, rebuild it the OSX way, and create a bridge with  
ObjC# to
 >use the underlying, original C# classes.
 >
 >2) I too would like to use it on the *official* iPhone platform, so  
I guess
 >the best option would be variant c).
 >
 >a) I heard about the games using mono, to develop apps in the Unity  
way (
 >http://unity3d.com/unity/features/iphone-publishing).
 >b) Is there any other method to include the ObjC# wrapper and mono  
to an
 >iPhone project?
 >
 >Which way would be the most straightforward?
 >
 >thank you,
 >
 >Balint

For OS X any of these may well be a viable migration path. Personally,  
I've found that the c# apps I have written on a windows platform (at  
least these days) run pretty well unaltered under mono. Of course they  
don't have the Aqua look and feel but this is OK for my purposes.

However, for the iPhone, don't bother even thinking about it. The user  
interface is really totally different, the space available is tiny in  
comparison to even a small laptop screen, many of the controls look  
totally different (e.g. the pop-up or combo-boxes are replaced with  
the picker control that takes up the entire width of the iPhone screen  
- you probably need to use it as a modal control the way the Safari  
browser does on the iPhone) and the whole philosophy of the GUI is  
different.

The successful iPhone apps need to be ones with a limited (but self- 
contained) purpose, with easy navigation between a couple of screens,  
each of which does one thing. You need a complete re-think about what  
the app does, how it can be presented and how the user navigates  
through it. It is really a different philosophical approach.

All of this presupposes that you can get the mono runtime onto the  
iPhone at the technical level (no idea if this is possible/being  
done). However the biggest problem with this approach, especially if  
you want others to use your app, is that the agreement with Apple to  
put an app into the App Store states that no interpreter other than  
the Apple provided JVM is permitted. While there is some debate about  
what this really means and how far it goes (and Apple is the sole  
decider of these things) I would check with Apple about whether a C#  
app would be allowed (the JIT compiler could be considered an  
interpreter) before you spend the time.

Seriously, if you want to develop for the iPhone platform, take your  
existing algorithms etc and use them to create an app from scratch  
written in Objective-C.

Susan (who uses both platforms)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20090421/0227e12c/attachment.html 


More information about the Mono-list mailing list