Principy SiriKitu

Tento článek popisuje klíčové koncepty, které budou potřeba pro práci se SiriKitem v aplikaci Xamarin.iOS.

SiriKit pro iOS 10 umožňuje aplikaci Xamarin.iOS poskytovat služby, které jsou přístupné pro uživatele pomocí Siri a aplikace Mapy na zařízení s iOSem. Tato funkce je k dispozici v jednom nebo více rozšířeních aplikací pomocí nových architektur uživatelského rozhraní Intents a Intents.

SiriKit umožňuje aplikaci pro iOS poskytovat služby, které jsou přístupné pro uživatele pomocí Siri a aplikace Mapy na zařízení s iOSem pomocí rozšíření aplikací a nových architektur uživatelského rozhraní Intents a Intents.

Siri spolupracuje s konceptem Domén, skupinami znaných akcí pro související úkoly. Každá interakce, kterou má aplikace se Siri, musí spadat do jedné ze známých domén služeb následujícím způsobem:

  • Hlasové hovory nebo videohovory.
  • Rezervace jízdy.
  • Vedení cvičení.
  • Zasílání zpráv.
  • Hledání fotek.
  • Odesílání nebo příjem plateb.

Když uživatel odešle žádost o Siri zahrnující jednu ze služeb rozšíření aplikace, SiriKit odešle rozšíření objekt záměru, který popisuje žádost uživatele spolu se všemi podpůrnými daty. Rozšíření aplikace pak vygeneruje příslušný objekt Response pro daný záměr a podrobně popisuje, jak rozšíření dokáže zpracovat požadavek.

Záměry a rozšíření uživatelského rozhraní Záměry

Siri i aplikace Mapy komunikují se službami aplikace prostřednictvím dvou různých typů rozšíření aplikací:

  • Rozšíření Intents – Poskytuje Siri a Mapy s obsahem aplikace a provádí úlohy potřebné ke splnění všech podporovaných záměrů.
  • Intents UI Extension – Poskytuje vlastní uživatelské rozhraní, které se zobrazí pro obsah aplikace uvnitř Siri nebo Mapy.

Aplikace musí poskytnout rozšíření Intents pro podporu SiriKitu a zodpovídá za poskytování informací, které Může Siri a Mapy prezentovat uživateli a zpracovávat záměry.

Vytvoření rozšíření uživatelského rozhraní Intents je volitelné, protože Siri obvykle zpracovává veškerou interakci uživatelů a má standardní integrované uživatelské rozhraní pro prezentaci informací v každé z podporovaných domén. Díky poskytnutí rozšíření uživatelského rozhraní Intents může aplikace použít architekturu uživatelského rozhraní záměru k prezentaci bohatého uživatelského rozhraní s vlastním uživatelským rozhraním s brandingem aplikace a dalšími informacemi.

Siri a role aplikace Mapy

Mluvené žádosti uživatele jsou zpracovávané jazykem a sémanticky analyzované Siri, což tyto žádosti změní na záměry, které můžou zpracovat rozšíření záměrů.

Mapy používá rozšíření záměrů aplikace k zobrazení informací v rozhraní mapy v reakci na akce uživatele. Například žádost o restaurace v okolí nebo získání recenzí restaurace aplikace.

Siri i Mapy spravují všechny interakce uživatelů a zobrazují výsledky pomocí standardního systémového rozhraní. Role rozšíření aplikací je primárně určená k poskytování zobrazených dat. Volitelně může aplikace poskytnout rozšíření uživatelského rozhraní Intents a prezentovat vlastní uživatelské rozhraní pro vylepšení výchozího systémového rozhraní.

Interakce s Siri Via SiriKit

V této části se dozvíte, jak SiriKit umožňuje uživateli pracovat s aplikací pomocí Siri. Pro účely tohoto příkladu budeme používat falešnou aplikaci MonkeyChat:

The MonkeyChat icon

MonkeyChat uchovává svou vlastní kontaktní knihu přátel uživatele, každý přidružený k názvu obrazovky (například Bobo) a umožňuje uživateli posílat textové chaty každému příteli podle názvu obrazovky.

Existuje mnoho způsobů, jak může uživatel zahájit interakci s aplikací, protože různí lidé můžou stejný požadavek provést v mnoha různých formách.

Pokud například uživatel chtěl poslat zprávu příteli Bobovi, může mít následující konverzaci s Siri:

Uživatel: Ahoj Siri, poslat MonkeyChat zprávu.
Siri: Komu?
Uživatel: Bobo.
Siri: Co chcete říct Bobovi?
Uživatel: Pošlete prosím více banánů.

Stejnou žádost může provést jiná osoba s jinou konverzací:

Uživatel: Odeslat zprávu Bobo on MonkeyChat.
Siri: Co chcete říct Bobovi?
Uživatel: Pošlete prosím více banánů.

A jiný uživatel může udělat ještě kratší požadavek:

Uživatel: MonkeyChat Bobo prosím pošlete více banánů.
Siri: Ok, odeslání zprávy prosím poslat více banánů Bobo na Monkeychat.

Nebo dokonce stejným požadavkem v jiném jazyce:

Uživatel: MonkeyChat Bobo s'il vous plaît envoyer plus de bananes.
Siri: Oui, envoi message s'il vous plaît envoyer plus de bananes à Bobo sur Monkeychat.

Další uživatel může být ve své konverzaci velmi podrobný:

Uživatel: Ahoj Siri, můžete prosím udělat mi laskavost a spustit MonkeyChat aplikace poslat text se zprávou, prosím poslat více banánů.
Siri: Komu?
Uživatel: Můj nejlepší pal Bobo.

Kromě toho existuje mnoho způsobů, jak může Siri reagovat na žádost, některé na základě toho, jak byla žádost provedena:

  • Když podržíte tlačítko Domů – Siri poskytne více vizuálních odpovědí s omezenými slovními názory.
  • "Ahoj Siri" - Siri bude více slovní a poskytovat méně vizuálních odpovědí.

Siri je také vyladěná tak, aby splňovala potřeby uživatele v oblasti přístupnosti a na základě těchto potřeb interaguje a reaguje na ně.

Bez ohledu na to, jak se žádost provede nebo jak Siri na žádost odpoví, siri zpracuje konverzaci s uživatelem a aplikací (prostřednictvím svých rozšíření) poskytuje funkce.

Když uživatel provede ústní žádost o Siri, jedná se o postup, který Bude Siri postupovat:

The steps that Siri will follow

  1. Nejprve Siri vezme zvuk řeči uživatele a převede ho na text.
  2. V dalším kroku se text převede na záměr, strukturované znázornění žádosti uživatele.
  3. V závislosti na záměru provede Siri akci k provedení žádosti uživatele.
  4. Siri nakonec uživateli nabídne odpovědi (vizuální i slovní) na základě provedených akcí.

Aplikace se může účastnit konverzace uživatele se Siri třemi hlavními způsoby:

The three main ways that the app can take part in the users conversation with Siri

  1. Slovní zásoba – Takhle aplikace říká Siri slova, která potřebuje vědět, aby s ním pracovala.
  2. Logika aplikace – Jedná se o akce a odpovědi, které aplikace provede na základě daných záměrů.
  3. Uživatelské rozhraní – Toto je volitelné vlastní uživatelské rozhraní, ve které může aplikace poskytovat odpovědi.

Příklad

Vzhledem k výše uvedeným informacím se podívejte, jak by následující konverzace komunikovala s aplikací MonkeyChat:

Uživatel: Hey Siri, poslat zprávu Bobo on MonkeyChat.
Siri: Co chcete říct Bobovi?
Uživatel: Pošlete prosím více banánů.

První rolí, kterou aplikace přijímá v konverzaci, je pomoct Siri pochopit řeč uživatele:

Helping Siri understand the users speech

Siri ve své databázi nemá název Bobo, ale aplikace tyto informace sdílí se Siri prostřednictvím slovníku. Aplikace také pomáhá Siri rozpoznat, že Bobo je příjemce, protože ho určil jako kontakt pro Siri.

Siri ví, že k odeslání zprávy je potřeba víc, než jen příjemce, takže se pomocí rozšíření aplikace rychle zkontroluje, jestli zpráva vyžaduje obsah. Vzhledem k tomu, MonkeyChat, Siri odpoví uživateli s otázkou: "Co chcete říct Bobovi?"

Ve výše uvedeném příkladu uživatel odpověděl na "Pošlete prosím další banány", které Siri seskupí do strukturovaného záměru:

Siri will bundle the user's response into a structured Intent

Strukturovaný záměr bude obsahovat následující informace:

  • Doména: Zprávy
  • Záměr: sendMessage
  • Příjemce: Bobo
  • Obsah: Pošlete prosím další banány.

Každá doména má jako sadu znacích Akcí , které je možné provádět v rámci nich a na základě domény a akce, nula až mnoho parametrů může být zahrnuta do záměru odeslaného do aplikace.

Záměr se pak odešle do rozšíření aplikace ke zpracování. V důsledku zpracování záměru aplikace vygeneruje záměr, který se spojí se záměrem a zahrne parametry popisující, co aplikace s záměrem udělala.

Každý intentResponse bude obsahovat také kód odpovědi, který siri říká, jestli aplikace mohla žádost dokončit nebo ne. Některé domény mají velmi specifické kódy odpovědí na chyby, které je možné odeslat také.

Nakonec bude intentResponse obsahovat ( NSUserActivity například ty, které se používají k podpoře předání). Aplikace NSUserActivity se spustí, pokud odpověď vyžaduje, aby opustili prostředí Siri a zadali aplikaci, aby ji dokončila.

Siri automaticky vytvoří vhodné NSUserActivity pro spuštění aplikace a vyzvednutí tam, kde uživatel přestal v prostředí Siri. Aplikace ale může v případě potřeby poskytnout vlastní NSUserActivity informace s přizpůsobenými informacemi.

Jakmile aplikace zpracuje záměr a vrátí odpověď siri, zobrazí výsledky uživateli (jak slovně, tak vizuálně):

The results presented to the user both verbally and visually

Siri má několik integrovaných uživatelských rozhraní pro každou z domén dostupných pro aplikaci. Vzhledem k tomu, že MonkeyChat poskytuje volitelné rozšíření uživatelského rozhraní záměru, slouží k prezentaci výsledků konverzace uživateli v předchozím příkladu.

Životní cyklus záměru

Existují tři hlavní úlohy, které bude rozšíření aplikace muset provést při práci se záměry:

The Intent Lifecycle

  1. Aplikace musí vyřešit každý parametr události. V důsledku toho bude aplikace volat řešení několikrát (jednou pro každý parametr) a někdy několikrát na stejném parametru, dokud aplikace a uživatel souhlasí s tím, co se požaduje.
  2. Aplikace musí potvrdit , že dokáže zpracovat požadovaný záměr a informovat Siri o očekávaném výsledku.
  3. Aplikace musí nakonec zpracovat záměr a provést kroky k dosažení požadovaného výsledku.

Fáze řešení

Fáze Řešení pomáhá Siri porozumět hodnotám, které uživatel zadal, a zajistí, aby se při zpracování záměru aplikací skutečně stalo to, co se stane.

Tato fáze také poskytuje aplikaci příležitost ovlivnit chování Siri během konverzace s uživatelem. K tomu aplikace poskytne odpověď na řešení. Existuje několik předdefinovaných odpovědí na různé typy dat, kterým Siri rozumí.

Nejběžnější odpovědí na řešení z aplikace bude Úspěch, což znamená, že aplikace odpovídala konkrétní části dat z parametru (například uživatelského názvu obrazovky) na část informací, o které ví.

Někdy může docházet k tomu, že aplikace potřebuje potvrdit, že daná žádost odpovídá správné části informací, o které ví. V těchto případech odešle odpověď ConfirmationRequired , která uživateli položí odpověď ano nebo bez otázky, například "Poslat zprávu Bobo the Great?".

V jiných případech může aplikace vyžadovat, aby si uživatel vybral z krátkého seznamu možností. V tomto případě aplikace poskytne nejednoznačnost odpovědi se seznamem dvou až deseti možností, ze které si uživatel může vybrat, například:

Who do you want to message?

* Bobo the Great
* Bobo Jr.
* Little Bobo

Siri zpracuje uživatele, který provede výběr, buď verbálně, nebo interagováním s uživatelským rozhraním Siri a výsledek se odešle zpět do aplikace.

V jiných případech nemusí být pro aplikaci dostatek informací k vyřešení parametru nebo může být příliš mnoho shod, které by bylo možné vyřešit pomocí nejednoznačnosti (například 80 uživatelů se jménem Bobo). V tomto případě aplikace odešle odpověď NeedsMoreDetails a Siri vyzve uživatele, aby byl konkrétnější.

Pokud uživatel nezadal hodnotu, která je potřebná ke zpracování záměru, může odeslat odpověď NeedsValue , aby uživatel vyzve Siri k zadání hodnoty.

Pokud aplikace nepodporuje hodnotu, kterou uživatel zadal pro konkrétní parametr, může odeslat odpověď UnsupportedWithReason a poskytnout důvod, proč se hodnota nepodporuje. Siri pak uživatele vyzve k zadání zcela nové hodnoty a poskytne mu důvod, proč je potřeba.

Nakonec pomocí odpovědi NotRequired řekněte Siri, že aplikace nevyžaduje pro daný parametr hodnotu. Pokud ho uživatel přesto poskytne, siri ji jednoduše ignoruje.

Fáze Potvrzení

Fáze potvrzení má dva účely:

  • Pokud chcete Siri sdělit očekávaný výsledek zpracování záměru, aby Siri mohl uživateli sdělit, co se stane.
  • Poskytuje kontrolu příležitostí pro všechny požadované stavy, které může aplikace potřebovat k dokončení žádosti předložené uživatelem, jako je například dostatek peněz v bance k provedení požadované platby.

Aplikace poskytne odpověď záměru z kroku potvrzení, které by mělo být naplněno tolik informací, kolik má aplikace k dispozici, aby siri mohla efektivně komunikovat s uživatelem.

Na základě typu domény a akce může Siri vyzvat uživatele k potvrzení, například před odesláním platby nebo rezervace jízdy.

Fáze úchytu

Fáze zpracování je nejdůležitější součástí práce se záměrem, protože je to bod, ve kterém aplikace plní požadavek uživatele provedením úkolu, který byl požádán.

Stejně jako v potvrzované fázi musí aplikace poskytnout co nejvíce informací o výsledku, aby siri mohla s uživatelem souviset. Někdy se tyto informace zobrazí vizuálně nebo jindy, když Siri jednoduše řekne uživateli.

Může docházet k tomu, že aplikace může vyžadovat další čas ke zpracování dané žádosti, například zpoždění síťových hovorů nebo pokud živá osoba potřebuje žádost splnit (například dokončení a odeslání objednávky nebo řízení auta na místo uživatele). Když Siri čeká na odpověď zpět z aplikace, zobrazí se uživateli uživatelské rozhraní čekání s oznámením, že aplikace zpracovává požadavek.

V ideálním případě by aplikace měla poskytnout odpověď Siri do dvou až tří sekund. Pokud aplikace ví, že zpracování dané odpovědi bude trvat déle, musí do Siri odeslat kód odpovědi InProgress . Siri pak uživatele informuje, že aplikace zpracovává požadavek na pozadí a bude to i nadále dělat, i když opustí prostředí Siri.

Přidání SiriKitu do aplikace

S SiriKitem v iOSu 10 vytvořil Apple dva nové body rozšíření:

  • Rozšíření Intents – Poskytuje Siri obsah aplikace a provádí úlohy potřebné ke splnění všech podporovaných záměrů.
  • Intents UI Extension – Poskytuje vlastní uživatelské rozhraní, které se bude zobrazovat pro obsah aplikací uvnitř Siri.

K dispozici je také rozhraní API pro poskytování slov a frází Siri, které pomáhají při rozpoznávání ve formě:

  • Slovník aplikací – slova a fráze, které jsou společné pro každého uživatele aplikace.
  • Slovník uživatelů – slova a fráze, které jsou pro daného uživatele aplikace jedinečné.

Rozšíření Záměry

Rozšíření Intents je zodpovědné za zpracování hlavních interakcí mezi aplikací a Siri následujícím způsobem:

The Intents Extension

Rozšíření záměru může podporovat jeden nebo více záměrů. Záleží na vývojáři, aby se rozhodl, jak chce v aplikaci implementovat SiriKit. Vývojář může také přidat samostatné rozšíření záměru pro každý záměr, který je potřeba zpracovat. To znamená, že Apple požaduje, aby vývojář omezil počet rozšíření záměrů tak, aby Siri nemělo pro aplikaci otevřený více procesů, které vyžadují více paměti a času na zpracování.

Vývojář by měl také vědět, že rozšíření záměru bude spuštěné na pozadí, když je Siri aktivní. Siri tak může aktivně pokračovat v konverzaci s uživatelem a současně komunikovat s rozšířením a zpracovávat informace o žádosti.

Aspekty ochrany osobních údajů a zabezpečení

Společnost Apple přijala skvělá opatření k zajištění zabezpečení soukromých informací uživatele při práci se Siri, a proto existuje několik interakcí, které vyžadují, aby se uživatel přihlásil na zařízení s iOSem. Například při žádosti o jízdu nebo provedení platby.

Kromě toho existují konkrétní chování, které může aplikace chtít omezit na uživatele, který se k zařízení přihlašuje. V těchto situacích může aplikace požádat o chování Omezit při uzamčení . To se provádí prostřednictvím nastavení v Info.plist souboru.

Místní ověřovací rozhraní je k dispozici pro rozšíření záměru, aby aplikace uživatele požádala o další ověřovací informace, i když je zařízení již odemknuté.

Apple Pay je k dispozici pro rozšíření záměru, aby aplikace mohl dokončit transakci pomocí Apple Pay a integrovaný list Apple Pay se zobrazí nad rozhraním Siri.

Společnost Apple navíc chce zajistit, aby uživatelé při odesílání informací do aplikace třetí strany vědí, že uživatel při vytváření žádosti musí uvést konkrétní název aplikace (jak je uvedeno v zobrazovaném názvu sady prostředků aplikace).

Apple navrhl Siri tak, aby prováděla přirozené, fluidní konverzace s uživatelem, a proto se název sady prostředků aplikace dá použít v mnoha částech řeči, ať už se přirozeně hodí do žádosti uživatele.

Jednou zběžnýchchm výrazem je jedním z běžných věcí, které uživatelé budou dělat, je "sloveso" názvu aplikace. Například "MonkeyChat Bobo ty byly skvělé banány."

Rozšíření uživatelského rozhraní Intents

Rozšíření uživatelského rozhraní Intents představuje příležitost přenést uživatelské rozhraní a branding aplikace do prostředí Siri a zajistit uživatelům, aby se cítili připojeni k aplikaci. S tímto rozšířením může aplikace do přepisu přenést značku i vizuál a další informace.

Example Intents UI Extension output

Rozšíření uživatelského rozhraní Intents vždy vrátí a UIViewController aplikace může přidat cokoli, co se mu líbí uvnitř kontroleru zobrazení, například zobrazení dalších informací, které překračují počáteční odpověď. Uživatelské rozhraní Intents (Záměry) může také aktualizovat uživatele o stav dlouhotrvající události, například o kolik déle bude trvat, než se na místo připojí auto ke sdílení jízdy.

Rozšíření uživatelského rozhraní Záměry se vždy zobrazí spolu s jiným obsahem Siri, jako je ikona aplikace a název v horní části uživatelského rozhraní nebo na základě tlačítek Záměr (například Odeslat nebo Zrušit), se můžou zobrazit v dolní části.

Existuje několik instancí, kdy může aplikace nahradit informace, které se uživateli zobrazují ve výchozím nastavení, například zasílání zpráv nebo map, kde může aplikace nahradit výchozí prostředí šitou na míru dané aplikaci.

Důležité

I když je možné přidat interaktivní prvky, jako UIButtons je rozšíření uživatelského rozhraní UIViewControllerzáměru nebo UITextFields rozšíření záměru, jsou přísně zakázané, protože uživatelské rozhraní záměru není interaktivní a uživatel s nimi nebude moct pracovat.

Aplikace je zcela volitelná, aby poskytovala rozšíření uživatelského rozhraní záměru, protože Siri obsahuje výchozí sadu uživatelského rozhraní pro každý typ záměru. Kromě toho jsou rozhraní uživatelského rozhraní Intents k dispozici pouze pro určité záměry, které Apple považuje za užitečné pro uživatele.

Přidání slovníku SiriKit

Poslední část implementace SiriKitu spočívá v aplikaci poskytnutím požadovaného slovníku. Mnoho aplikací má jedinečné způsoby popisu informací uživateli a jedinečných způsobů, jak uživatel poskytne informace aplikaci.

Siri proto vyžaduje, aby aplikace pomohla porozumět slovům a frázím jedinečným pro aplikaci. Některé z těchto frází budou součástí aplikace, aby je každý uživatel znal a porozuměl jim. Jiní uživatelé ale budou pro daného uživatele aplikace jedineční.

Slovník specifický pro aplikaci

Slovník specifický pro aplikaci definuje konkrétní slova a fráze, které budou známy všem uživatelům aplikace, jako jsou typy vozidel nebo názvy cvičení. Vzhledem k tomu, že jsou součástí aplikace, jsou definovány v souboru jako AppIntentVocabulary.plist součást hlavní sady aplikací. Kromě toho by se tato slova a fráze měly lokalizovat.

Soubor slovníku AppIntentVocabulary.plist má několik částí:

  • Příklady použití aplikací – Ty poskytují sadu běžných případů použití pro požadavky, které uživatel může vytvořit z aplikace. Příklad: "Zahájení cvičení s MonkeyFit."
  • Parametry – Poskytují sadu nestandardních typů parametrů specifických pro aplikaci. Například názvy cvičení pro aplikaci MonkeyFit. Skládá se z těchto:
    • Fráze – Umožňuje aplikaci definovat jedinečné termíny pro aplikaci. Například: typ cvičení "Bananarific" pro aplikaci MonkeyFit.
    • Výslovnost – dává Siri rady výslovnosti jako jednoduchý fonetický pravopis pro danou frázi. Například "ba nana ri fic".
    • Příklad – poskytuje příklad použití dané fráze v aplikaci. Například "Start a Bananarific in MonkeyFit".

Další informace najdete v referenčních informacích k formátu souboru slovníku aplikace společnosti Apple.

Slovník specifický pro uživatele

Slovník specifický pro uživatele bude poskytovat slova nebo fráze, které jsou jedinečné pro jednotlivé uživatele aplikace. Ty budou poskytovány za běhu z hlavní aplikace (nikoli rozšíření aplikace) jako seřazená sada termínů seřazených v nejvýznamnější prioritě využití pro uživatele s nejdůležitějšími termíny na začátku seznamu.

Podívejte se na příklad výše uvedené aplikace MonkeyChat. MonkeyChat uchovává seznam všech kontaktů uživatele, že bude odesílat Siri prostřednictvím slovníku specifického pro uživatele. Zároveň uchovává seznam 10 posledních kontaktů, které uživatel zadal, a obsahuje sadu oblíbených kontaktů pro každého uživatele. V tomto příkladu by oblíbené kontakty měly být na začátku slovníku specifického pro uživatele a potom poslední kontakty, které pak ostatní kontakty uživatele.

Slovník specifický pro uživatele podporuje následující typy informací:

  • Jména kontaktů.
  • Názvy cvičení.
  • Názvy fotoalbum.
  • Klíčová slova fotografie.

Pokud aplikace spoléhá na adresář pro iOS, aplikace nebude muset provést žádnou akci, protože tyto informace už jsou pro Siri dostupné. Aplikace musí zadat jenom jména kontaktů, pokud má aplikace vlastní jedinečnou databázi kontaktů.

Při navrhování slovníku zadejte pouze nezbytné hodnoty, které uživatelé znají a zajímají. Vyhněte se poskytování informací, jako jsou telefonní čísla nebo e-mailové adresy.

Aplikace také musí rychle aktualizovat Siri, když se změní slovník specifický pro uživatele. Uživatelé jsou zvyklí na vyžádání informací z Siri okamžitě, když se přidala do zařízení s iOSem. Pokud například uživatel přidá do aplikace nový kontakt, pošlete tyto informace Siri hned, jak ho uživatel uloží.

Důležitější je, že aplikace musí rychle odstranit informace ze slovníku Siri, protože uživatel se mohl stát naštvaným, pokud odstranil část informací, ale Siri ji stále rozpoznávala hodiny nebo dny později.

Důležité

Pokud se uživatel rozhodne aplikaci resetovat nebo když se odhlásí, měla by aplikace z Siri odebrat veškerou slovník specifickou pro uživatele.

Oprávnění SiriKitu

Poslední část SiriKitu je zaměřená na oprávnění. Stejně jako použití jiných funkcí iOSu (například Fotky, Kamera nebo Kontakty) musí uživatelé udělit explicitní oprávnění pro komunikaci aplikace se Sirim.

Aplikace může poskytnout řetězec definující informace, které poskytne Siri, a poskytnout důvod, proč by měl uživatel udělit tento přístup.

Apple navrhuje, aby aplikace požádala uživatele o oprávnění používat Siri při prvním otevření aplikace po upgradu na iOS 10. To znamená, že uživatelé vědí o integraci Siri a před provedením první žádosti můžou předem schválené využití.

SiriKit a Mapy

SiriKit je nedílnou součástí iOSu a využívá větší architekturu Intents přidanou do iOS 10. Architektura Intents byla navržena tak, aby sdílela společné a sdílené akce a záměry s jinými částmi systému.

Architektura Intents přesahuje integraci Siri a poskytuje další funkce, jako je integrace kontaktů, kde se aplikace může stát výchozí telefonní aplikací nebo aplikací pro zasílání zpráv pro konkrétní kontakty. Záměry také poskytují hlubokou integraci s CallKitem, aby uživatelům poskytovaly co nejlepší prostředí VOIP.

Aplikace Mapy v iOSu 10 přidala funkce, jako je například sdílení jízdy, kde si uživatel může rezervovat jízdu přímo v uživatelském rozhraní Mapy. SiriKit poskytuje společný bod rozšíření s Mapy, takže sdílení jízdy (a další) záměry je možné sdílet mezi Siri a Mapy.

To znamená, že pokud aplikace přijala rozšíření SiriKit, získáte také bezplatnou integraci Mapy.

Navrhování skvělého prostředí Siri

Návrh skvělého uživatelského prostředí při integraci aplikace do Siri se liší od návrhu skvělého uživatelského rozhraní aplikace. Na rozdíl od normálních situací, kdy uživatel komunikuje s aplikací přímo na obrazovce, při použití Siri existuje mnoho případů, kdy se vůbec nezobrazuje žádné vizuální rozhraní. Například když uživatel zahájil konverzaci s "Hey Siri".

Jak Siri pomáhá vývojářům

Při navrhování interakcí aplikace se Siri bude aplikace vytvářet konverzační rozhraní, což znamená, že kontext je odvozený z konverzace, kterou Siri má s uživatelem jménem aplikace.

Pokud uživatel nemá vizuální odkaz, musí mít přehled o informacích, které jsou prezentovány v hlavě. Siri proto zobrazí úplné minimální informace potřebné k dosažení úkolu, kterého chce uživatel dosáhnout.

Konverzační rozhraní je tvarované otázkami a odpověďmi od uživatele i Siri během konverzace. Proto je důležité myslet na to, jak Siri klade otázky a reaguje při návrhu tohoto rozhraní.

Podívejte se na následující příklad uživatele, který vytváří zprávu, může Siri odpovědět na otázku " Připraveno k odeslání?". Uživatel může odpovědět mnoha různými způsoby, jako je například "Odeslat", "Zrušit" nebo dokonce něco zcela nesouvisejícího s touto otázkou. Bez ohledu na to, jak se konverzace přehraje, Siri ji zpracuje pro aplikaci a odešle jí jenom relevantní informace, jakmile bude dostupná.

Existuje několik různých způsobů, jak může uživatel zahájit konverzaci se Siri:

  • Když zařízení vyzvednete, stisknete tlačítko Domů. V této situaci Siri představí více vizuálních rozhraní a méně slovních odpovědí.
  • Tím, že řeknete "Ahoj Siri" a zahájíte konverzaci hands free. V této situaci siri bude méně vizuální a více slovní.
  • Použití funkcí přístupnosti, jako je bluetooth s sluchadlem, kde bude uživatelské rozhraní přizpůsobené pro uživatele se zvláštními potřebami.
  • Použití car Play, kde uživatel potřebuje udržet pozornost zaměřenou na řízení tím, že udržuje rušivé prvky na minimum.

Jak vývojář pomáhá Siri

Při integraci aplikace se Siri musí vývojář tuto integraci často testovat a zajistit, že vytváří mnoho různých požadavků tím, že požádá o stejnou část informací nebo úlohu co nejvíce různými způsoby.

Vzhledem k tomu, že si nikdo nemyslí stejně, je důležité, aby vývojář získal co nejvíce různých beta testerů, aby pomohl vyladit integraci Siri. Uživatelé můžou žádat o informace nebo vytvářet žádosti způsobem, ze kterého vývojář nikdy nevyužije, a toto vyladění může pomoct zajistit, aby nejširší skupina uživatelů měla skvělé zkušenosti s používáním aplikace s Siri.

Testujte v různých situacích a prostředích. Zahajte konverzace pomocí Siri všemi způsoby, jak zajistit, aby tyto konverzace zůstaly plynulé a přirozené. Otestujte na místech, kde uživatel bude aplikaci používat více, třeba v přeplněné posilovně.

Ujistěte se, že aplikace poskytuje všechny informace, které Siri potřebuje ke správnému vyjádření požadavku a výsledku uživateli. To platí zejména při použití Siri v situaci hands free.

Pokyny pro návrh Siri

Vždy si pamatujte, že Siri má konverzaci s uživatelem jménem aplikace. Vývojář si chce ověřit, že tato konverzace zůstává co nejtužnější a nejrozumnější.

Stejně jako při jakékoli důležité konverzaci musí vývojář zajistit následující:

  • Aplikace je připravená na konverzaci.
  • Aplikace naslouchá přesně tomu, čeho se uživatel pokouší dosáhnout.
  • Aplikace se ve vhodných časech zeptá na příslušné otázky.
  • Aplikace na žádost odpoví informacemi, které uživatel hledá.

Příprava na konverzaci

První věc, kterou si pamatujte, je, že uživatelé aplikace nebudou přesně jako vývojáři. Při práci s aplikací můžou pocházet z různých prostředí, mluví různými jazyky nebo mají zvláštní potřeby.

Kromě toho, protože vývojář navrhl a vytvořil aplikaci, mají hluboké, důvěrné znalosti aplikace i její vnitřní fungování a funkce, které typický uživatel nebude mít. Vývojář proto může požádat Siri jinak než o normálního uživatele.

Proto je důležité, aby s aplikací interagovali co nejvíce různých lidí prostřednictvím Siri. Uživatelé můžou prostřednictvím Siri vyhovět žádostem o aplikaci, o které vývojář nikdy nemyslel nebo jak vývojář nemyslel.

Ujistěte se, že je aplikace dobrým naslouchacím procesem.

Vývojář musí zajistit, aby byla aplikace dobrým naslouchacím procesem a získala specifika konverzace, která splňuje očekávání uživatele. Je ale také možné, že nemusí poskytnout všechny informace, které aplikace vyžaduje k dosažení požadovaného úkolu.

Existuje několik způsobů, jak by aplikace mohla tuto situaci zvládnout:

  • Vyberte vhodné výchozí nastavení pro chybějící hodnotu – například aplikace pro sdílení jízdy může ve výchozím nastavení nastavit aktuální umístění uživatele, pokud nezadali, odkud se má vyzvednout.
  • Proveďte informovaný odhad – pomocí konkrétních informací, které aplikace shromáždila pro uživatele, může být aplikace schopná uhodnout chybějící informace, jako je například vyplnění chybějícího mobilního čísla z kontaktních informací uživatele. Je však třeba věnovat pozornost tomu, abyste se vyhnuli špatným překvapením, jako je například výběr nejdražší možnosti atd.
  • Výzva k zadání dalších informací – Aplikace může uživatele vyzvat siri k zadání chybějící hodnoty. Tady je ale klíčové, aby konverzace byly jednoduché a až k bodu. Uživatelé se rychle frustrují, pokud musí odpovědět na několik otázek, aby dosáhli své žádosti.
  • Zpracování M gracefully – Uživatel může poskytnout hodnotu, kterou aplikace neočekávalo nebo že ji nemůže zpracovat v daném kontextu. Ujistěte se, že aplikace tuto situaci souvisí s uživatelem způsobem, který mu usnadní a usnadňuje jejich opravu.

Když se aplikace zobrazí s jednou hodnotou, která je otazník, preferovaným způsobem, jak to vyřešit, je požádat Siri uživatele o potvrzení. Například "Myslíte Bobo skvělý?", na který můžou odpovědět jednoduchým ano nebo bez odpovědi.

Pokud je situace, kdy může být několik možných voleb pro jednu hodnotu správné, je nejednoznačnost upřednostňovanou metodou zpracování. V takovém případě může Siri uživatele vyzvat až s deseti možnými možnostmi, ze které si můžete vybrat. Příklad:

Who do you want to send the message to?

* Bobo the Great!
* Bobo Jr.
* Little Bobo

Pokud je stále dotaz, požádejte uživatele, aby uživateli poskytl zcela novou, konkrétnější odpověď na danou hodnotu.

Potvrzení konečné žádosti

Než aplikace skutečně provede úlohu, aby splnila požadavek uživatele, Siri zkontroluje rozšíření aplikace, aby se ujistila, že je všechno na místě. Má například uživatel na svém účtu dostatek peněz, aby mohl provést požadovanou platbu?

Kromě toho musí aplikace zajistit, aby siri poskytovala všechny informace, které je možné, aby ji mohl prezentovat uživateli a potvrdit, že úkol, který se má provést, splňuje jejich očekávání.

Jakmile uživatel žádost potvrdí a aplikace ji provede, musí znovu zajistit, aby poskytla všechny výsledky zpět do Siri, aby se mohly spojit s uživatelem.

Reakce na žádost

Siri má několik integrovaných uživatelských rozhraní pro každou z domén a akcí, o nichž ví. Tam, kde je to vhodné, ale může aplikace poskytnout vlastní rozšíření uživatelského rozhraní záměru pro obohacení uživatelského rozhraní tím, že předá branding a uživatelské rozhraní aplikace nebo více informací, než bylo v požadavku přítomno.

To znamená, že omezení by se mělo použít při navrhování vlastních rozhraní pro Siri. Uživatel obvykle chce co nejrychleji provést konkrétní úkol a nechce být přetížen zbytečnými informacemi.

Je také potřeba dbát na to, aby vlastní uživatelské rozhraní vypadalo a správně reagovalo ve všech různých zařízeních s iOSem a orientacích, které uživatel může mít nebo používá.

V případě potřeby pomocí rozhraní API SiriKit skryjte všechny redundantní informace, které už existují ve výchozím uživatelském rozhraní Siri. Přesto se ujistěte, že aplikace stále poskytuje informace Siri, aby ji mohl prezentovat ve slovních situacích hands free.

V situacích, kdy Siri spustí aplikaci, aby splnila žádost uživatele, například prezentaci fotek, o které uživatel požádal. V těchto situacích uživatele nepřekvapujte. Zobrazení očekávaných informací bez vyžadování průběžných kroků nebo další interakce. Nikdy nezobrazovat informace nebo provádět úkol, který uživatel neočekává.

Leštění návrhu

Existuje několik kroků, které Apple navrhuje vyladit návrh konverzačních rozhraní. Za prvé, je poskytnutí jasné, stručné slovní zásoby a příklady případů siri.

Jedním ze způsobů, jak uživatel aplikaci zjistí, je zahájením konverzace se Siri a dotazem", "Co můžete dělat?" Siri zobrazí několik různých věcí, které může udělat, včetně aplikace vývojáře a ukázkových případů použití hrdiny, které poskytla prostřednictvím souboru plist .

Jak napsat dobré příklady případů použití:

  • Ujistěte se, že příklady obsahují název aplikace.
  • Ponechte příklad krátký a k bodu.
  • Zadejte několik příkladů pro každý záměr, který aplikace podporuje.
  • Upřednostněte záměry i příklady v nich na základě nejběžnějších případů použití aplikace.
  • Ujistěte se, že aplikace poskytuje lokalizované příklady.
  • Ujistěte se, že každý příklad v aplikaci funguje podle očekávání.
  • Vyhněte se adresování Siri v příkladech, takže nezahrnujte text jako "Hey Siri..." (Ahoj Siri...
  • Vyhněte se zbytečným příjemnému prostředí, jako je "prosím" nebo "děkuji".

Prozkoumejte a experimentujte s tím, jak může aplikace tvarovat konverzaci, kterou Siri má s uživatelem jménem. Nezapomeňte v průběhu procesu mluvit s typickými uživateli, protože jejich interakce s aplikací a očekávání se můžou v průběhu času měnit.

Vždy nezapomeňte aplikaci otestovat v různých situacích a všechny různé metody volání konverzace s Siri. Testujte v reálných umístěních, ve kterých může uživatel aplikaci používat, mimo kancelář a stůl.

Snažte se, aby konverzace s Siri (jménem aplikace) byly tekutiny, přirozené a "cítit se správně".

Shrnutí

Tento článek se zabýval klíčovými koncepty potřebnými k používání SiriKitu a ukázal, že může komunikovat s aplikacemi Xamarin.iOS a poskytovat služby, které jsou přístupné pro uživatele pomocí Siri a aplikace Mapy na zařízení s iOSem.