Re: Cross-platform?
Re: Cross-platform?
- Subject: Re: Cross-platform?
- From: Gideon King <email@hidden>
- Date: Fri, 17 Feb 2006 10:08:48 +1000
Yes, this would also work well if you started with a project that
used C# or you had strong C# experience to start with.
In my case, NovaMind had been out on MacOS X for 2.5 years and was
firmly an ObjC application at the time we started the Windows port,
so the best solution for our situation was to leverage the ObjC code
and experience we had, and hire a C# programmer to do the Windows
side of things.
Gideon King
email@hidden
On 17/02/2006, at 1:30 AM, Rich Wardwell wrote:
No one has mentioned it, but another possible option is C#/Mono
back-end, CocoaSharp (C# bindings to Cocoa) on the front-end for
Mac -- Systems.Forms (native Win toolkit) for Windows -- Gtk for
Linux. With some of the more recent versions of Mono, you could
use System.Forms (or GTK) on all three systems, but lose the native
look & feel obviously.
Imeem is using this approach.
Rich
On Feb 16, 2006, at 6:55 AM, Gideon King wrote:
We used GNUStep/ObjC for the back end, a thin layer of C++ glue
code and C#/.net front end for the Windows version of NovaMind
www.nova-mind.com. The same ObjC back end is used for the Mac
version. Result: very high level of code reuse and complete native
experience on both platforms.
The only real issues we had apart from the usual familiarization/
general design issues were to do with handling NSImages going back
and forth and being usable in Windows. Oh yes, and we are using
native text layout (actually we wrote our own for windows because
the normal windows font handling is appalling!), so the string
layout metrics were different. Apart from that, it has been a
pretty smooth ride. During the course of the project which started
about 9 months ago and is just now starting the roll out phases,
GNUStep for Windows has matured quite a bit, and it is now much
easier to build and work with than when we started. We have
somewhere around 150,000 lines of code in the cross-platform
portion of the application, and it just works.
When I started preparing for the port, I wanted to just use
Foundation and stay completely away from AppKit because I had
heard that it was unstable under GnuStep, but I quickly found that
it was pretty much impossible to do the things that I wanted to
do, like complete handling of NSAttributedStrings (which have
things like NSFonts, NSColors etc from AppKit in them), so had to
add AppKit to the mix, but it didn't cause any issues for the
things we have done with it.
So we have an example of a real world application that was
successfully ported, keeping the lovely Objective-C code for all
the internals and just putting a thin native layer on it to give
the best experience on both platforms.
The windows version of the application is just a newborn babe
(first release yesterday) and still needs performance tuning, but
the issues that we have looked at regarding performance were
bottlenecks elsewhere in our code - we haven't seen anything of
serious concern speed wise for our application on windows/GNUStep
(yet). We don't have anything that we are doing that is ultra-
specially speed critical, so YMMV.
Just thought this would be a good data point...
Gideon King
email@hidden
On 16/02/2006, at 9:31 PM, Markus Hitter wrote:
Am 16.02.2006 um 03:05 schrieb Andrei Tchijov:
If you concern about the fact that your GUI should look as close
as possible to "native" GUI look, then GNUStep is not the best
solution. Just take a look at this screenshot (http://
www.gnustep.org/images/full-screenshot1.png). It does not look
anything like Mac OS X.
This is a screenshot from a Linux or *BSD machine. On Mac OS X,
GNUstep (with the apple-apple-apple libcombo) uses the native
Foundation/AppKit and gives you a fully native user experience
accordingly. In fact, GNUstep on Mac OS X is very thin, mostly
consisting of a make based build system and a bunch of additions
to Foundation/AppKit to improve compatibility.
For an example, you might wan to check out GNUMail.app: <http://
www.collaboration-world.com/gnumail/>
That said, GNUstep is used and maintained mostly by professional
developers, so it lacks a three-clicks-to-get-a-working-app
experience.
Markus
- - - - - - - - - - - - - - - - - - -
Dipl. Ing. Markus Hitter
http://www.jump-ing.de/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden