Monday 19 September 2016

SiriKit in iOS


   There are so many variation we found in ios 10 for app extension. I here describe one of them and it is Intent and IntentUI app extension
          
         Till now you cannot use SiriKit in ios application :(. But.......... 
         Now in ios 10 you can use sirikit in your ios application  :)
       


       
Siri is introduces from ios5. Now we can use it in our application.
 SiriKit is a new iOS developer framework that allows third-party apps from the App Store to              integrate their features with Siri.
 SiriKit is an app extension that allows any app to add a conversational UI.
 If your app  want to support sirikit then it has to support following domains:
  1. VoIP calling
  2. Messaging
  3. Payments
  4. Photo
  5. Workouts
  6. Ride booking
  7. CarPlay (automotive vendors only)
  8. Restaurant reservations (requires additional support from Apple)

Each domain represent one or more tasks. Each task can be represent an intent.each intent is represented by a custom class whose properties contain information related to the task. For example, intents in the Payments domain contain properties with the amount of money to transfer and the users involved in the transaction. When the user makes a request through Siri or Maps, the system fills an intent object with the details of the request and delivers that object to your app extension. You use the intent object to validate the request data and perform the associated task.

Intent and IntentUI 

Intent : Intent extension that receives information from the system and return the response.

IntentUI : Used to show custom user interface  to the user.

To understand Sirikit you have to understand app extension.

App extension works in this way :

If you open photos app and tap on share button you can see the instagram icon .Here Photos is a host application. when tap on share icon instagram extension open.
Here apple provided flow how all this work.





Now we focus back on sirikit:

How siri actual work we take an example of chat application.

If i say hey "send message to Prerak" then what happen.... Prerak name is not in database of siri. but its is in database of whatsapp. Now whatsapp developer share the contact details of Prerak to siri. You can share album name, workout name then siri check if there are some mission information. Siri recongnize that on message domain you have message to send. To solve this siri will ask what message you want to send to Prerak. After all this steps siri wraps all you data in intent. It then passes that intent object to your application for you to perform the logic on, and waits for a response to confirm the action with the user. If you are implementing Siri in your app, the name that users will use to summon your application, is the same as the name that is listed below your app on the home screen.

The programming part we will cover in the next blog...:)