Shortcut — сценариј аутоматизације у апликацији Shortcuts компаније Apple, који повезује радње неколико апликација и услуга без писања кода. Shortcuts се покрећу гласом путем Siri, по распореду, при уласку или изласку из геозоне, притиском на виџет или додиром NFC ознаке. Сценариј се креира визуелно кроз конструктор Actions превлачењем блокова. Детаљније — на Shortcuts User Guide.
Главно
Shortcut — низ радњи (Actions) обједињених у један сценариј за аутоматизацију задатака на iOS, iPadOS, macOS и watchOS. За разлику од обичне апликације, Shortcut нема стални интерфејс — извршава се у позадини или приказује брзе дијалоге само за унос података. Корисник креира сценариј у апликацији Shortcuts, комбинујући блокове из галерије Actions, и покреће га једним додиром, гласом или аутоматски путем окидача.
Апликација Shortcuts — уграђени конструктор аутоматизације компаније Apple, доступан на свим уређајима са iOS 13+, iPadOS, macOS 12+ и watchOS. Библиотека Actions укључује преко 300 уграђених блокова: системски (пошаљи поруку, позови, отвори апликацију), мултимедија (фотографије, музика, подкасти), интернет (REST API путем Get Contents of URL), рад са датотекама и документима. Галерија садржи готове сценарије од Apple-а и заједнице — од слања ETA контакту до масовне промене имена датотека.
Библиотека Actions се допуњује апликацијама трећих страна путем App Intents framework-а. Програмер региструје интенте у Intents.intentdefinition и они се аутоматски појављују у галерији Shortcuts. На пример, апликација Things 3 додаје Actions „Креирај задатак" и „Прикажи данашње обавезе", а CARROT Weather — „Прогноза за данас" са параметрима локације.
Shortcuts ради у пешчанику iOS-а — сценариј се извршава у позадинском процесу shortcuted са ограниченим правима. Сваки Action је позивање предефинисаног руковаоца који прима улазне параметре, обавља операцију и враћа резултат. Систем преноси излазне податке једног Action на улаз следећег кроз pipeline — корисник види ово као плаве тачке повезивања блокова у едитору.
Ток извршавања Shortcut-а је линеаран: Actions се извршавају секвенцијално одозго надоле. Условни прелази се реализују блоковима If — систем израчунава услов и извршава одговарајућу грану. Доступне су петље Repeat (понови N пута), Repeat with Each (по елементима листе) и For Each. Грешка у једном Action прекида цео сценариј, ако није додат блок Try/Catch.
import Intents
class OrderCoffeeIntentHandler: NSObject, OrderCoffeeIntentHandling {
func handle(intent: OrderCoffeeIntent,
completion: @escaping (OrderCoffeeIntentResponse) -> Void) {
let order = Order(coffee: intent.coffee, size: intent.size)
placeOrder(order) { success in
let response = success
? OrderCoffeeIntentResponse.success(coffee: intent.coffee)
: OrderCoffeeIntentResponse.failure(error: "Order failed")
completion(response)
}
}
}
Сваки Intents руковалац региструје се у Info.plist-у кроз кључ INIntentsSupported. При покретању Shortcut-а путем Siri-ја, систем проналази одговарајући IntentHandler и извршава га асинхроно. Одговор се враћа у облику INIntentResponse објекта који садржи статус, поруку и опционе податке за приказ кориснику.
Креирање Shortcut-а почиње притиском на „+" у галерији апликације Shortcuts. Корисник бира Actions из категорија: Апликације, Сценарији, Интернет, Датотеке, Здравље, Музика и друге. Сваки Action се подешава — поља за унос, прекидачи, листе. Након склапања, сценариј се тестира дугметом Play, а при грешкама се истиче проблематични блок. За објављивање, Shortcut се извози у .shortcut датотеку за слање путем AirDrop-а или iMessage-а.
Променљиве и магија Shortcuts подржава променљиве — излазни подаци једног Action могу се пренети у други. Магичне променљиве (Magic Variables) се одређују аутоматски: ако претходни Action враћа слику, систем је предлаже у параметрима следећег. Корисник такође може креирати именоване променљиве кроз блок Set Variable и користити их на било ком месту сценарија.
import AppIntents
struct CreateTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Create Task"
static var description = IntentDescription(
"Creates a new task in your to-do list"
)
@Parameter(title: "Task Title")
var taskTitle: String
func perform() async throws -> some IntentResult {
let task = TaskModel(title: taskTitle)
try await Database.shared.save(task)
return .result(dialog: "Task created")
}
}
App Intents — модеран оквир компаније Apple (iOS 16+, SwiftUI) који је заменио Intents за прилагођене интенте. За разлику од старог SiriKit-а, App Intents ради без Objective-C runtime-а, подржава асинхроност кроз async/await и аутоматски генерише дијалоге за Siri. Struct CreateTaskIntent се обележава протоколом AppIntent, а параметри атрибутом @Parameter. Оквир сам креира Action у галерији Shortcuts.
Окидачи Shortcuts-а — услови при којима се сценариј покреће аутоматски. Подешавање се врши на картици Automation у апликацији Shortcuts. Окидачи се деле на личне (време, локација, пуњење), сензорске (NFC, протресање), системске (отварање апликације, режим фокуса, повезивање на CarPlay) и догађајне (пријем е-поште, календарски догађај, обавештење). За сваки окидач се може подесити извршење одмах или са потврдом.
| Окидач | Услов покретања | Пример употребе |
|---|---|---|
| Време | Одређено време, излазак/залазак сунца | Укључи режим „Не узнемиравај" у 22:00 |
| Геозона | Улазак или излазак из области | Пошаљи „Идем кући" при изласку с посла |
| NFC | Додир NFC ознаке | Покрени сценариј „Паметна кућа" при додиру ознаке |
| Апликација | Отварање или затварање апликације | Подсети да искључиш тајмер при затварању YouTube-а |
| Фокус | Промена режима Focus | Укључи тамну тему при активацији Sleep Focus |
| Пуњење | Прикључивање/искључивање напајања | Отвори виџет пуњења при повезивању MagSafe-а |
Аутоматизација — кључна могућност Shortcuts-а, недоступна обичним апликацијама без програмерских права. Корисник подешава окидач једном и заборавља — сценариј се извршава у позадини без учешћа. На пример, аутоматизација „Када дођем кући, укључи Wi-Fi и искључи тихи режим" покреће се при уласку у геозону куће. Систем тражи дозволу за аутоматизацију при првом подешавању и може је искључити при ретком коришћењу.
Shortcuts на macOS-у — од macOS 12 Monterey Shortcuts су постали доступни на Mac-у. Сценарији се синхронизују путем iCloud-а између свих Apple уређаја. На Mac-у су подржани системски Actions Finder, Terminal, Automator и AppleScript. Програмери macOS-а могу додавати Actions путем App Intents-а слично iOS-у.
App Intents — главни оквир за интеграцију апликације са Shortcuts-ом на iOS 16+ и macOS 13+. Програмер креира struct који имплементира протокол AppIntent, описује параметре кроз property wrappers и имплементира метод perform(). Систем аутоматски региструје интент у Shortcuts-у, Siri-ју и Spotlight-у. За подршку старијим верзијама iOS-а (10–15) користи се Intents framework са INIntent и IntentHandler-ом.
import Intents
class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> AnyObject? {
if intent is OrderCoffeeIntent {
return OrderCoffeeIntentHandler()
}
return .none
}
}
Тестирање App Intents-а — отклањање грешака интената врши се кроз Xcode: изаберите шему апликације, у Arguments-у проследите -intents, и симулатор ће предложити листу регистрованих интената за тестирање. За проверу Shortcut-а у окружењу блиском стварном, саставите архив апликације и инсталирајте на уређај путем TestFlight-а. Shortcuts из апликације појављују се у галерији након првог покретања.
Напредне могућности App Intents подржава параметре са аутоматским довршавањем (динамичке опције), потврду пре извршења (confirmation), интенте за Siri (voice shortcuts) и креирање виџета са дугмадима за покретање. Indexed intents (iOS 17+) — интенти које Siri аутоматски предлаже кориснику на основу контекста: времена, локације и историје радњи.
Често постављана питања
Shortcut — је сценариј који повезује радње различитих апликација, а не самостална апликација. Корисник не пише код, већ саставља сценариј од готових блокова Actions. Shortcut се покреће окидачем и извршава се без отварања апликације Shortcuts, док обична апликација захтева покретање путем иконе на екрану.
Shortcuts подржава окидаче: време по распореду, геозона при уласку или изласку из области, NFC ознака при додиру iPhone-а, отварање апликације, притисак на виџет, гласовна команда Siri, повезивање пуњача, режим спавања и фокус Focus Mode, као и одређена обавештења из апликација. Подешавање се врши на картици Automation.
Да, Shortcut се извози у .shortcut датотеку и шаље путем AirDrop-а, iMessage-а или објављује у галерији Shortcuts-а путем iCloud-а. Прималац увози сценариј и може га користити. При преузимању са интернета, iOS захтева потврду и упозорава о покретању непроверених сценарија због потенцијалних безбедносних ризика.
Апликације трећих страна додају Actions путем App Intents framework-а на iOS 16+ или Intents framework-а на старијим верзијама. Програмер региструје радње у Intents.intentdefinition-у и one се појављују у галерији Actions апликације Shortcuts. Корисник комбинује Actions различитих апликација — на пример, шаље линк из Safari-ја у Bear белешке.
Не, Shortcuts се креирају визуелно без кода. Корисник превлачи блокове Actions са листе, подешава параметре и повезује их секвенцијално. За напредне сценарије доступни су блокови Run Script Over SSH, Get Contents of URL и Control Flow If, Repeat, For Each, али искуство у програмирању није неопходно.
Закључци
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође