• 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 development: Was: Deprecated methods in NSDocument
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cross platform development: Was: Deprecated methods in NSDocument


  • Subject: Re: Cross platform development: Was: Deprecated methods in NSDocument
  • From: Scott Ellsworth <email@hidden>
  • Date: Thu, 24 Nov 2005 12:14:18 -0800


On Nov 24, 2005, at 7:17 AM, email@hidden wrote:

The flip side to this is GUI and frameworks; on Mac, Cocoa seems the
obvious solution, on Windows, .NET is flavour of the month. I have looked at cross-platform solutions over the years (inc. wxWindows, Swing etc.) and frankly they are not up to scratch - basically because OS's differentiate in part in their UI, so to support them properly its a good idea to write the UI, views, etc specifically for the merits of each
platform.

You have to decide up front where you want to get reusability, and then design accordingly. The very same issues that make it tough for a platform vendor to come up with a good cross platform UI will hit you if you try it. You can do it, but it is work.


To me, it is better to either use someone else's cross platform ui kit that is good, or to use platform specific UIs talking to your own cross platform model. Cocoa is a good choice for that platform specific UI.

We find that the model classes and data engine are the majority of the work and validation, so we make sure that is cross platform. It is just not feasible to have a different implementations for the model on windows, linux, and the mac, which is what we target in most of our apps.

One way to solve this is to write our programs in Java, with the GUI in Swing. We then sweat lots and lots of blood to get it to work right, creating custom components where Swing does not have something correct. We have to handle different menu bars on Windows and the Mac, but that is not that hard if you do it from the start.

Another valid approach is to make the backend a server process. We then have the GUI communicate to it over a socket or something similar. This works very well, and lets you have a for-real front end in .NET on windows and Cocoa on the Mac. This works very well too.

I do believe that killing Cocoa-java was a bad idea, as there are a tremendous number of really high grade java frameworks for all sorts of tasks. Using them is much easier under Cocoa-java. That said, I can get the vast majority of the benefits of cocoa-java by spinning up a jvm early in my program's life cycle, using the java frameworks for what they are good at, and letting Cocoa drive a world class UI.

Scott


--- email@hidden Java, Cocoa, Tapestry, and Database Consulting

_______________________________________________
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


References: 
 >Deprecated methods in NSDocument (From: Stephen J Starkie <email@hidden>)
 >Re: Deprecated methods in NSDocument (From: Pontus Ilbring <email@hidden>)
 >Re: Deprecated methods in NSDocument (From: Stephen J Starkie <email@hidden>)
 >Re: Deprecated methods in NSDocument (From: Shawn Erickson <email@hidden>)
 >Cross platform development: Was: Deprecated methods in NSDocument (From: email@hidden)

  • Prev by Date: Re: Newbie needs help with tableview and bindings
  • Next by Date: Re: Newbie needs help with tableview and bindings
  • Previous by thread: Re: Cross platform development: Was: Deprecated methods in NSDocument
  • Next by thread: Optimizing NSView's drawRect
  • Index(es):
    • Date
    • Thread