Выбор графической среды для приложения
OS X предлагает много опций для преобразования Ваших приложений с графическим интерфейсом пользователя от кодовой базы UNIX до собственной кодовой базы OS X, или даже для обертывания существующих ранее инструментов командной строки или утилит с графическим фронтэндом, делая их доступными для пользователей, никогда не хотящих перейти к командной строке.
В этой главе описываются некоторые проблемы, с которыми Вы столкнетесь при портировании приложения GUI на OS X или добавлении обертки GUI вокруг приложения командной строки. Это также описывает различные среды GUI, поддерживаемые OS X, и дает преимущества и недостатки каждого.
В выборе графической среды для использования в подаче основанного на UNIX приложения к OS X необходимо будет ответить на вопросы, изложенные в следующих разделах:
Эти вопросы должны все быть оценены, поскольку Вы взвешиваете затраты и преимущества каждой среды. Можно уже использовать межплатформенный инструментарий API. Если Вы не делаете так, можно хотеть портировать приложение на встроенный API, такой как Углерод или Какао.
Если Вы будете коммерческим разработчиком, добавляющим новый графический интерфейс пользователя к приложению командной строки, и захотите использовать в своих интересах самые большие сильные места OS X, то Вы, вероятно, захотите использовать Какао API. В некоторых случаях можно хотеть использовать различный API по причинам, таким как межплатформенная совместимость.
Если Вы решаете использовать несобственный API, как X11R6, обеспечить пользовательский интерфейс для Вашего приложения Mac, важно помнить, что пользователи и разработчики с фоном UNIX могли бы быть совершенно довольны просто иметь приложение, работающее в OS X. Традиционные пользователи Macintosh, однако, откажутся от приложения с традиционным интерфейсом UNIX для более интегрированного и современного интерфейса. Предназначаетесь ли Вы для прямого порта к Дарвинскому уровню, или более устойчивая трансформация Вашего приложения для использования в своих интересах других технологий OS X (как платформы Какао) является решением.
Какое приложение Вы портируете?
Вы приносите существующую ранее кодовую базу к OS X, или Вы добавляете новую функциональность — например, графический интерфейс — к приложению командной строки? Если Вам уже записали кодовую базу в определенный API, и что API поддерживается в OS X, Вы, вероятно, хотите продолжать использовать тот API для любого большого, сложного приложения, если Вы не желаете функций другого API.
Для простых приложений, или для приложений, где Вы обертываете утилиту командной строки с графическим интерфейсом пользователя, необходимо оценить что API использовать. Чтение следующих двух разделов поможет Вам распознать преимущества и недостатки каждой технологии.
Как хорошо это должно интегрироваться с OS X?
Кому Вы представляете свое приложение на рынке? Если они - традиционные пользователи UNIX, просто хотящие запустить, например, упорядочивающее ген приложение рядом с Microsoft Office, то может быть достаточно просто установить X-оконную систему на их компьютере OS X. Вы просто портировали бы свое основанное на X11R6 приложение на OS X, оставив Ваш код как есть (кроме небольших изменений Вы, возможно, должны сделать, чтобы заставить его скомпилировать в OS X). Для получения дополнительной информации о X11 в OS X см. X11R6.
Если Вы - внутренний разработчик приложений UNIX, это может быть, насколько Вы хотите пойти, особенно если Вы хотите поддержать тот же пользовательский опыт через многократные платформы. Однако можно все еще хотеть использовать Углерод или Какао APIs для улучшения полного вида UI, чтобы упростить использовать.
Если Вы продаете приложение, некоторые клиенты могли бы сначала быть рады только иметь его на своей платформе. Однако, если конкурирующий продукт будет выпущен с помощью стандартной функциональности OS X, то клиенты, вероятно, будут гравитировать к тому продукту.
Горячая тема в отраслях науки и техники не только приносит кодовую базу к OS X, но также и дает тому приложению интерфейс собственного пользователя OS X. Это не решение, которое будет сделано тривиально для приложения со сложным GUI и большой кодовой базой, но это - то, могущее судьбоносный успех продукта на рынке. Отдельные обсуждения следующего APIs должны помочь Вам принять хорошо осведомленное решение.
Если Вы будете разработчиком программного обеспечения с открытым исходным кодом, то Вы будете, вероятно, гравитировать к основному порту приложения X11. Если приложение, вероятно, будет использоваться потребителями, такими как текстовой процессор или веб-браузер, Однако необходимо рассмотреть создание собственного GUI.
Ваше приложение требует межплатформенной функциональности?
Если у Вас есть приложение, которое должно работать над многократными платформами, OS X сделал, чтобы Вы установили для успеха. У Вас есть много опций; некоторые встроены и поставлены с каждой версией операционной системы; другие требуют установки дополнительных компонентов. Рисунок 5-1 изображает различие между межплатформенным APIs, который является собственным и те, которые не являются.
Вы видите, что OS X включает некоторый стандартный межплатформенный APIs: Java, OpenGL и QuickTime. Существуют также коммерческие и свободные реализации некоторых традиционных технологий UNIX. Если Вы создаете межплатформенное приложение, необходимо оценить, для каких платформ Вы предназначаетесь со своим приложением и определяете, который API позволяет Вам приносить своему основанному на UNIX приложению к OS X. Таблица 5-1 перечисляет платформы, на котором OS X работают межплатформенные технологии.
API | Платформы |
---|---|
OS X, основанные на UNIX системы, Windows | |
OS X, Windows | |
OS X (Собственный компонент и X11), основанные на UNIX системы, Windows | |
OS X (Собственный компонент и X11), основанные на UNIX системы, Windows | |
OS X (Собственный компонент и X11), основанные на UNIX системы, Windows | |
OS X, основанные на UNIX системы |
В следующих двух главах Вы сочтете краткие описания каждой из технологий доступными Вам для графического интерфейса пользователя Вашего приложения.