Rich GUI OS X Frameworks?

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
2 015
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

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

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

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

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

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

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

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

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

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

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

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

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

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

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