Требования к языку для Mac App Store - PullRequest
2 голосов
/ 05 февраля 2011

Я думал о создании приложения для Mac App Store, но мне было интересно, будут ли они принимать только программы, созданные в Objective-C с использованием XCode.используя Qt, чтобы я мог выпускать версии для Windows и Mac.

Ответы [ 2 ]

2 голосов
/ 05 февраля 2011

Чтобы понять, как требования GUI, опубликованные Cody Grey, затруднят принятие нетривиального приложения Qt, рассмотрим некоторые специфичные для Mac функции, которые нужно будет реализовать или, по крайней мере, проверить на корректность для случай простого текстового редактора:

  • правильные сочетания клавиш, включая сочетания клавиш emacs, которые являются стандартными для текстовых элементов управления Cocoa
  • правильная структура меню, в том числе:
    • настройки в меню приложения, а не в меню редактирования или инструментов
    • доступ к инструменту специальных символов из меню редактирования
    • Подменю «Открыть последние» в меню «Файл» с четкой записью в меню, в отличие от списка последних файлов, встроенного в меню «Файл» в Windows
    • правильное меню Окна, включая пункт «вывести все на передний план»
    • меню справки со встроенным полем поиска
  • возможность для приложения оставаться открытым после закрытия всех окон / документов
  • правильное поведение значка панели, включая список окон в контекстном меню
  • значок файла заголовка окна, который можно перетащить в другие приложения или щелкнуть правой кнопкой мыши, чтобы получить меню каталогов по пути к файлу, чтобы вы могли открыть вложенную папку в Finder

При переходе по этому списку вероятность того, что функция может быть легко реализована с помощью кроссплатформенного инструментария, уменьшается. Все эти функции были опущены, по крайней мере, одним приложением Qt Mac по моему опыту. Некоторые из этих функций, вероятно, могут быть легко добавлены в Qt с помощью непубличных API. Однако большинство этих функций бесплатны или почти тривиальны для реализации в проекте Какао, поэтому они почти повсеместны в нативных приложениях, и Apple была бы права отклонить ваше приложение, чтобы испортить их.

Если ваше приложение нетривиально и не является полноэкранной игрой OpenGL, то вам, вероятно, лучше написать собственный графический интерфейс с кроссплатформенным бэкэндом. Альтернативой является код, который полон #ifdef с, но все еще не совсем правильно выполняет работу.

1 голос
/ 05 февраля 2011

Учитывая, что я не представляю Apple, и не видел ни одного примера, когда бы эти дебаты проходили в пользу той или иной стороны, трудно дать вам окончательный ответ на этот вопрос.Вместо этого я опубликую то, что похоже на соответствующие разделы Руководства по обзору Mac App Store, и позволю вам самим решать.

Сначала рассмотрим раздел 2 «Функциональность».Это довольно широкая тематическая область, и мне кажется, что существует много возможностей для нарушений при использовании сторонней библиотеки GUI.Конечно, я также думаю, что все это можно обойти, если вы достаточно заинтересованы.

2.5 Приложения, которые используют непубличные API, будут отклонены

.,,

2.14 Приложения должны быть упакованы и отправлены с использованием технологий упаковки Apple, включенных в Xcode - сторонние установщики не допускаются

2.15 Приложения должны быть самостоятельнымисодержащиеся, одиночные пакеты установки приложений и не могут устанавливать код или ресурсы в общих местах

2.16 Приложения, которые загружают или устанавливают дополнительный код или ресурсы для добавления функциональности или изменения их основного назначения, будут отклонены

.,,

2.24 Приложения, использующие устаревшие или дополнительно установленные технологии (например, Java, Rosetta), будут отклонены.

.,,

2.29 Приложения, которые не используют соответствующие API-интерфейсы Mac OS X для изменения пользовательских данных, хранящихся в других приложениях (например, закладки, адресная книга или записи календаря), будут отклонены

Раздел 6 «Интерфейс пользователя» также стоит рассмотреть для приложения, использующего Qt.Я отказываюсь использовать библиотеку в Windows, потому что она не использует стандартные элементы графического интерфейса платформы.Я могу только предположить, что он делает то же самое на Mac, и еще неизвестно, как Apple отреагирует на это.(Я подозреваю, что альтернативные кроссплатформенные библиотеки графического интерфейса, которые ведут себя корректно и используют собственные виджеты, здесь бесплатны и понятны.)

6.1 Приложения должны соответствовать всем положениям и условиям, описанным вРуководство по интерфейсу пользователя Apple Macintosh

.,.

6.3 Приложения, которые не используют элементы, предоставленные системой, такие как кнопки и значки, правильно и в соответствии с инструкциями Apple Macintosh Human Interface Guidelines, будут отклонены

.,.

6.5 Приложения, которые изменяют элементы пользовательского интерфейса или поведение Mac OS X, будут отклонены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...