Богатые GUI OS X Frameworks?


6

Что вы порекомендуете для разработки OS X графического приложения, подобного возможному в WPF?

Мой конкретный фон в Smalltalk & Java, но в настоящее время я работаю в основном в DHTML/.NET (ASP.NET/C#).

15

Какао. Многие считают, что это лучшая прикладная структура. Язык - это Objective-C, похожий на SmallTalk язык, который вдохновил создателей Java.

Действительно, нет разумной альтернативы Cocoa для разработки OS X, если у вас нет особых потребностей, таких как желание быть кросс-платформенным.


1

Я не уверен, что такое WPF, но большая часть разработки для платформы OSX выполняется в Objective-C с Cocoa. Вы можете использовать устаревшие API-интерфейсы Carbon с другими языками, такими как Java, но новые приложения для OSX действительно должны быть разработаны в Objective-C. Вы можете начать с Apple's guide с XCode в качестве вашей IDE.


2

Какао - это основная структура, используемая в Mac OS X. Это то, что использует Apple, это то, что использует большинство новых разработок, и именно здесь добавляются новые функции.

Если вы приехали из WPF, я думаю, вы можете найти немало концепций в Cocoa. (Несмотря на то, что Cocoa немного старше.) Он построен полностью вокруг MVC, есть уведомления об изменениях свойств и привязки свойств, есть поддержка анимации, есть структура управления постоянством и объектно-графическим интерфейсом и т. Д.

(Кроме того, вы можете добавить «макинтош» в теги.)


4

Помимо Interface Builder, который включен в качестве части Xcode инструментов, вы можете также использовать QT, GTK +, AWT & SWING (для вашего фона Java), Tk, Squeak (для вашего фона Smalltalk), Обувь (очень классный маленький инструмент Ruby GUI), FXRuby (больше Ruby), wxWidgets, XULRunner и другие, я уверен, что я забыл. Однако для большинства родных приложений Interface Builder - ваш лучший выбор.


2

С вашим фоном Java, не отвлекайтесь на устаревший мост Cocoa-Java. В начале истории OS X Apple предоставила Java-интерфейс для работы с Cocoa-библиотеками (с ручным управлением). Из-за семантических различий между Java и Objective-C многие из самых мощных функций Cocoa, включая привязку Key-value (на которые построено множество других функций), очень сложны, что приводит к расхождению возможностей Objetive-C и Java и возможное обесценивание моста. Все разработки Cocoa лучше всего использовать с Objective-C или одним из многих (автоматически сгенерированных) мостов для динамических языков, таких как Python или Ruby.

С вашим фоном в smalltalk, я бы ожидал, что вы сможете забрать Objective-C через день или два.


0

Чтобы поступить иначе, чем предыдущие плакаты: если вы не проектируете свой интерфейс в InterfaceBuilder и не манипулируете им с Objective-C, то вы получите в конечном итоге приложение, которое не будет выглядеть, чувствовать, действовать, или работать так, как должно быть приложение Macintosh, и оно будет выдаваться пользователям, как больной палец. Это будет неприятный опыт для пользователя по сравнению с другими приложениями, и из-за этого они, скорее всего, захотят другого приложения.

Инструменты, такие как QT, приемлемы, если ваше приложение уже использует QT, и вы хотите его быстро портировать, но если вы пишете новое приложение (или отдельный графический интерфейс), напишите его в Cocoa с помощью ObjC или ObjC++.


0

Возможно, вы можете посмотреть PyObjc, который является мостом между языком программирования Python и Objective-C, включая привязки для компонентов Mac OS X, включая Cocoa.


0

С фоном Smalltalk я бы рекомендовал прямое Cocoa и Objective-C. Однако, если вы склоняетесь к динамическому языку, RubyCocoa позволит вам использовать Ruby, который, я думаю, вам будет легче подобрать, чем Python.