[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