Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rich GUI OS X Frameworks?

What would you recommend for OS X development of a graphical application like those possible in WPF?

My specific background is in Smalltalk & Java, but I currently work mostly in DHTML/.NET (ASP.NET/C#).

like image 422
Michael Craig Avatar asked Aug 21 '08 05:08

Michael Craig


4 Answers

Cocoa. Considered by many to be the best application framework ever. The language is Objective-C, SmallTalk-like language that inspired the creators of Java.

Really, there is no reasonable alternative to Cocoa for OS X development, unless you have specific needs like wanting to be cross-platform.

like image 62
Theo Avatar answered Nov 19 '22 09:11

Theo


Aside from Interface Builder which is included as part of the Xcode tools, you can also use QT, GTK+, AWT & SWING (for your Java background), Tk, Squeak (for your Smalltalk background), Shoes (very cool little Ruby GUI toolkit), FXRuby (more Ruby), wxWidgets, XULRunner, and others I'm sure I've forgotten. For the most native-like apps, however, Interface Builder is your best bet.

like image 23
Josh Avatar answered Nov 19 '22 10:11

Josh


Cocoa is the primary framework to use on Mac OS X. It's what Apple uses, it's what most new development uses, and it's where new features are principally added.

If you're coming from WPF, I think you might find quite a few of the concepts in Cocoa familiar. (Despite the fact that Cocoa is just a bit older.) It's built entirely around MVC, there are property-change notifications and bindings, there's animation support, there's a persistence and object-graph management framework, and so on.

(Also, you might want to add "mac" to the tags.)

like image 2
Chris Hanson Avatar answered Nov 19 '22 09:11

Chris Hanson


With your Java background, don't get sidetracked by the now deprecated Cocoa-Java bridge. Early in OS X history, Apple provided a (laboriously hand-maintained) Java interface for the Cocoa libraries. Because of the semantic differences between Java and Objective-C, many of the most powerful features of Cocoa, including Key-value binding (upon which many other features are built) is very difficult, leading to divergence of Objetive-C and Java capabilities and the eventual deprecation of the bridge. All Cocoa development is best done with Objective-C or one of the many (automatically generated) bridges to dynamic languages such as Python or Ruby.

With your background in smalltalk, I would expect you could pick up Objective-C in a day or two.

like image 2
Barry Wark Avatar answered Nov 19 '22 10:11

Barry Wark