Including shortcuts help may be an effective way to distinguish your app and supply wonderful integration into the iOS ecosystem. Shortcuts enable your customers to work together together with your app with out launching and navigating into particular screens to carry out duties. Shortcuts can use voice, textual content or Highlight to perform fast duties with out a lot psychological overhead. Your customers may also construct bigger workflows together with your shortcuts to perform many duties concurrently.
Prior to now, including Shortcuts and exposing them to the system may very well be cumbersome and time-consuming. After your shortcut was arrange and out there, you had to determine the easiest way to tell the consumer that it existed and present methods to use it. In iOS 16, Apple revamped the method of including and exposing your app’s Shortcuts to iOS. The previous means of including Shortcuts included finicky visible editors and mapping code recordsdata to Intent Definition recordsdata.
The brand new App Intents framework permits you to create shortcuts from the identical language you utilize every day – Swift! Every part is statically typed and ingested into iOS upon set up. Your shortcuts are instantly out there to customers through Siri, the Shortcuts app and Highlight.
It’s time to dive into this new easy approach so as to add Shortcuts to the system!
Getting Began
Obtain the starter undertaking by clicking the Obtain Supplies button on the prime or backside of the tutorial.
The BreakLogger app permits you to document break occasions all through the day. Open the starter app undertaking. Construct and run BreakLogger. You’ll see an empty break checklist:
Faucet the Add button on the backside of the display, and also you’ll be prompted to document a break:
Choose a break so as to add. Subsequent, you’ll see an inventory of the breaks you’ve added — together with the one you simply recorded:
Proper now, the one technique to log a break is from throughout the app. However iOS has a number of different methods to work together with apps all through its ecosystem. Customers could wish to log a break as half of a bigger workflow, combining a number of actions into one shortcut. They might additionally wish to inform Siri to log a break with out opening the app whereas on the go. These use circumstances are doable if you happen to combine the App Intents framework into your app.
iOS 16 launched the App Intents framework. Shortcut definitions are actually constructed solely in Swift, with no code technology or further steps wanted to make them out there throughout iOS. You not want to make use of Intent Definition recordsdata or the visible editors. Get began constructing your individual together with your first App Intent.
Defining Your First App Intent
Contained in the starter undertaking, right-click the Supply group and choose New Group. Title the group Intents. Inside the brand new group, right-click once more and choose New File… . Choose the Swift File template and select Subsequent. Title the file LogBreakIntent.swift.
Create a LogBreakIntent
struct that conforms to AppIntent
:
import AppIntents
import SwiftUI
// 1
struct LogBreakIntent: AppIntent {
// 2
static let title: LocalizedStringResource = "Log a Break"
// 3
func carry out() async throws -> some IntentResult & ProvidesDialog {
// 4
let loggerManager = LoggerManager()
loggerManager.logBreak(for: .quarterHour)
// 5
return .outcome(dialog: "Logged a 15 minute break")
}
}
Right here’s what’s taking place within the code above:
- Creates a
struct
to characterize your shortcut. Provides conformance to theAppIntent
protocol. - Provides a
title
property. That is of kindLocalizedStringResource
, which makes the string out there out of course of for localization lookup. Bear in mind this code additionally runs when your app isn’t in reminiscence. - Provides a
carry out()
operate to finalize conformance to theAppIntent
protocol. Signifies it returns anIntentResult
and that it offers a dialog. - Makes use of the
LoggerManager
comfort kind to log a 15-minute break. This motion additionally saves the break to the Core Knowledge retailer. - Returns the
IntentResult
as a dialog.
With the present setup, a consumer can create a shortcut and the intents from BreakLogger will seem as out there actions. These actions run by themselves or as half of a bigger shortcut composed of many actions. As quickly as a consumer installs BreakLogger your intents can be found as shortcut actions.
Construct and run to make sure the up to date code installs to the simulator. Subsequent, background the app with the keyboard shortcut Command + Shift + H
. You’ll see the Shortcuts app on the identical display. Open Shortcuts.
Faucet the + button on the highest proper. The New Shortcut view masses.
On the New Shortcut view, faucet Add Motion. Within the segmented management on the prime, choose Apps.
Choose BreakLogger from the checklist, then faucet Log a Break.
Faucet Carried out. The view dismisses and takes you again to the Shortcuts tab within the app. You’ll see your new shortcut on the display now. You’ve created a shortcut together with your first app intent!
Faucet the Log a Break shortcut to run it. You’ll see a dialog drop down after a second or two with the content material you arrange within the carry out()
operate.
Faucet Carried out, shut Shortcuts and open BreakLogger once more. You’ll see the break you simply logged added to the checklist.
Properly completed! You added Shortcuts integration into your app with a couple of Swift recordsdata in a couple of steps. Subsequent, you’ll add an app shortcut to BreakLogger.
Including an App Shortcut
Again in Xcode, add a brand new Swift file to the Intents group you created earlier. Title the file BreakLoggerShortcuts.swift.
Add the next:
import AppIntents
// 1
struct BreakLoggerShortcuts: AppShortcutsProvider {
// 2
static var appShortcuts: [AppShortcut] {
// 3
AppShortcut(
// 4
intent: LogBreakIntent(),
// 5
phrases: [
"Log a break",
"Log a (.applicationName) break"
]
)
}
}
Right here’s what this code does:
- Creates a struct that conforms to
AppShortcutsProvider
. This lets iOS know to index the shortcuts right here. - Provides a static property that returns an array of
AppShortcut
situations. For this instance, you’ll solely be offering one. - Creates an
AppShortcut
. - Makes use of
LogBreakIntent
because the intent behind the shortcut. - Supplies an inventory of phrases that may set off this shortcut. Observe the usage of the particular token
.applicationName
, which resolves to the localized title of your app.
Now, construct and run.
Background the app. You’ll be capable to begin Siri on the simulator and say, “Use BreakLogger to a break” and have the shortcut run instantly.
You’ll see a immediate asking you to allow BreakLogger shortcuts with Siri:
Then, you’ll see a affirmation dialog:
Lastly, open BreakLogger once more. You’ll see your second logged break from the shortcut you simply ran.
Observe: Siri may be finicky on the simulator. You might have to reset the gadget and check out a number of occasions to get the shortcut to run through voice. Additionally, be certain there isn’t a variety of background noise within the room you’re working in.
Subsequent, you’ll create a customized affirmation view to point out every time the intent has run.