Qt4.5 по сравнению с Какао для собственного Mac UI

Я разрабатывал для Windows, и *отклоняют платформы в течение достаточно долгого времени, и смотрю на перемещение в разработку Mac. Я бросаю между использованием ObjC/Cocoa и C++/Qt4.5.

C++ / семантика MOC имеет больше смысла мне, и улучшающееся знание в QT походит на разумную вещь сделать, учитывая, что Вы заканчиваете с набором навыков, который покрывает больше платформ.

Я, вероятно, затрудню свои приложения путем пропуска Какао?

Демонстрационные спокойные приложения выглядят довольно собственными Mac мне, но они довольно просты, так потенциально не рассказывают целую историю. Там другие профессионалы являются к XCode способом, которым QT не имеет, такие как упаковка, развертывание, и т.д.?

16
задан Michael Currie 11 September 2015 в 05:23
поделиться

9 ответов

Вот простой способ ответить:

Если бы вы разрабатывали приложение для Windows с .NET или MFC, вы бы сделали свои приложения инвалидами, используя Qt? Если ответ "да", то, скорее всего, ситуация на Mac будет такой же.

Несколько отрицательных моментов, о которых я могу думать с самого начала:

  • Лицензирование
  • Приложения на Qt, хотя и хорошие, но не являются полностью "родным" пользовательским интерфейсом, и есть вещи, которые "родной" дизайнер пользовательского интерфейса может делать в Cocoa, которые поражают воображение. Хотя я не могу быть уверен, что все те же самые функциональные возможности не доступны в Qt, я сомневаюсь в этом.
  • Qt всегда немного отстает. Если Microsoft или Apple выйдут с отличной новой технологией, вам придется ждать, пока разработчики Qt обновят Qt.

Однако, со всем этим, только вы можете определить коммерческую ценность использования Qt. Если вы думаете, что кросс-платформенная разработка будет основной частью вашей разработки, то Qt может стоить этого, несмотря на упомянутые проблемы.

14
ответ дан 30 November 2019 в 16:49
поделиться

Я делаю много кроссплатформенных разработок (Mac, Windows, Linux), а для некоторых проектов использую Qt. Это прекрасный каркас и предоставляет богатую библиотеку классов. Если вам нужно развернуть на нескольких платформах, не можете позволить себе тратить время/усилия на специфичные для платформы фронтенды, или "общая" поддержка для каждой платформы достаточно хороша, тогда используйте Qt.

Однако, Qt неизбежно страдает в некоторой степени от синдрома наименьшего общего знаменателя, и иногда не чувствует себя достаточно родным . Также существуют определенные возможности, которые либо трудно поддерживать, либо просто не предоставляются в библиотеках Qt. Так что если вы можете позволить себе время и усилия, или ваше приложение действительно требует внимания к деталям и подгонки & завершения, то разработка отдельных внешних интерфейсов может стоить того.

В любом случае, вы должны писать ваш внутренний код (так же известный как домен) платформенно-нейтральным и внешне нейтральным способом. Таким образом, front-end легко заменяется или модифицируется между платформами.

Вы всегда можете начать с фронтенда Qt и быстро перейти к маркетингу, а затем разработать "родной" фронтенд вниз по строке.

На практике, я заметил, что приложение Qt на Windows выглядит наиболее "родным", в то время как на Mac есть некоторые тонкие telltale знаки, которые делают его выглядеть/чувствовать не совсем верно. И пользователи Mac, как правило, имеют гораздо более высокие ожидания, когда дело доходит до UI/UX!

.
2
ответ дан 30 November 2019 в 16:49
поделиться

В зависимости от того, какие приложения вы хотите написать, другим претендентом является REALbasic, который теперь называется Xojo.

Переход с C++ довольно прост (у меня 15 лет опыта работы на C++), а фреймворк и IDE очень продуктивны. Вы получили дополнительный бонус - возможность тривиального внедрения в Linux и Windows. Их фреймворк компилируется с нативным кодом и использует нативные виджеты, так что вы не имеете эмулированного вида и ощущений.

Большая причина для изучения Cocoa и кодирования в Objective-C это если вы хотите отточить свои навыки работы на iPhone или гоняетесь за действительно фантастическим пользовательским опытом. Если вы хотите конкурировать с передовыми разработками WPF, то я бы порекомендовал какао.

.
0
ответ дан 30 November 2019 в 16:49
поделиться

Я бы использовал Qt, если вы хотите, чтобы это было кроссплатформенное приложение.

3
ответ дан 30 November 2019 в 16:49
поделиться

В настоящее время я разрабатываю как с помощью QT (на самом деле PyQT, но это не имеет никакого значения для вашего вопроса), так и с помощью нативного приложения Cocoa. Для меня это не мозг, я бы выбрал Какао. На самом деле, стоит познакомиться с какао в целом, есть много замечательных концепций в рамках Cocoa, а также Objective-C 2.0.

.
3
ответ дан 30 November 2019 в 16:49
поделиться

НЕ ИСПОЛЬЗУЙТЕ Qt для приложения Mac. Вы не получите аппаратного ускорения для 2D рендеринга, и вы не сможете обеспечить соответствие ADA.

.
1
ответ дан 30 November 2019 в 16:49
поделиться

Спросите себя: сколько из лучших приложений для Mac, которые вы знаете, используют Qt вместо родного Cocoa?

Для наших роботизированных систем мы изначально написали наше управляющее программное обеспечение на C++, используя кросс-платформенную библиотеку wxWidgets (мы избегали Qt из-за некоторых проблем с лицензированием), потому что мы чувствовали, что должны были нацелиться на платформы Windows, Linux и Mac для наших конечных пользователей. Это то, что мы поставляли больше года, пока я не начал работать с Cocoa.

Сразу же на меня произвело наибольшее впечатление то, как быстро вы смогли развиваться с помощью Cocoa. В конце концов, мы решили отказаться от поддержки Linux и Windows и переписать все наши контрольные приложения на Cocoa. То, на что у нас ушли годы, чтобы собрать C++ воедино, потребовалось всего три месяца, чтобы полностью переработать Cocoa.

Помимо проблем с интерфейсом "наименьшего общего знаменателя", на которые указывали другие, быстрое развитие, разрешенное Cocoa, стало конкурентным преимуществом для нашей компании. Наше программное обеспечение продвинулось намного быстрее с момента перехода на Cocoa, и это позволило нам, как новой компании с одним разработчиком, выдержать конкуренцию даже с 10-летними конкурентами, которые имеют 20 команд разработчиков. Похоже, что это обычная история в пространстве разработки Mac, где вы видите множество небольших команд, способных создавать продукты, которые конкурируют с продуктами гораздо более крупных компаний.

В заключение, использование какао дает вам возможность оставаться на вершине новых API Apple постоянно внедряется. Сейчас мы работаем над новым интерфейсом управления, который будет интенсивно использовать Core Animation, что было бы болезненно при использовании Qt.

.
5
ответ дан 30 November 2019 в 16:49
поделиться

Вы можете посмотреть на класс QMacCocoaViewContainer . Он действует как некая обертка для общих видов какао, так что вы также можете иметь элементы какао, которые официально не поддерживаются Qt.

Конечно, это означает, что вы немного узнаете о какао и цели C, а также о том, как должен выглядеть какао-интерфейс. Но если вы уже хорошо знаете Qt и если ваше приложение не похоже на все и только на GUI, это может быть хорошим способом.

И не забывайте о QMacStyle::WidgetSizePolicy или вы не поймете, почему ваши таблицы выходят такими огромными.

.
3
ответ дан 30 November 2019 в 16:49
поделиться

С тех пор, как я разместил это сообщение, я изучаю какао/цель-С, и на меня произвело большое впечатление. Несмотря на то, что изначально я считал довольно причудливый синтаксис, Objc кажется очень эффективным языком для реализации кода пользовательского интерфейса, а XCode sugar - такие вещи, как Core Data и привязки - делают короткую работу со всеми скучными битами.

Я провел некоторое время с примерами и документацией по QT перед тем, как копаться в какао, и склонен согласиться с тем, что было сказано выше w.r.t, находясь немного позади кривой и меньше "аква-рыбы" - хотя и от довольно тривиальной проверки. Если бы мне абсолютно необходимо было собрать кроссплатформенное приложение, я бы, вероятно, использовал QT, вместо того, чтобы пытаться отделить код пользовательского интерфейса, так как кажется, что он бы обеспечил достаточное количество визуальных эффектов, но только для целей mac, Cocoa выглядит как определённая победа.

Спасибо всем за ваши ответы, они все были очень полезны!

2
ответ дан 30 November 2019 в 16:49
поделиться