• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Cross-platform?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

  • Follow-Ups:
    • Re: Cross-platform?
      • From: Gideon King <email@hidden>
References: 
 >Re: Cross-platform? (From: John Sarkela <email@hidden>)
 >Re: Cross-platform? (From: Andrei Tchijov <email@hidden>)
 >Re: Cross-platform? (From: Markus Hitter <email@hidden>)
 >Re: Cross-platform? (From: Gideon King <email@hidden>)

  • Prev by Date: Re: Automator-like UI?
  • Next by Date: Making NSTextView draw like NSString's -drawInRect:withAttributes:?
  • Previous by thread: Re: Cross-platform?
  • Next by thread: Re: Cross-platform?
  • Index(es):
    • Date
    • Thread