Как написать приложение для mac os

Создание программ для Mac OS X. Часть 3: Apple Script

В этой части я расскажу про еще одно интересное средство разработки приложений для Mac OS X — скриптового языка Apple Script.

Apple Script разрабатывался чтобы применяться конечными пользователями, а не программистами, и позволить им контролировать приложения и документы, с которыми они работают. Например, с помощью Apple Script можно открыть фотографию в редакторе изображений, обрезать до нужного размера, записать ссылку на фото в текстовый файл и т.п.

В отличии от того, как пользователь через GUI взаимодействует с приложением, например впечатывает информацию в текстовые поля приложения для работы с базами данных, AppleScript работает совсем иначе, скрипт использует внутреннюю объектную модель приложения, тем самым внося значения в саму базу данных. Это означает, что во время работы скрипта приложение даже не обязательно показывать. Естественно такая модель работы требует того, чтобы ваше приложение было написано с поддержкой Apple Script.

Каждое приложение, которое понимает Apple Script, публикует поддерживаемые комманды в Apple Event словаре, который используется, чтобы определить допустимые комманды.

Язык, очень похожий на натуральный

в подкасте Радио-Т ведущий bobuk говорил что скрипт, написанный на языке Apple Script читается как обычный английский текст. В принцие он прав, т.к. это и есть одна из основополагающих особеннойстей Apple Script.

Движок Apple Script комбинирует глаголы и существительные, чтобы выполнить действия. Например, чтобы напечатать документ, страницу из документа или опеределенный фрагмент, вместо вызова функций printPage, printDocument, printRange, мы берем глагол print и добавляем нужное существительное:

print page 1
print document 2
print pages 1 thru 5 of document 2

tell application «iTunes»
playpause
end tell

tell application «Microsoft Word» to quit

tell application «QuarkXPress»
tell document 1
tell page 2
tell text box 1
set word 5 to «Apple»
end tell
end tell
end tell
end tell

Использовать иерархичность можно следующим образом:

pixel 7 of row 3 of TIFF image «my bitmap»

set pix to 72
set answer to text returned of (display dialog «Enter in the number of inches» default answer «1»)
display dialog answer & «in = » & (answer * pix) & «px»

при исполнии покажет диалоговое окно с запросом ввода кол-ва дюймов, потом это значение конвертируется в пиксели и результат показывается в следующем окне.

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

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

Если бросить на файл со скриптом пару других файлов, то при запуске будет использован следующий обработчик:

on open theItems
— что-нибудь делаем с этими самыми theItems
end open

Средстав для написания скриптов лежат в /Applications/AppleScript

В качестве редактора/интерпритатора исаользуется ScriptEditor.app

Чтобы открыть Apple Event словарь надо в меню Script Editor нажать File=> Open Dictionary, откроется окно со списком приложений
выбираем нужное(например iTunes) и клацаем OK. Открылось окно с описанием комманд для нужного нам приложения

Читайте также:  Установить пунто свитчер для windows

А теперь напишем простенькое Cocoa приложение, с помощью которого можно контроллировать iTunes
Открываем XCode, File=>New Project, Cocoa Application => в Project Name пишем iTunes_Controller. Добавляем новый Objective-C class «controller». В файле controller.h пишем

interface controller: NSObject <
>
— (IBAction) nextClick:(id)sender;
— (IBAction) prevClick:(id)sender;
— (IBAction) pauseClick:(id)sender;
— (IBAction) playClick:(id)sender;
— (void) executeAppleScript:(NSString*)sctript;
end

В принципе, в этом коде ничего секретно-военного нету. Просто пишем класс, с помощью которого и будем контролировать iTunes. Функции *Click — это обработчики нажатия по соответствующим кнопочкам на форме. А executeAppleScript:(NSString*)sctript — функция, которая будет исполнять скрипт в параметре script.

А теперь клацаем по MainMenu.nib и попадаем в InterfaceBuilder. Добавляем в окно MainMenu.nib новый NSObject и назначем ему класс controller:

Затем разместим на форме четыре кнопки с надписями «next»,«play»,«pause»,«previous» и соеденим их с соотв. обработчиками из класса controller:

Сохраняем все и возвращаемся в XCode. В файле controller.m пишем следующее:

— (void) executeAppleScript:(NSString*)script <
try <
NSAppleScript *ascript = [[NSAppleScript alloc] initWithSource:script];
[ascript executeAndReturnError:nil];
[ascript release];
>
catch (NSException * e) <
NSLog(@«exception:%@»,e);
>
>
— (void) nextClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n next track \n end tell»];
>
— (void) prevClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n previous track \n end tell»];
>
— (void) playClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n play \n end tell»];
>
— (void) pauseClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n pause \n end tell»];
>

В принципе в этом коде ничего сложного тоже нет. Единственная интересная вещь — класс NSAppleScript, с помощью объекта которого и выполняем скрипт. Подробнее про NSAppleScript можно почитать здесь.

В принципе, я думаю, что этого достаточно чтобы получить общее представление о Apple Script и попробавть что-нибудь на нем написать.

Источник

Как сделать приложение для Mac из любого сайта

В рабочем процессе все чаще используются простые и полезные веб-сервисы вместо тяжелых и громоздких приложений. Это вынуждает держать с десяток дополнительных вкладок в браузере и тратить кучу времени на поиск нужной.

Есть способ упростить работу и превратить часто используемые сайты в отдельные приложения.

? Спасибо re:Store за полезную информацию. ?

Зачем делать из сайта приложение

Разработчики большинства сервисов в первую очередь ориентируется на мобильные платформы и не выпускают официальные клиенты для настольных операционных систем.

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

Во-первых, используемый сервис не будет занимать отдельную вкладку в браузере.

Читайте также:  Чем ubuntu проще windows

Во-вторых, его будет быстрее отыскать в доке или строке меню.

В-третьих, при работе с отдельным приложением его легко учитывать в сервисе Экранное время или любом другом трекере активности на компьютере.

Так можно следить за своими посиделками в Instagram, TikTok либо VK. Получится удобно слушать плеер стримингового сервиса, пользоваться переводчиком или конвертером валют.

Как превратить любой сайт в приложение для Mac

Мы уже рассказывали, как сделать приложение в ручном режиме при помощи командной строки, сейчас воспользуемся специальной программой, которая значительно упрощает процесс.

Рекомендуем использовать Unite 3 или Coherence X. Рассмотрим алгоритм действий на примере последнего.

1. Установите и запустите приложение Coherence X.

2. Выберите режим Create single app.

3. Введите название приложения и его адрес в сети.

4. Подберите иконку (есть автоматический поиск или подбор из локальных файлов).

5. При необходимости разрешите авторизацию через учетную запись Google в программе.

6. На следующем шаге укажите браузер, на движке которого будет запускаться приложение.

7. При необходимости можно добавить установленные в браузере расширения, чтобы они были встроены в приложение, например VPN-сервис.

8. На последнем шаге нажмите Create standard app и подождите несколько секунд.

В папке Программы на Mac увидите новое приложение. Можете запускать его и пользоваться как отдельной программой.

Источник

Как написать приложение для mac os

Когда разработчики задумываются о создании приложений Xamarin для устройств Apple, они часто имеют в виду iPhone и iPad, но ведь, помимо этого, можно создавать приложения и для macOS. Здесь все не в полной мере аналогично iOS, однако, применительно к тем, кто имеет опыт работы с iOS, надо сказать, что они уже обладают множеством навыков, которые могут быть успешно использованы при разработке приложений для macOS. Благодаря Xamarin.Mac разработчики могут создавать отличные приложения macOS с помощью простого кода C#.

Из этой статьи вы узнаете, как создать свое первое приложение для macOS на C#, а разрабатывать мы будем таймер Pomodoro для обеспечения продуктивности.

Приступаем

Создание приложений для macOS начинается с того же, с чего и любое другое приложение, то есть, с File > New. Обратите внимание на то, что на Ваше устройство macOS необходимо установить Xamarin.Mac.

Разработка приложений macOS из Visual Studio не поддерживается!

Следуем по пути: File > New Solution > Mac > App > Cocoa App

Далее необходимо ввести имя приложения; мы назовем его просто Pomodoro.

Параметры Dock Item и Extension можно настроить, но сейчас мы оставим их как есть — с пустыми значениями или установленными по умолчанию. Мы разберемся с ними в другой статье.

Теперь основа для приложения macOS заложена! Сейчас приложение можно протестировать, запустив его из левого верхнего края Xamarin Studio. В отличие от Xamarin.iOS, здесь не нужно выбирать целевой объект для запуска приложения, поскольку приложение будет запущено прямо на компьютере Mac. Вы должны увидеть что-то вроде этого:

Создание пользовательского интерфейса

Теперь, когда у нас есть основа приложения для macOS, пришло время построить пользовательский интерфейс, ведь от пустого приложения нет никакого проку!

Читайте также:  Как передать параметр скрипту linux

В Xamarin.Mac для разработки пользовательского интерфейса используется Interface Builder от Xcode. Как и в iOS, интерфейсы macOS строятся с помощью Storyboard. Поддержка Storyboard на macOS была введена в версии 10.10 (Yosemite). Чтобы не усложнять статью, мы будем в данном случае рассматривать работу с версией macOS 10.10 и выше. Если приложение должно поддерживать 10, 9 или более низкие версии, необходимо использовать файлы .xib, о которых можно прочитать подробнее в руководстве по работе с файлами .xib.

В обозревателе решений дважды щелкните по пункту Main.storyboard. Xcode откроется автоматически со стабом проекта, а Storyboard будет открыт в конструкторе интерфейсов.

Первое, что мы увидим, — это пустой пользовательский интерфейс. Обратите внимание, что в Storyboard имеется строка меню и ее можно использовать для настройки строки меню у приложения. На данный момент давайте не будем ничего в меню изменять.

Добавление объектов к интерфейсу в некоторой степени похоже на использование конструктора iOS в Xamarin Studio. В правом нижнем углу окна конструктора интерфейса отображается панель инструментов. Можно просмотреть доступные объекты, выбрав значок «Показать библиотеку объектов» (Show the Object library), как показано ниже:

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

Для начала найдите объект Label, а затем перетащите его на контроллер представлений (View Controller).

Мы можем сделать то же самое для кнопки — Push Button.

Чтобы отредактировать заголовок и ярлык у кнопки, можно либо дважды щелкнуть мышью для редактирования текста, либо в инспекторе атрибутов (Attributes Inspector) в верхней правой части окна найти пункт Title и отредактировать его.

Теперь, когда пользовательский интерфейс создан, настало время настроить в коде команды и outlets для работы с ним. Для этого нужно переключиться на помощник редактора (Assistant Editor), который можно найти в верхней правой части главного окна Xcode, и щелкнуть на значок, который выглядит как два перекрывающихся круга. При этом автоматически создается файл с именем ViewController.h. Если этого не происходит, в верхней части новой панели редактора щелкните по Automatic и выберите Manual > Pomodoro > Pomodoro > ViewController.h. Теперь Xcode должен выглядеть следующим образом:

Настройка команд и outlet в файле заголовка (.h file) позволит нам ссылаться на них из проекта Xamarin. Чтобы при нажатии кнопки запускался код, мы должны настроить действие и ссылаться на метку (label) из проекта Xamarin, и, кроме того, нужно создать outlet.

Удерживая нажатой клавишу Control, нажмите на кнопку и перетащите курсор с нее на строку под заключительной закрывающей фигурной скобкой в правом редакторе. Во всплывающем окне измените Connection на Outlet, а имя укажите TimerLabel и нажмите «подключить»:

Таким образом файл заголовка автоматически заполнится правильным определением для outlet:

Источник

Оцените статью