Re: Cross-platform?
Re: Cross-platform?
- Subject: Re: Cross-platform?
- From: Rich Wardwell <email@hidden>
- Date: Thu, 16 Feb 2006 09:30:42 -0600
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
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
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