Step by Step Guide To Integrate Siri with Apps Leveraging SiriKit
For more than 5 years, Siri- the intelligent personal assistant has amazed the world since it was acquired by Apple and integrated into the iPhone 4S. The speech recognition engine uses natural language processing to understand the voice queries and convert it into the text, and then answer the questions, make recommendations or perform actions.
After a few years of Siri acquisition, Apple has made another Siri related announcement, which has once again stunned the iOS app development landscape, and that’s SiriSDK- SiriKit becomes available for third-party apps to enhance the apps with voice commands.
Thereafter, the wave of Apple Siri integration in third-party apps has started creating ripples in the app development space. The IT professionals are dying to extend the utility of Siri to make the most out of the opportunity and engineer excellent user experience.
However, Apple has implemented a few restrictions along with SiriKit release, that’s the doors of Siri is opened only for those apps which belong to one of the six domains- audio or video calling, messaging, payments, searching photos, workouts, and ride booking. It means the developers can experiment leveraging Siri for the limited use cases. Well, this is a great start!
Before exploring how the iOS app can be extended with SiriKit, let’s take a sneak peek inside at how Siri interacts with a mobile app
At first, Siri identifies the domain for which intent is created. Several intents can be created for any domain. What’s the intent? The intent is actually an action which Siri comprehend and communicate the same to the application.
For instance, the intent- ‘start a WhatsApp video call with Jim,’ is created for audio or video calling domain.
Later, the processing of an intent starts wherein Siri goes through the vocabulary database that’s provided by the apps to understand the command that users generally initiate and then map the same to the intents.
During processing, if the intent is incomplete and won’t have enough parameters to accomplish the action, the Resolve is called to sort out the conflict and ensures Siri has rightly understood what users said. Thereafter, the intent object is passed to the app to handle the intent, perform the logic and check the requirement states to confirm the action with users.
Now, take a quick glance at how Siri can be integrated with iOS apps
Select the app’s domain at first
Before directly jumping into the Siri integration task, the digital experts should check whether the applies in one of the domains as stipulated by Apple or not. The SiriKit programming guide is the best resource to check out the app that comes with one of the domains’ enlisted list.
Do the needful settings
In the project navigator, you need to click iOS projects, then in the project settings, select app target and capabilities tab consequently. In case, the developers need to add a new target, then either + button should be clicked or navigate this way – select file > new > target.
Add intent extension
SiriKit implementation is done with the help of intent extension- INExtension, that’s a new class added in iOS 10. The app developers would build and deploy the app extension that’s already packaged in the native app, so when the users either download or update the app, the app extension will already get installed on their phone.
What’s app extension? The app extension allows the users to extend the app functionality and make it available to the users even when they are using other apps. For instance, when users want to share a post, the WhatsApp, Facebook, Instagram and more appear as an option, and further when WhatsApp is selected the WhatsApp extension is created which receive the request, process it and then provide the response.
The app extension communicates with Siri through intents while intent extension keeps running in the background. Siri capture the intent, check all the parameters in the intent is acceptable or not, and then pass on the intent to the app extension. Afterwards, the app extension process the user intent and provide the response back to Siri.
Several intent extensions can be added to the app that individually supports different intents.
Implement the intent handler
Once, the intent extensions are added to the app, it’s necessary to define the system that which intents should be acceptable or on which app it should react. Primarily, the supported intents are registered inside of info .plist file in the intent target which can be navigated this way- NSExtension > NSExtensionAttributes > IntentsSupported.
The intent access can be limited to the locked devices using IntentsRestrictedWhileLocked key class. The specific handler for an intent is decided by the class in intense tension that’s provided by “NSExtensionPrincipalClass” key.
Include app-specific vocabulary
Every app has a lot of words and phrases which are one-of-a-kind and app-specific. The developers must create the app-specific vocabulary wherein the words and phrases are described and provided the same to Siri to better understand what the user actually means or wants. It can be defined as an array of strings or an array of terms along with their pronunciation in the plist file.
Tweak the UI with intents UI
Intent UI extension is another optional extension provided by SiriKit to improve the Siri’s visual interface with a certain level of customization, once the intent is handled by app extension.
Although Siri has a default view for all types of intents, the developers can replace them with the customized one to display additional information or add animations for the processes to improve the user experience.
Summing it up
An open question- does your app fall into one of the six domains offered for Siri integration? If so, it would be a great start as the handy guide is now in your hands to give shape to the idea that you might have thought about adding to the app using Siri. So, must give Sirikit a try.
If you are looking to boost up your app idea feasibility, a notch higher by getting Siri integrated into your app, share your app requirements and let us work it out for you. We are one the most trusted mobile app development company who believes in transforming your app idea or business solutions to reality.