Shortcut, kod yazmadan birden çok uygulama ve hizmetin eylemlerini birbirine bağlayan Apple Shortcuts uygulamasındaki bir otomasyon senaryosudur. Shortcuts, Siri aracılığıyla sesle, zamanlamayla, coğrafi sınıra girip çıkarken, widget'a dokunarak veya NFC etiketine temas ederek başlatılır. Senaryo, Actions oluşturucusunda blokları sürükleyip bırakarak görsel olarak oluşturulur. Daha fazla ayrıntı için Shortcuts Kullanıcı Kılavuzu'na bakın.
Önemli Noktalar
Shortcut, iOS, iPadOS, macOS ve watchOS'ta görevleri otomatikleştirmek için tek bir senaryoda birleştirilmiş bir dizi eylemdir (Actions). Normal bir uygulamanın aksine, Shortcut'ın kalıcı bir arayüzü yoktur — arka planda çalışır veya yalnızca veri girişi için hızlı diyaloglar gösterir. Kullanıcı, Shortcuts uygulamasında Actions galerisinden blokları birleştirerek bir senaryo oluşturur ve tek bir dokunuşla, sesle veya bir tetikleyici aracılığıyla otomatik olarak başlatır.
Shortcuts uygulaması — iOS 13+, iPadOS, macOS 12+ ve watchOS çalıştıran tüm cihazlarda kullanılabilen Apple'ın yerleşik otomasyon oluşturucusu. Actions kitaplığı 300'den fazla yerleşik blok içerir: sistem (mesaj gönder, ara, uygulama aç), medya (fotoğraf, müzik, podcast), internet (Get Contents of URL aracılığıyla REST API), dosya ve belge işleme. Galeri, Apple ve topluluktan hazır senaryolar içerir — bir kişiye tahmini varış süresi göndermekten toplu dosya adı değiştirmeye kadar.
Actions kitaplığı, App Intents framework'ü aracılığıyla üçüncü taraf uygulamalar tarafından genişletilir. Geliştirici, Intents.intentdefinition'a intents kaydeder ve bunlar otomatik olarak Shortcuts galerisinde görünür. Örneğin, Things 3 «Görev oluştur» ve «Bugünkü görevleri göster» Actions'larını eklerken, CARROT Weather konum parametreleriyle «Bugünün tahmini»ni ekler.
Shortcuts, iOS sanal alanında çalışır — senaryo, sınırlı izinlerle shortcuted adlı bir arka plan işleminde yürütülür. Her Action, giriş parametrelerini alan, işlemi gerçekleştiren ve bir sonuç döndüren önceden tanımlanmış bir işleyiciye yapılan bir çağrıdır. Sistem, bir Action'ın çıktısını bir sonrakine girdi olarak bir işlem hattı aracılığıyla iletir — kullanıcı bunu düzenleyicide bloklar arasındaki mavi bağlantı noktaları olarak görür.
Yürütme akışı doğrusaldır: Actions yukarıdan aşağıya sırayla yürütülür. Koşullu dallar If blokları kullanılarak uygulanır — sistem koşulu değerlendirir ve ilgili dalı yürütür. Döngüler mevcuttur: Repeat (N kez tekrarla), Repeat with Each (liste öğeleri arasında yinele) ve For Each. Bir Action'daki hata, Try/Catch bloğu eklenmediği sürece tüm senaryoyu kesintiye uğratır.
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)
}
}
}
Her Intents işleyicisi, INIntentsSupported anahtarı aracılığıyla Info.plist'e kaydedilir. Shortcut, Siri aracılığıyla başlatıldığında, sistem uygun IntentHandler'ı bulur ve onu eşzamansız olarak yürütür. Yanıt, durum, mesaj ve kullanıcıya gösterilecek isteğe bağlı verileri içeren bir INIntentResponse nesnesi olarak döndürülür.
Shortcut oluşturma, Shortcuts uygulaması galerisinde «+»ya dokunarak başlar. Kullanıcı, kategorilerden Actions seçer: Uygulamalar, Kodlama, Web, Dosyalar, Sağlık, Müzik ve diğerleri. Her Action yapılandırılabilir — giriş alanları, anahtarlar, listeler. Birleştirmeden sonra senaryo, Play düğmesiyle test edilir ve hatalarda sorunlu blok vurgulanır. Paylaşmak için Shortcut, AirDrop veya iMessage aracılığıyla göndermek üzere .shortcut dosyası olarak dışa aktarılır.
Değişkenler ve Sihir Shortcuts, değişkenleri destekler — bir Action'ın çıktı verileri diğerine aktarılabilir. Sihirli Değişkenler otomatik olarak belirlenir: önceki Action bir resim döndürürse, sistem bunu sonraki Action'ın parametrelerinde önerir. Kullanıcı, Set Variable bloğu aracılığıyla adlandırılmış değişkenler de oluşturabilir ve bunları senaryonun herhangi bir yerinde kullanabilir.
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, özel intents için Intents'in yerini alan Apple'ın (iOS 16+, SwiftUI) modern bir framework'üdür. Eski SiriKit'in aksine, App Intents Objective-C çalışma zamanı olmadan çalışır, async/await aracılığıyla eşzamansızlığı destekler ve Siri için otomatik olarak diyaloglar oluşturur. CreateTaskIntent struct'ı AppIntent protokolüyle işaretlenir ve parametreler @Parameter özniteliğiyle işaretlenir. Framework, Shortcuts galerisinde otomatik olarak bir Action oluşturur.
Shortcuts tetikleyicileri, bir senaryonun otomatik olarak başlatıldığı koşullardır. Yapılandırma, Shortcuts uygulamasının Otomasyon sekmesinde yapılır. Tetikleyiciler kişisel (zaman, konum, şarj), duyusal (NFC, sallama), sistem (uygulama açma, odak modu, CarPlay bağlantısı) ve olay tabanlı (e-posta alma, takvim etkinliği, bildirim) olarak ayrılır. Her tetikleyici anında yürütme veya onay gerektirecek şekilde ayarlanabilir.
| Tetikleyici | Başlatma koşulu | Kullanım örneği |
|---|---|---|
| Zaman | Belirli saat, gün doğumu/gün batımı | Saat 22:00'de Rahatsız Etmeyin'i etkinleştir |
| Coğrafi sınır | Bir alana girme veya çıkma | İşten çıkarken «Eve gidiyorum» gönder |
| NFC | NFC etiketine dokunma | Etikete dokunulduğunda «Akıllı Ev» senaryosunu başlat |
| Uygulama | Uygulama açma veya kapatma | YouTube kapatıldığında zamanlayıcıyı kapatmayı hatırlat |
| Odak | Odak modu değişikliği | Uyku Odağı etkinleştiğinde koyu temayı aç |
| Şarj | Güç bağlantısı/kesintisi | MagSafe bağlandığında şarj widget'ını aç |
Otomasyon, Shortcuts'ın geliştirici ayrıcalıkları olmadan normal uygulamalar için kullanılamayan temel bir özelliğidir. Kullanıcı tetikleyiciyi bir kez ayarlar ve unutur — senaryo müdahale olmadan arka planda çalışır. Örneğin, «Eve geldiğimde Wi-Fi'yi aç ve sessiz modu kapat» otomasyonu, evin coğrafi sınırına girildiğinde tetiklenir. Sistem, ilk kurulumda otomasyon için izin ister ve seyrek kullanımda devre dışı bırakabilir.
macOS'ta Shortcuts — macOS 12 Monterey'den itibaren Shortcuts, Mac'te kullanılabilir. Senaryolar, iCloud aracılığıyla tüm Apple cihazları arasında senkronize edilir. Mac'te sistem Actions'ları desteklenir: Finder, Terminal, Automator ve AppleScript. macOS geliştiricileri, iOS'a benzer şekilde App Intents aracılığıyla Actions ekleyebilir.
App Intents, iOS 16+ ve macOS 13+'te bir uygulamayı Shortcuts ile entegre etmek için birincil framework'tür. Geliştirici, AppIntent protokolünü uygulayan bir struct oluşturur, property wrappers aracılığıyla parametreleri tanımlar ve perform() yöntemini uygular. Sistem, intent'i otomatik olarak Shortcuts, Siri ve Spotlight'a kaydeder. Eski iOS sürümlerini (10–15) desteklemek için INIntent ve IntentHandler ile Intents framework'ü kullanılır.
import Intents
class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> AnyObject? {
if intent is OrderCoffeeIntent {
return OrderCoffeeIntentHandler()
}
return .none
}
}
App Intents'i test etme — intents hata ayıklaması Xcode aracılığıyla yapılır: uygulama şemasını seçin, Arguments'da -intents iletin, simülatör test için kayıtlı intents listesini gösterecektir. Bir Shortcut'ı gerçeğe yakın bir ortamda test etmek için bir uygulama arşivi oluşturun ve TestFlight aracılığıyla bir cihaza yükleyin. Uygulamadaki Shortcuts, ilk başlatmadan sonra galeride görünür.
Gelişmiş özellikler App Intents, otomatik tamamlama (dinamik seçenekler) içeren parametreleri, yürütmeden önce onaylamayı, Siri için intents (sesli kısayollar) ve başlatma düğmeli widget'lar oluşturmayı destekler. Indexed intents (iOS 17+), Siri'nin kullanıcıya bağlama (zaman, konum ve eylem geçmişi) göre otomatik olarak önerdiği intents'lerdir.
Sıkça Sorulan Sorular
Shortcut, farklı uygulamaların eylemlerini birbirine bağlayan bir senaryodur, bağımsız bir uygulama değildir. Kullanıcı kod yazmaz, hazır Actions bloklarından bir senaryo oluşturur. Shortcut tetiklenir ve Shortcuts uygulamasını açmadan yürütülürken, normal bir uygulamanın ekrandaki bir simge aracılığıyla başlatılması gerekir.
Shortcuts şu tetikleyicileri destekler: zamanlanmış saat, bir alana girme veya çıkma sırasında coğrafi sınır, iPhone'a dokunulduğunda NFC etiketi, uygulama açma, widget dokunma, Siri sesli komutu, şarj cihazı bağlantısı, uyku modu ve odak modu ile belirli uygulama bildirimleri. Yapılandırma, Otomasyon sekmesinde yapılır.
Evet, Shortcut .shortcut dosyası olarak dışa aktarılır ve AirDrop, iMessage aracılığıyla gönderilebilir veya iCloud aracılığıyla Shortcuts galerisinde yayınlanabilir. Alıcı senaryoyu içe aktarır ve kullanabilir. İnternetten indirirken iOS onay ister ve olası güvenlik riskleri nedeniyle güvenilmeyen senaryoların çalıştırılması konusunda uyarır.
Üçüncü taraf uygulamalar, iOS 16+'da App Intents framework'ü veya eski sürümlerde Intents framework'ü aracılığıyla Actions ekler. Geliştirici, Intents.intentdefinition'a eylemleri kaydeder ve bunlar Shortcuts uygulamasının Actions galerisinde görünür. Kullanıcı, farklı uygulamaların Actions'larını birleştirir — örneğin, Safari'den Bear notlarına bağlantı gönderme.
Hayır, Shortcuts kod olmadan görsel olarak oluşturulur. Kullanıcı, listeden Actions bloklarını sürükleyip bırakır, parametreleri yapılandırır ve bunları sırayla bağlar. Gelişmiş senaryolar için Run Script Over SSH, Get Contents of URL ve Control Flow If, Repeat, For Each gibi bloklar mevcuttur, ancak programlama deneyimi gerekli değildir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun