Кіріспе

macOS үшін скрипт тілі

AppleScript – Apple Inc. компаниясы жасаған, Mac қолданбаларын автоматты түрде басқаруды жеңілдететін скрипт тілі. Алғаш рет System 7 жүйесінде пайда болған, қазіргі уақытта macOS-тің барлық нұсқаларында жүйелік автоматтандыру құралдары жиынтығының бір бөлігі ретінде қолжетімді. «AppleScript» термині тілдің өзіне, тілде жазылған жеке скриптке немесе тілдің негізінде жатқан macOS Open Scripting Architecture-ға сілтеме жасауы мүмкін. Жаңадан бастаушылар HyperTalk-ты HyperCard стегін бағдарламалау үшін пайдалана алатын. Apple инженерлері ұқсас, бірақ көбірек объектіге бағытталған скрипт тілінің кез келген қолданбамен жұмыс істеуге арналғанын түсінді және AppleScript жобасы Macintosh-ты жаңғырту бойынша жүргізілген зерттеулердің нәтижесінде дүниеге келді, соңында System 7 жүйесінің құрамына енді. AppleScript 1993 жылдың қазан айында System 7.1.1 (System 7 Pro, System 7 жүйесіне жасалған алғашқы маңызды жаңарту) бірге шығарылды. Бұл AppleScript-ке операциялық жүйенің өзіне тікелей әсер етуге мүмкіндік берді. 2013 жылы Macworld журналында жарияланған мақаласында тәжірибелі Mac бағдарламалық жасақтамасын әзірлеуші және сарапшы Джон Грубер «AppleScript-тің күтпеген табандылығы» туралы ойларын былай қорытындылады: «Теориялық тұрғыдан алғанда, AppleScript әлдеқайда жақсырақ болуы мүмкін; бірақ іс жүзінде, қазіргі уақытта бізде бар ең жақсы нәрсе осы. Бұл Mac-тің iOS-тан артықшылықтарын көрсетеді, әсіресе тәжірибелі пайдаланушылар мен жаңа нәрселерді ұнататындар үшін». 2016 жылдың қазан айында AppleScript өнімдерін басқарған және автоматтандыруды жақтаған Сал Согхоян «іскерлік себептермен» қызметтен босатылғандықтан Apple компаниясынан кетті. Mac қауымдастығының ветерандары, мысалы Джон Грубер мен Энди Ихнатко, Apple компаниясының әзірлеушілер қауымдастығы мен кәсіби пайдаланушыларға адалдығына қатысты алаңдаушылықтарын білдірді. Apple компаниясының бағдарламалық жасақтама инженериясы бойынша аға вице-президенті Крейг Федериги электрондық пошта арқылы: «Біз macOS-тағы керемет автоматтандыру технологияларын қолдауды жалғастыруға ниеттіміз!» деп мәлімдеді. Бірақ The Mac Observer басылымындағы Джефф Гамет бұл Apple-дің жалпы автоматтандыруының және әсіресе AppleScript-тің болашағына қатысты күмәнін сейілтуге көмектеспеді деп санайды. Қазіргі уақытта AppleScript Automator, Shortcuts, Services және shell scripting сияқты macOS автоматтандыру технологияларының бір бөлігі болып қала береді.

Негізгі түсініктер

AppleScript қолжетімді соңғы пайдаланушыға арналған сценарий тілі ретінде жасалған, ол пайдаланушыларға қолданбаларды басқаруға, деректерге және құжаттарға қол жеткізуге және оларды өзгертуге мүмкіндік беретін интеллектуалды механизмді ұсынады. AppleScript Apple оқиғаларын пайдаланады, бұл Macintosh операциялық жүйесі қолданбаларға ақпарат жіберу үшін қолданатын стандартталған деректер форматтарының жиынтығы, бұл веб-қызметтер әлемінде XML RPC арқылы XPath сұраныстарын жіберуге ұқсас. Finder AppleScript жазуды қолдайтындықтан, оны анықтама ретінде пайдалануға болады. AppleScript редакторы (Скрипт редакторы) ашық болғанда және "Жазу" батырмасын басқанда, жазуға болатын қолданбалардағы пайдаланушының әрекеттері олардың AppleScript командаларына айналдырылып, Скрипт редакторы терезесінде көрсетіледі. Соның нәтижесінде алынған сценарий сақталып, бастапқы әрекеттерді қайталау үшін қайта орындалуы мүмкін, немесе оны көбірек пайдалы ету үшін өзгертуге болады.

Скрипт редакторлары

Скрипт редакторлары AppleScripts үшін бірыңғай бағдарламалау ортасын қамтамасыз етеді, оған скрипттерді жасау, тексеру, компиляциялау, іске қосу және түзету құралдары кіреді. Олар сонымен қатар скрипт арқылы басқарылатын қолданбалардан AppleScript сөздіктерін ашу және қарау мүмкіндіктерін ұсынады, скрипттерді түрлі форматтарда (компиляцияланған скрипт файлдары, қолданба жиынтықтары, скрипт жинақтары және қарапайым мәтіндік файлдар) сақтауға болады, сондай-ақ әдетте синтаксистік бөліп көрсету және дайын код фрагменттері сияқты мүмкіндіктермен жабдықталады.

Apple компаниясынан

AppleScript редакторы (Скрипт редакторы) macOS жүйесімен бірге келетін AppleScript редакторы, Mac OS X Snow Leopard (10.6) нұсқасынан OS X Mavericks (10.9) нұсқасына дейін «AppleScript редакторы» деп, ал macOS-тың барлық бұрынғы және кейінгі нұсқаларында «Скрипт редакторы» деп аталады. Скрипттер құжатты өңдеу терезелерінде жазылады, онда оларды жинау және орындау мүмкін. Бұл терезелерде қателерді жою мақсатында журналға енгізілген ақпарат, орындау нәтижелері және басқа да пайдалы ақпараттар бар әртүрлі панельдер орналасқан. Скрипт сөздіктеріне және алдын ала жазылған код үлгілеріне қолданба мәзірі арқылы қол жеткізуге болады. OS X Yosemite (10.10) нұсқасынан бастап Скрипт редакторы AppleScript және JavaScript тілдерінде код жазу мүмкіндігін ұсынады. Smile – тегін бағдарлама, негізінен AppleScript әзірлеуіне арналған. SmileLab – сандық талдау, графика, машиналық автоматтандыру және веб-өндіріс салаларында кеңейтілген мүмкіндіктерге ие коммерциялық бағдарламалық қамтамасыз ету. Smile және SmileLab әртүрлі терезелерді пайдаланады: толық скрипттерді орындау және сақтау үшін AppleScript терезелері, кодты жолмен сынау үшін AppleScript терминалдары, мәтін және XML форматындағы деректермен жұмыс істеу үшін Unicode терезелері. Пайдаланушылар AppleScript-тегі стандартты диалогтар жеткіліксіз болған жағдайларда күрделі интерфейстерді (диалогтар) құра алады. ASObjC Explorer 4 (Шейн Стэнлиден) – AppleScript, әсіресе AppleScriptObjC үшін арналған, қолдауын жоқтатқан үшінші тараптың коммерциялық IDE-сі. Басты ерекшелігі – Cocoa нысандарының/оқиғаларының журналы, қателерді жою және кодты толықтыру мүмкіндігі. Пайдаланушылар басқа да скриптпен орындалатын бағдарламалар сияқты Cocoa оқиғалары мен нысандарын қарастыра алады. Бұл құрал бастапқыда AppleScript кітапханалары үшін (OS X Mavericks нұсқасында қол жетімді) жасалған. AppleScript кітапханалары – қайта пайдалануға болатын AppleScript компоненттері және AppleScript сөздігін (sdef) қолдауға бағытталған. ASObjC Explorer 4 сыртқы Xcode скрипт редакторы ретінде де қолданылуы мүмкін. FaceSpan (Late Night Software компаниясынан) – графикалық интерфейсі бар AppleScript қолданбаларын жасауға арналған, қолдауын жоқтатқан үшінші тараптың коммерциялық IDE-сі.

Скрипттерді іске қосу

AppleScripts скрипт редакторынан орындалуы мүмкін, бірақ скрипттерді тікелей, скрипт редакторы бағдарламасын ашпай орындау көбінесе ыңғайлырақ. Мұны істеудің бірнеше тәсілі бар:

Applet AppleScripts скрипт редакторынан қолданба ретінде сақталуы мүмкін (апплеттер немесе сүйреп тастау арқылы енгізуді қабылдағанда тамшылар деп аталады). Папка әрекеттерін (Folder actions) папкаға басып, контексттік мәзірден «Папка әрекеттерін орнату» (Folder Actions Setup) тармағын таңдау арқылы тағайындауға болады; бұл команда Mac OS X 10.6.x нұсқасында бұрынғы нұсқалардан сәл өзгеше. Осыған ұқсас әрекеттерді Hazel сияқты үшінші тараптық құралдарды пайдалану арқылы да жүзеге асыруға болады. Ыстық пернелерді (Hotkey) іске қосу үшін жүйелік параметрлердегі «Перне және тінтуір» (Keyboard & Mouse) параметрінің панелі арқылы скрипт мәзіріндегі AppleScripts үшін перне комбинацияларын тағайындауға болады. Сонымен қатар, әртүрлі үшінші тараптық құралдар бар: Alfred, FastScripts, Keyboard Maestro, QuicKeys, Quicksilver, TextExpander, олар кілттер комбинацияларын пайдаланып AppleScripts-ті қажет болғанда орындай алады. Скрипт мәзірі Бұл жүйелік мәзір macOS мәзір жолағынан AppleScripts-ке қол жеткізуді қамтамасыз етеді, ол қандай қолданба жұмыс істеп тұрса да көрінеді. (Сонымен қатар, көптеген Apple қолданбалары, кейбір үшінші тараптық қолданбалар және кейбір кеңейтімдер өздерінің скрипт мәзірлерін ұсынады. Оларды әртүрлі тәсілмен іске қосуға болады, бірақ барлығы бірдей принцип бойынша жұмыс істейді.) Скрипт мәзіріндегі скриптті таңдау оны іске қосады. Mac OS X 10.6.x нұсқасынан бастап жүйелік скрипт мәзірін Скрипт редакторының (Script Editor) параметрлерінен қосуға болады; алдыңғы Mac OS X нұсқаларында оны AppleScript Utility қолданбасынан қосуға болады. Бірінші рет қосылғанда, скрипт мәзірінде әдеттегі, қарапайым және функционалдық AppleScripts кітапханасы көрсетіледі, оны Скрипт редакторында ашып, AppleScript-ті үйрену үшін мысал ретінде пайдалануға болады. Скрипттерді тек белгілі бір қолданбалар алдыңғы планға шыққанда ғана мәзірде пайда болуы үшін ұйымдастыруға болады. Unix командалық жолы және launchd AppleScripts Unix командалық жолынан немесе жоспарланған тапсырмалар үшін launchd-тен орындалуы мүмкін. osascript құралы компиляцияланған скрипттерді (.scpt файлдары) және қарапайым мәтіндік файлдарды (.applescript файлдары – олар құрал орындау кезінде компиляцияланады) орындай алады. Скрипт қолданбаларын Unix open командасын пайдаланып орындауға болады.

AppleScript кітапханалары

Қайта пайдалануға болатын AppleScript модульдері (OS X Mavericks нұсқасынан бастап қолжетімді), AppleScript немесе AppleScriptObjC тілінде жазылған және белгілі бір жерлерде скрипт файлдары немесе жиынтықтар түрінде сақталатын, басқа скрипттерден шақыруға болатын модульдер. Жиынтық ретінде сақталғанда, кітапханаға AppleScript сөздігі (sdef) файлы кіре алады, осылайша ол скриптпен қосымша сияқты жұмыс істейді, бірақ AppleScript немесе AppleScriptObjC тілінде жазылған.

AppleScript Studio бағдарламасы

AppleScript бағдарламаларына Cocoa интерфейстерін қосуға арналған фреймворк, Mac OS X 10.4 және 10.5 нұсқаларындағы Xcode жинағының құрамына кіретін, қазір AppleScriptObjC пайдасына қолданыстан шығарылған.

AppleScriptObjC дегеннің атауы

Cocoa әзірлеу бағдарламалық құралы, сонымен қатар AppleScript/Objective C немесе ASOC деп аталады, Mac OS X Snow Leopard нұсқасынан бастап Xcode жинағының бір бөлігі. AppleScriptObjC AppleScript-терге Cocoa кластарын және әдістерін тікелей пайдалануға мүмкіндік береді. Төмендегі кесте macOS-тің әртүрлі нұсқаларында AppleScriptObjC қолжетімділігін көрсетеді:

+ macOS-тің әр нұсқасында AppleScriptObjC-ді қолдану мүмкіндігі Xcode-те Applet-терде AppleScript кітапханаларында Script Editor-де
10.6
10.7
10.8
10.9
10.10

AppleScriptObjC Mac OS X-тің барлық келесі нұсқаларында қолданылуы мүмкін.

Автоматтандырушы

Графикалық, модульдік редакциялау ортасы, онда жұмыс ағындары әрекеттерден құрастырылады. Ол бағдарламалау білімі болмаса да, AppleScript-тің көптеген функцияларын қайталауға бағытталған. Automator-дың қарапайым құрылымына тым күрделі тапсырмалар үшін, Automator-да AppleScript-терді қамтуға және іске қосуға арналған арнайы әрекет бар.

Скриптті қосу (OSAX)

Apple немесе үшінші тараптар жасаған AppleScript плагиндері. Олар орнатылған командалар жиынтығын кеңейтуге және AppleScript мүмкіндіктерін арттыруға, сондай-ақ қолданбалар ұсынатын мүмкіндіктерге тәуелділікті азайтуға арналған. macOS жүйесіне «Стандартты қосымшалар» (StandardAdditions.osax) деп аталатын скрипттік қосымшалар жинағы кіреді, ол AppleScript негізгі мүмкіндіктеріне жатпайтын командалар мен кластар жиынтығын қамтиды, оларға пайдаланушымен өзара әрекеттесу терезелері, файлдарды оқу және жазу, файлдық жүйе командалары, күнтізбелік функциялар, мәтін және математикалық операциялар жатады. Бұл OSAX болмаса, AppleScript көптеген қарапайым операцияларды тікелей қолданба арқылы қамтамасыз етілмесе, орындай алмас еді.

Тілдік құрылымдар

Көптеген AppleScript процестері код блоктары арқылы басқарылады, мұнда блок командамен басталып, `end` командасымен аяқталады. Ең маңызды құрылымдар төменде сипатталған.

Ашық скрипт архитектурасы

AppleScript-тің маңызды бір жағы – Ашық скрипт архитектурасы (OSA). Apple, OSA-ны басқа скрипт тілдерімен және QuicKeys және UserLand Frontier сияқты үшінші тараптың скрипттеу/автоматтандыру өнімдерімен AppleScript-пен бірдей деңгейде жұмыс істеуі үшін ұсынады. AppleScript скрипт компоненті ретінде жүзеге асырылды және мұндай компоненттерді OSA-ға қосудың негізгі талаптары жарияланды, бұл басқа дамытушыларға өздерінің скрипт компоненттерін жүйеге қосуға мүмкіндік берді. Скрипттерді жүктеу, сақтау және компиляциялау арналған ашық клиенттік API-лер барлық компоненттер үшін ортақ жұмыс істейді, сондай-ақ апплеттер мен droplet-тар кез келген скрипт тіліндегі скрипттерді сақтай алады. OSA-ның бір мүмкіндігі – скрипт кеңейтімдері немесе Open Scripting Architecture eXtension үшін OSAX, бірақ Macintosh-тың Perl, Python, Ruby және Tcl нұсқалары OSA компоненттері болмастан Apple оқиғаларымен жұмыс істеудің түпкілікті тәсілдерін қолдайды.