Limits of SiriKit? - ios

I'm thinking a lot about how Siri could improve the UX of my App.
I'm coding an app dedicated to fitness, to log your workouts and your personal records.
I would like to let the user use Siri to use features of my App, but I don't really understand if it's possible or not. I read the documentation but it's not very clear for me, I don't know if Siri is limited to "start / stop / pause / resume a workout" or if we can do more.
( https://developer.apple.com/documentation/sirikit/workouts )
I would like to add things like that:
"Hey Siri, what's my personal record for deadlift?"
"Hey Siri, log 230 reps for my workout of the day"
"Hey Siri, what is the workout of the day?"
Could you tell me if it's possible to do that? Is it possible to connect Siri with your app and your database / functions?

The possible actions that Siri can initiate (the "intents") are pre-defined by Apple. From https://developer.apple.com/documentation/sirikit:
SiriKit defines the types of requests—known as intents—that users can
make. Related intents are grouped into domains to make it clear which
intents you might support in your app. For example, the messages
domain has intents for sending messages, searching for messages, and
marking messages as read or unread.

Related

What are the default Apple URL schemes for the default apple apps?

I am trying to track down these URLs because I would like to integrate them with the Shortcuts (previously workflow) app. My end game is to make queries that will perform certain functions that I can call from a google home device. In simpler terms, I want to make google home more "Apple friendly."
I have not found anything that is too current out there on the URL schemes. I saw that sending a SMS message was triggered with sms://<PhoneNumber> , but I am not sure how up to date that information is.
I plan on adding features to search Apple Music (by triggering a workflow). I am also planning on adding text message features.
I am also looking into making an app for google home, but I still am in the learning stage with that. Any advice on making google home more Apple friendly would be greatly appreciated.
This is a constantly changing list given the number of features being added or third-party apps. Here's a list that does a good job of staying up-to-date: https://ios.gadgethacks.com/news/always-updated-list-ios-app-url-scheme-names-0184033/

How does SiriKit parse commands for Pinterest

Could anyone enlighten me how does Siri recognise this sentence for Pinterest?
Pinterest: Find specific ideas you've saved: "Hey Siri, find women's
fashion Pins on Pinterest." https://www.imore.com/siri-apps-faq
I suspect its using INSearchForPhotosIntentHandling since the sentence has the closest reference to photos. The second thing I suspect is the use of Custom Vocabulary by swapping out "photo" with "Pins".
https://developer.apple.com/documentation/sirikit/registering_custom_vocabulary_with_sirikit
These are my current speculations for now, but I would like some clarity on this.
Use Case
I have an app that is centered around food reviews and I am hoping to integrate Siri to assist in Searching for food.
An example command:
"Hey Siri, find Japanese food in MY_APP."
"Hey Siri, find Japanese food reviews in MY_APP."
My keywords could be Food or Food Reviews or Reviews.
Siri process the request for your app based on the Intent that is supported by the app. There are only limited categories that is supported by Siri now.
So the siri know the vocabulary for these categories and it also uses your apps custom vocabulary to process the user given string to call the corresponding Intent from your extension.
IMO, you can consider reviews as notes and support INSearchForNotebookItemsIntentHandling by modifying the siri vocabulary.
Or the best way is to write to apple to add your corresponding domain in the siri's list of domains

iOS Siri kit integration - invoke the app and send the custom instruction

Here is my detailed description to achieve by using Siri.
I'm new in Siri kit integration. I have an app which has certain functionalities like send some information to server. The input is number. Below mentioned actions I want to do via Siri :
Instruct to Siri - Send MyAppname amount used
Siri asks - what is the amount.
Instruct to Siri - Submit
Go through Apple doc and some of other blogs but I didn't find any solution as per my requirements.
1.https://developer.apple.com/library/prerelease/content/documentation/Intents/Conceptual/SiriIntegrationGuide/SiriDomains.html#//apple_ref/doc/uid/TP40016875-CH9-SW2
2.http://jamesonquave.com/blog/adding-siri-to-ios-10-apps-in-swift-tutorial/
Do we have any custom Intent to perform this?
Is there any way to achieve this actions
Please let me your ideas.
Thanks in advance.
You can only use the intents from the available domains. If you want to send money or something similar to another user use the INSendPaymentIntent intent.

Can I use Siri kit to request information from my server?

I want to use Siri to show some data, it it was invoked.
For example if I was developing a news app.
Could I have it such that, if the user asks Siri 'what's the headlines from 'myapp''
It returns the top most headline according to my app
Actually You can't do thar with SiriKit (Intents.framework). The domains allowed are listed below (read more at Siri Programming Guide)...
VoIP calling
Messaging
Payments
Photo
Workouts
Ride booking
CarPlay (automotive vendors only)
Restaurant reservations (requires additional support from Apple)
Maybe what You are looking for is in the Speech Framework.

How to make Siri launch app on specific keyword?

When I say "Translate English to Spanish" Siri opens the app Google Translate.
How does Siri know to launch this app and is it possible to register your app for certain keywords with Siri?
Usually you can open an app telling Siri something like:
"Open [APP NAME]"
My guess
In your case I guess Siri is not interpreting the sentence. When you say Translate English to Spanish Siri does try to understand what action should take and since no action with an hight Matching Rate is found then Siri tries to open the App having a name equals to the first word of your sentence.
Test 1
In Italian language the app is named Traduttore. When I say Traduci dall'italiano all'inglese (Translate English to Spanish) Siri does NOT open the translator because Traduttore does not match Traduci.
Test 2
If I say: Musica dall'italiano all'inglese (Music italian to english) which is not a real command, Siri does open the Music app.
Siri and third parties apps
Right now the interaction between Siri and third parties apps is pretty limited, however maybe in the future Apple will provide the tools for a deeper interaction.
Maybe something like what is happening with HomeKit where Apple created an interface to make Siri and Home Devices to talk each other.
You should look at Siri's custom vocabulary.
At the moment it is limited to your App's name and Apple specified domains e.g. Workouts or Ride Booking
But if you're lucky enough that your application falls within those categories you can map some more app specific terminology.
For example, if you had a rock climbing application, Ascent, you could start with a voice command similar to "Hey Siri, start climb" rather than "Hey Siri, start workout with Ascent"
All of your localized vocab choices should be placed into their appropriate language-specific project directories (.lproj).

Resources