Разработка для Scriptability
Эта глава обеспечивает высокоуровневые контрольные списки для разработки нового scriptable приложения Какао и добавления scriptability к существующему приложению.
Разрабатываете ли Вы приложение Какао с нуля или добавляете новую опцию к существующему приложению, Вы проходите через стандартный набор шагов проекта, адаптированных в соответствии с Вашим опытом, системы, Вы работаете с, и проект под рукой. Когда Вы разрабатываете для scriptability, процесс не отличается.
Следующие шаги обеспечивают схему для Вашего процесса проектирования, но не предназначаются, чтобы быть всесторонними. Однако ссылки предоставлены для получения дополнительной информации о проекте в этом и других документах.
Разработка нового приложения Scriptable
Для разработки нового scriptable приложения Какао рассмотрите использование следующих шагов:
Для Вашего полного проектирования приложений работайте с шаблоном разработки Model-View-Controller (MVC), широко сопровождающимся в приложениях Какао.
Хорошая поддержка сценариев обычно требует сценарии модели, а не уровня представления. Для получения дополнительной информации посмотрите Концентрат Поведение Scriptable в Объектах модели.
Привязка какао и Базовые Данные также работают с шаблоном разработки MVC. Посмотрите Взаимодействие С Привязкой Какао и Базовыми Данными для получения дополнительной информации.
Думайте о сценариях очень рано в Вашем проекте.
Когда Вы сначала начнете определять требования для своего приложения, рассматриваете виды функций, Вы захотите сделать scriptable и как пользователи могли бы написать сценарий тех функций для автоматизации операций с приложением. Это может помочь обеспечить понимание полных целей для Вашего приложения.
Вы захотите условия, которые Вы указываете для взгляда естественными в подобной английскому языку грамматике AppleScript. Сценарии условий не обязательно будут точным совпадением для терминологии, которую Вы используете в коде своего приложения.
Сценарии Интерфейсных Инструкций предоставляют ценную информацию о том, как обеспечить чистый и непротиворечивый интерфейс сценариев для Вашего приложения.
Разработайте проект для своей объектной модели AppleScript — сценаристы объектов будут использовать в их сценариях, и наследовании и отношениях включения между ними.
Это включает идентификацию scriptable свойств Ваших scriptable классов и обеспечения ряда ключей для идентификации их. (Вы будете использовать эту информацию позже, в Вашем sdef файле, для обеспечения ключей Cocoa, пишущих сценарий использования с кодированием значения ключа. Однако во многих случаях Вы не должны будете указывать ключи явно — Какао может определить их автоматически путем применения его стандартных правил к именам свойства.)
Для получения дополнительной информации посмотрите, Обеспечивают Ключи для Кодирования Значения ключа.
Определите, какую из стандартных команд AppleScript будет поддерживать Ваше приложение. Какао предоставляет поддержку для большинства стандартных команд сценариев, включая
close
,count
,delete
,duplicate
,exists
,get
,make
,move
,open
,print
,quit
,save
, иset
, но Ваше приложение должно выполнить некоторую работу также.Сценаристы ожидают, что Ваше приложение будет поддерживать, какой бы ни из этих команд целесообразны для него, и заставить команды работать стандартными способами. Путем оправдывания этих надежд Вы получаете два вида левереджа:
Можно использовать в своих интересах имеющиеся знания сценаристов, так, чтобы scriptability приложения был проще для них понять и использовать (значение меньшего количества жалоб и обращений за поддержкой).
Поддержка нескольких команд может обеспечить много scriptability — например, при обеспечении доступа через
get
иset
команды к пяти свойствам в каждом из двух самых важных классов в Вашем приложении, это - 20 scriptable операций — 2 раза команд 5 раз свойств 2 класса. Во многих случаях, поддержкаget
иset
команды требуют относительно небольшого усилия по кодированию.
Для поддержки специализированных операций, которые не могут быть обработаны одним из классов команды сценариев Какао определите новые подклассы команды сценария для тех операций.
Следует иметь в виду, что можно часто достигать цель с существующей командой. Например, вместо того, чтобы определить новое
rename
команда, можно использовать существующееset
команда для установкиname
свойство объекта к новому имени.Для получения дополнительной информации посмотрите Команды Сценария.
Создайте фактический файл определения сценариев (sdef) для Вашего приложения.
Это перечислено как шаг проекта, потому что возможно определить sdef и фактически скомпилировать сценарии против него в тесте или скелетном приложении перед записью кода для поддержки scriptability. Можно даже позволить сценаристам в работе целевой аудитории с терминологией приложения и обеспечить обратную связь.
Выполнение этого шага рано может помочь очень в совершенствовании Вашей поддержки сценариев и гарантировав, что это удобно для пользователя для сценаристов. Кроме того, Ваш словарь AppleScript может служить полезным документом проекта для целого приложения.
Несмотря на то, что можно ожидать для записи терминологии сценариев, пока Вы не реализуете приложение, пишущий, что это сначала поможет гарантировать непротиворечивость и удобство пользования. И во время реализации, Вы не должны реализовывать поддержку своей терминологии одновременно — можно сделать это инкрементно, поскольку Вы становитесь более знакомыми с процессом.
Для получения информации о создании sdef файла посмотрите Подготовку Файла Определения Сценариев.
Разработайте классы приложений, которые будут поддерживать scriptability. Удостоверьтесь, что эти классы поддерживают объектную модель сценариев, которую Вы определили, и включая наследование и включая отношения включения.
Необходимо назвать методы доступа для scriptable свойств этих классов для соответствия ключей, которые Вы определили ранее, как описано в Поддерживают Соответствие KVC.
План относительно тестирования.
Ваше тестирование должно включать создание и регулярное выполнение сценариев AppleScript, осуществляющих функциональность приложения. Возможность автоматизировать Ваше тестирование и более легко выполнить регрессионное тестирование является одним из больших усилений подавания Вашей scriptable заявки.
Производительность представляет другую важную область тестирования на большинство приложений. Для общего введения посмотрите Начальную точку Производительности для OS X. Для проблем, определенных для scriptable приложений, посмотрите Проблемы Производительности для Scriptability.
И конечно, необходимо также запланировать поблочное тестирование или другие виды тестирования этого, Вы обычно используете.
Для проблем для покрытия в плане тестирования см. План тестирования Scriptability.
Добавление Scriptability к существующему приложению
Для добавления scriptability к существующему приложению Какао рассмотрите использование следующих шагов. (Некоторые шаги сокращены, где они повторяют найденных в Разработке Нового Приложения Scriptable.)
Если время позволяет, и особенно если существуют другие причины перепроектировать приложение, рассмотрите главную модернизацию, выполнив шаги, описанные ранее для разработки нового scriptable приложения.
Эксперимент с созданием файла определения сценариев для Вашего приложения.
Как отмечено ранее, можно скомпилировать сценарии против терминологии перед записью любого кода. Это помогает Вам идентифицировать объекты сценариев и терминологию, Вы хотите предусмотреть сценаристов (Ваша объектная модель AppleScript), а также информация о расположенном ниже приложении, необходимо представить поддерживать ту терминологию. Это также помогает определить масштаб усилия подать scriptable заявку.
В классах, содержащих информацию, Вы хотите сделать scriptable, использовать любые переменные экземпляра или методы доступа, которые уже являются значением ключа, кодирующим совместимый.
В противном случае можно добавить KVC-совместимые средства доступа для поддержки scriptability. Один удобный способ сделать это с помощью категории Objective C. Этот подход является самым надлежащим в случае, где Вы прежде всего делаете существующие свойства и элементы scriptable. Когда у Вас нет свободного доступа к существующему коду, может также быть полезно.
Полагайте, что разрабатывающие scriptable классы «помощника» реализуют иерархию объектов, которую Вы представляете сценаристам. Эти классы могут поддержать ссылки на объекты приложения, содержащие фактических информационных сценаристов, будет работать с.
Можно определить классы помощника с нуля, добавив свойства и отношения по мере необходимости для поддержки объектной модели AppleScript. Для доступа к базовым данным необходимо вызвать методы в существующих классах — это - то, где Вы, вероятно, найдете большую часть сложности в переоснащении существующего приложения.
Этот подход является самым надлежащим в случае, где необходимо сплотить свойства от многократных классов приложений для представления одного класса объектной модели AppleScript, или где категория не будет работать, потому что необходимо добавить новые переменные экземпляра.
Определите, какая из стандартных команд AppleScript Ваше приложение будет поддерживать и планировать новые подклассы команды сценария любые дополнительные команды, которые необходимы.
План относительно тестирования, с помощью и сценариев AppleScript и других опций тестирования, доступных Вам.