Платформы с богатым графическим интерфейсом OS X?

StackOverflow https://stackoverflow.com/questions/19387

Вопрос

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

Мой опыт работы связан с Smalltalk и Java, но сейчас я работаю в основном с DHTML/.NET (ASP.NET/C#).

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top