Apple ha rilasciato un'API per Siri in iOS 10. Si chiama SiriKit. Craig Federighi ha introdotto SiriKit al WWDC 2016. Salta a 55 minuti del Keynote 2016 per l'introduzione.
Per un annuncio così atteso un tempo sorprendentemente breve è dedicato a SiriKit. Per iOS 10 sono consentiti solo sei tipi di richieste (chiamati domini):
Richiesta di passaggio: "Procurami un passaggio a SFO tramite Uber". Richiedere un passaggio attraverso app che forniscono servizi di ride sharing e altri servizi simili ai taxi.
Messaggio: "Invia un messaggio a Joanna usando WhatsApp". Invia messaggi di testo attraverso app che supportano servizi di messaggistica.
Ricerca di foto: "Cerca su Instagram le foto della spiaggia scattate l'estate scorsa". Cercare foto e video di un particolare tipo di contenuto e riprodurre slideshow nell'app di loro scelta.
Pagamenti: "Invia 100 dollari a John per la cena di ieri sera usando Venmo". Inviare e richiedere pagamenti a e da altre persone, usando app che supportano i pagamenti personali.
Chiamata VoIP: "Chiama Peter su Skype". Avviare chiamate video e audio con app che supportano il voice over IP.
Allenamenti: "Inizia il mio allenamento quotidiano con Runkeeper". Inizia, metti in pausa e termina gli allenamenti usando la tua app preferita.
CarPlay Clima e radio: "Imposta il riscaldamento a 72 gradi". Specificamente progettato per le app delle case automobilistiche, questo permette agli utenti di impostare i controlli del clima e regolare la radio mentre sono nella loro auto.
Altri domini saranno aggiunti nelle versioni future. Craig Federighi ha parlato con John Gruber dopo la WWDC sulla scelta dei domini in un episodio live di The Talk Show. Ha detto che i domini sono stati scelti perché sono aree in cui Apple ha esperienza e familiarità.
SiriKit è programmato utilizzando "Intenti" che rappresentano una particolare azione che l'utente vuole che sia fatta. Ogni dominio ha diversi intenti associati ad esso. Ogni intento ha delle proprietà che sono opzionali o necessarie. L'intento "invia pagamento" ha proprietà per il beneficiario, l'importo della valuta, il metodo di pagamento e una nota. SiriKit vi dà la possibilità di chiarire le proprietà (per esempio se chiedete di "chiamare Samantha" ma ci sono due Samantha nella vostra rubrica). Ci possono essere diversi back-and-forth mentre l'estensione SiriKit cerca di ottenere tutte le informazioni di cui ha bisogno per soddisfare l'intento dell'utente. Quando l'estensione riesce o non riesce ad eseguire l'intento, invia una risposta a Siri in modo che Siri possa informare l'utente sul risultato.
È possibile creare un'interfaccia personalizzata che Siri visualizzerà utilizzando l'Intents UI, che invia a Siri un view controller creato dalla tua app.
Tutto funziona attraverso le estensioni (la stessa tecnologia dei widget di oggi) quindi l'app principale non viene mai invocata. Questo richiede al programmatore di separare il codice comune in un framework che sia l'app principale che l'estensione SiriKit possono usare (per esempio il codice che fa il lavoro di inviare un messaggio).
Apple ha una buona guida a SiriKit e al framework Intents.
La maggior parte delle persone che vedono la lista dei domini commentano che è un sacco molto misto senza logica nelle scelte. Perché nessuna lista di cose da fare, con cui Apple ha anche esperienza? Perché nessuna ricerca generale di app, che è facile da modellare? Perché niente mappe? La mia convinzione è che i domini scelti sono disponibili solo per le grandi aziende consolidate. Gli esempi che Craig Federighi dà sono Slack, WhatsApp, WeChat, Uber, Lyft, Didi, EyeEm, Shutterfly, Pinterest, MapMyRun, Runtastic, Runkeeper, SquareCash, AliPay e Vonage. Penso che questo sia così che Apple possa fare un rollout limitato e controllato, e appianare eventuali problemi prima di aprire i domini che gli sviluppatori più piccoli possono utilizzare.
Alcuni mesi prima che SiriKit uscisse, ho scritto un articolo su come pensavo che l'API Siri sarebbe stata lanciata, sostenendo che la ricerca sarebbe stata la prima fase, seguita da un insieme limitato di azioni chiave. Molto di ciò che ho scritto era sbagliato, attribuendo più magia a Siri su come avrebbe compreso i comandi. In realtà SiriKit è molto rigido sugli intenti che permette, ma permissivo sui modi in cui l'utente può esprimere quegli intenti.
Le applicazioni che usano SiriKit saranno disponibili al grande pubblico quando iOS 10 verrà lanciato nell'autunno 2016. Se avete un account da sviluppatore, potete provarlo ora scaricando UnicornChat dal sito della documentazione per sviluppatori Apple e saperne di più guardando la sessione 217 del WWDC 2016: Introduzione a SiriKit e Sessione 225: Estendere le tue app con SiriKit.