Viele Artikel, einschließlich unserer Website, haben sich darauf konzentriert, Leser dabei zu unterstützen, erstaunliche iOS-Apps zu erstellen, indem sie eine großartige Benutzererfahrung für Handys (UX) entwerfen..
Mit dem Aufkommen der Apple Watch vor einigen Jahren, neben CarKit und dem HomePod in diesem Jahr, werden jedoch immer mehr Apps und IoT-Appliances angezeigt, die anstelle von visuellen Schnittstellen Sprachbefehle verwenden. Die Verbreitung von IoT-Geräten wie dem HomePod und anderen Sprachassistenten sowie die Explosion bei Apps für Fremdanwendungen mit Sprachassistenten haben zu einer völlig neuen Kategorie von User Experience-Design-Methoden geführt, die sich auf Voice User Experience (VUX) konzentrieren ) oder Conversational Design UX.
Dies hat dazu geführt, dass sich Apple vor einigen Jahren auf die Entwicklung von SiriKit konzentrierte und Drittentwicklern die Möglichkeit gab, ihre Apps so zu erweitern, dass Benutzer sich natürlicher mit ihren Apps unterhalten können. Da SiriKit mehr für Entwickler von Drittanbietern verfügbar ist, sehen wir, dass immer mehr Apps Teil von SiriKit werden, wie die bekannten Messaging-Apps WhatsApp und Skype sowie Zahlungs-Apps wie Venmo und Apple Pay.
Das Ziel von SiriKit ist es, die Grenzen zwischen Apps durch eine konsistente Benutzererfahrung im Umgang mit Konversationen zu verwischen, die es Apps ermöglicht, intuitiv, funktional und durch vordefinierte Absichten und Domänen zu interagieren. Dieses Lernprogramm hilft Ihnen dabei, Best Practices anzuwenden, um intuitive Benutzererlebnisse für Konversationsdesign ohne visuelle Hinweise zu erstellen.
In diesem Lernprogramm erfahren Sie, wie Sie SiriKit-fähige Apps mithilfe von Best Practices in VUX hörbar einbinden können. Sie werden lernen über:
Ich gehe davon aus, dass Sie bereits mit SiriKit gearbeitet haben und Erfahrung mit Swift und Xcode haben.
Die Erstellung ansprechender Apps erfordert ein durchdachtes Design für die Benutzererfahrung, kurz UX-Design. Ein gemeinsames Grundprinzip für alle mobilen Plattformen ist, dass das Design auf einer visuellen Benutzeroberfläche basiert. Wenn Sie jedoch für Plattformen entwerfen, auf die Benutzer sich per Sprache einlassen, haben Sie nicht den Vorteil, dass der Benutzer durch visuelle Hinweise unterstützt wird. Dies bringt völlig neue gestalterische Herausforderungen mit sich.
Das Fehlen einer grafischen Benutzeroberfläche zwingt die Benutzer zu verstehen, wie sie mit ihren Geräten per Sprache kommunizieren können, und bestimmt, was sie sagen können, wenn sie zwischen verschiedenen Zuständen navigieren, um ihre Ziele zu erreichen. Die Interaction Design Foundation beschreibt die Situation in konservatorischer Benutzererfahrung:
„In Sprachbenutzeroberflächen können Sie keine visuellen Möglichkeiten schaffen. Die Benutzer haben keine klaren Angaben dazu, was die Benutzeroberfläche tun kann oder welche Optionen sie haben. “
Als Designer müssen Sie verstehen, wie Menschen auf natürliche Weise mit Technologien kommunizieren - den Grundlagen der Sprachinteraktion. Laut neuesten Studien von Stanford nehmen Benutzer im Allgemeinen Sprachschnittstellen auf die gleiche Art und Weise wahr, wie sie mit anderen Menschen kommunizieren, unabhängig davon, ob sie sich bewusst sind, dass sie mit einem Gerät sprechen.
Die Schwierigkeit, die unterschiedlichen Sprechweisen der Menschen vorhersehen zu können, hat in den letzten Jahren zu Fortschritten beim maschinellen Lernen geführt. Die Verarbeitung natürlicher Sprache (NLP) ermöglicht es Plattformen, Menschen auf natürlichere Weise zu verstehen, indem sie Absichten und Assoziationen erkennen Domänen von Befehlen. Eine prominente Plattform ist Apples Siri und sein Framework für Drittentwickler, SiriKit.
Die meisten würden Siri als primär auf nicht-visuelle Sprachunterstützung verstehen, aber durch die Integration in das Ökosystem von Apple können Benutzer Sprachinteraktionen über ihr Betriebssystem auslösen, sei es iOS, watchOS, CarPlay oder das HomePod.
Die ersten drei Plattformen bieten neben akustischem Feedback eine eingeschränkte visuelle Anleitung, während der HomePod nur akustisches Feedback liefert. Bei Verwendung von iOS oder CarPlay während des Fahrens liefert die Plattform sogar noch weniger visuelles Feedback und mehr Audio-Feedback, sodass die Anzahl der Informationen, die ein Benutzer erhält, dynamisch ist. Als App-Designer müssen Sie auf beide Arten von Interaktionen eingehen.
Dies bedeutet, dass SiriKit basierend auf dem Status des Geräts und des Benutzers kalibriert, wie viel es visuell oder verbal anbietet. Solange Sie sich an die Best Practices halten, wird SiriKit alle diese Vorgänge für Sie sorgfältig erledigen.
Das Framework behandelt Benutzeranforderungen über zwei Hauptprozesse: Absichten und Domänenbehandlung.
Intents werden über das Intels-Framework zur Sprachabwicklung, die Intents App Extension, verwaltet, die Benutzeranfragen in app-spezifische Aktionen umwandelt, z. B. das Buchen einer Car-Share-Fahrt oder das Senden von Geld an jemanden.
Die Intents UI-App-Erweiterung ermöglicht es Ihnen dagegen, eine minimale visuelle Inhaltsbestätigung bereitzustellen, sobald ein Benutzer eine Anfrage gestellt hat und Ihre App vor dem Abschluss der Anfrage bestätigen möchte.
SiriKit klassifiziert Absichten (Benutzeranforderungen) in bestimmte Typen, die als Domänen bezeichnet werden. Ab iOS 11 können Entwickler von Drittanbietern die folgenden Domänen und Interaktionen nutzen:
Es mag zunächst scheinen, dass die Auswahl ziemlich begrenzt ist, aber Apples Recht ist, dass dies hilft, das Vertrauen und die Erwartungen der Benutzer sorgfältig zu verwalten, während die Benutzer allmählich lernen und ihr Wissen über die Interaktion mit Siri erwerben können. Dies ermöglicht es Apple und der Community außerdem, im Laufe der Zeit zu skalieren, während die Grenzen zwischen Apps, die sich hinter der Sprachunterstützungsoberfläche befinden, verwischt werden.
iOS-Entwickler, die SiriKit nutzen, profitieren auch von dem Kontextwissen, das die Plattform bietet. Dies beinhaltet das Gruppieren von Sätzen nach Konversationskontext, je nach den Absichten und Bereichen, die das maschinelle Lernen bietet. Das heißt, Siri versucht herauszufinden, ob Ihr nächster Befehl Teil des gleichen oder eines neuen Konversationskontextes ist. Wenn Sie "Bitte buchen Sie eine Uberfahrt" sagen, würde Siri wissen, dass Sie eine Car-Share-Fahrt in der Carshare-Domäne buchen möchten. Die App würde jedoch mehr Informationen benötigen, z. B. welche Art von Fahrt. Wenn Ihr nächster Befehl "Uber Pool" war, würde er wissen, dass sich der zweite Befehl im selben Kontext befindet.
Durch die Nutzung von SiriKit können Sie von der Plattform von Apple profitieren, die einen Großteil des schweren Hubens orchestriert, so dass Sie sich auf das konzentrieren können, was wichtig ist und Wert schafft. Trotzdem müssen Sie immer noch ein guter Siri-Bürger sein. Als Nächstes lernen Sie verschiedene Best Practices kennen, die Sie anwenden können, um mit nicht visueller Kommunikation und Sprachinteraktion eine förderliche Benutzererfahrung zu schaffen.
Weitere Informationen zum Entwickeln mit SiriKit finden Sie unter Erstellen von SiriKit-Erweiterungen in iOS 10.
Werfen wir einen Blick auf einige Best Practices, die Sie sofort auf Ihre SiriKit-Erweiterung anwenden können, um sicherzustellen, dass Ihre App eine angenehme, logische und intuitive Sprachschnittstelle für Ihre Benutzer bietet.
Der erste Leitsatz besteht darin, Ihre Benutzer kurz und knapp darüber zu informieren, welche Optionen sie während eines bestimmten Interaktionszustands haben.
Während grafische Benutzererlebnisse den Benutzern mühelos einen visuellen Kontext wiedergeben können, beispielsweise über modale Dialogfelder, gibt es bei sprachgestützten Apps nicht denselben Luxus. Die Benutzer haben unterschiedliche Erwartungen an die Verarbeitung natürlicher Sprache. Einige werden sehr konservativ sein und die Kraft von Siri möglicherweise nicht erkennen, und andere beginnen mit der Frage nach einem Komplex, das für Siri nicht sinnvoll ist.
Sie müssen Ihre Benutzererfahrung so gestalten, dass Benutzer Informationen in Form von Optionen zu einem bestimmten Zeitpunkt erhalten.
Welche Optionen Ihre App zurückgibt, sollte kontextbezogen relevant sein. In der folgenden Abbildung hat der Ansprechpartner mehrere Telefonnummern. Wenn der Benutzer nicht explizit angegeben hat, welche er verwenden soll, wird der Benutzer aufgefordert, dies zu tun.
SiriKit verwendet die Kontaktauflösung, auf die Sie über das SDK zugreifen können, um die App zu bestimmen, welche Kontakttelefonnummer (oder sogar welcher Kontaktname, wenn mehrere Kontakteinträge denselben Namen haben) der Endbenutzer beabsichtigt. Laut Apple-Dokumentation:
Während der Auflösung werden Sie von SiriKit aufgefordert, jeden Parameter einzeln zu überprüfen, indem Sie die Auflösungsmethoden Ihres Handlerobjekts aufrufen. In jeder Methode überprüfen Sie die bereitgestellten Daten und erstellen ein Auflösungsergebnisobjekt, das Ihren Erfolg oder Fehler beim Auflösen des Parameters angibt. SiriKit verwendet Ihr Auflösungsergebnisobjekt, um die weitere Vorgehensweise festzulegen. Wenn das Ergebnis der Auflösung zum Beispiel den Benutzer auffordert, zwischen zwei oder mehr Auswahlmöglichkeiten zu unterscheiden, fordert SiriKit den Benutzer dazu auf, eine dieser Optionen auszuwählen.
Weitere Informationen zum Auflösen von Benutzerabsichten finden Sie in der Dokumentation von Apple über Auflösen und Abwicklungsabsichten.
Es ist wichtig, dass Sie in der Benutzererfahrung Ihrer Benutzer mit Konversation auf Befehle schnell reagieren, da Benutzer eine schnelle Antwort erwarten. Dies bedeutet, dass Sie Ihren Interaktionsworkflow so gestalten sollten, dass er die schnellsten Aktionen zur Verfügung stellt, um den Funktionsabschluss ohne unnötige Eingabeaufforderungen oder Bildschirme zu erreichen.
Apple fordert Sie auf, den Benutzer ohne Zwischenanzeigen oder Nachrichten direkt zum Inhalt zu bringen. Wenn ein Benutzer authentifiziert werden muss, rufen Sie den Benutzer direkt zum Authentifizierungsbildschirm auf und stellen Sie sicher, dass der Kontext beibehalten wird, damit der Benutzer seine Aktionen auf logische Weise fortsetzen kann. Die Human Interface Guidelines von Apple weisen Sie auf Folgendes hin:
Reagieren Sie schnell und minimieren Sie die Interaktion. Die Menschen nutzen Siri der Einfachheit halber und erwarten eine schnelle Antwort. Präsentieren Sie effiziente, fokussierte Entscheidungen, die die Möglichkeit zusätzlicher Aufforderungen reduzieren.
In den Amazon Echo-Designrichtlinien wird empfohlen, dass Sie nicht mehr als drei verschiedene Optionen in einer einzelnen Interaktion auflisten, sondern den Benutzern zuerst die beliebtesten Optionen zur Verfügung stellen. Wenn Sie dann mehr als drei Optionen angeben müssen, geben Sie am Ende eine Option an, um die restlichen Optionen durchzugehen.
Priorisieren und ordnen Sie die Optionen, nach denen die Benutzer am wahrscheinlichsten Gebrauch machen würden, und ermöglichen Sie Benutzern, einige der weniger verbreiteten Optionen explizit aufzurufen, ohne sie auszulesen. Sie können die markanten Optionen auch dynamisch an die historischen Präferenzen Ihrer Benutzer anpassen.
Vor allem zeigen Sie keine Vorurteile oder Täuschungen! Das bedeutet, dass Sie die Informationen nicht falsch darstellen oder die Aufforderungen zur Priorisierung der teuersten Optionen abwägen möchten. Beispielsweise werden zuerst die teuersten Optionen für die Weitergabe von Fahrgemeinschaften aufgelistet. Dies ist ein sicherer Weg für Ihre Kunden, um das Vertrauen in Ihre App zu verlieren.
Es ist schwierig für Benutzer, den Ort ohne visuelle Hinweise zu ermitteln, und selbst wenn SiriKit den aktuellen Kontext nachverfolgen kann, neigen Benutzer dazu, mit SiriKit zu interagieren, während sie etwas anderes tun, wie Fahren oder Joggen.
Daher müssen Sie immer eine informative Antwort auf einen Befehl geben, die ihn nicht nur bestätigt, sondern den Benutzer an den Kontext erinnert. Wenn der Benutzer beispielsweise bittet, eine Mitfahrgelegenheit zu buchen, können Sie einen Kontext für Ihre Antwort angeben, indem Sie etwa Folgendes sagen: „Sie haben heute um 17.00 Uhr eine Fahrt mit AcmeCar gebucht“, anstatt nur mit „Buchung“ zu antworten Bestätigt".
Geben Sie also in Ihrer Antwort ausreichend kontextbezogene Informationen an, damit der Benutzer verstehen kann, was bestätigt wurde, ohne einen Blick auf sein Telefon werfen zu müssen, um die Absichten des Benutzers zu bestätigen.
Da Apples Ökosystem von Siri-fähigen Geräten über iOS und watchOS hinaus auf Geräte ohne visuelle Schnittstelle erweitert wird, ist es für Ihre Antworten und Interaktionen nicht erforderlich, dass die Benutzer auf den Bildschirm zurückblicken oder ihre Geräte berühren, um etwas zu bestätigen. Die verbalen Antworten sollten kontextabhängig und prägnant genug sein (einschließlich der Bereitstellung einer begrenzten Teilmenge von Optionen), so dass die Benutzer genau die richtige Menge an Informationen erhalten, um weiterhin blind mit ihrem Gerät interagieren zu können.
Die Stärke von Siri liegt darin, dass Benutzer ihre iPhones in der Tasche haben und Kopfhörer verwenden können, um mit ihren Voice Assistants zu interagieren, eine neue Erinnerung an ihre HomePods von überall her zu hören oder Nachrichten zu hören, während sie ihr CarKit-fähig fahren Fahrzeuge. Die Interaktion mit ihren SiriKit-fähigen Apps sollte nur einen sekundären Fokus und Aufmerksamkeit erfordern, keine primären Berührungen oder visuellen Bestätigungen.
Die Ausnahme ist jedoch, wenn eine Absicht vor dem Erfüllen der Anforderung eine zusätzliche Sicherheits- und Authentifizierungsebene erfordert.
Es ist wichtig, dass Sie Absichten angeben, für die vor der Verwendung eine bestimmte Authentifizierung und Autorisierung erforderlich ist. Wenn ein Benutzer nach dem Wetter fragt, benötigen Sie keine Authentifizierung. Wenn ein Benutzer jedoch nach „20 € mit Venmo bezahlen“ fragt, sollten Sie den Benutzer natürlich zuerst authentifizieren.
SiriKit verwaltet die Absichtsbeschränkung, bei der Benutzer sich bei gesperrtem Gerät über FaceID, TouchID oder einen Passcode authentifizieren müssen, indem Sie dies in Ihren Anwendungen angeben info.plist explizit welche Absichten während gesperrt sind:
Neben der Verwendung der Sprachaufforderung zur Behandlung von Disambiguierung müssen Sie, wie bereits erwähnt, sicherstellen, dass Sie so viele Fehlerszenarien antizipieren und behandeln, wie Sie können.
Wenn ein Benutzer beispielsweise versucht, Geld an einen anderen Teilnehmer zu senden, und dieser Teilnehmer nicht über eine E-Mail-Adresse verfügt, die erforderlich ist oder über mehrere Nummern verfügt, müssen Sie damit umgehen. SiriKit liefert das INIntentResolutionResult
Klasse, mit der Sie eine Auflösung für den entsprechenden Datentyp festlegen können, den Sie auflösen möchten:
func resolContent (forSendMessage-Intent: INSendMessageIntent, mit Abschluss: @escaping (INStringResolutionResult) -> Void) Ergebnis lassen: INStringResolutionResult, wenn text = intent.content,! text.isEmpty result = .success (mit: text) else result = .needsValue () Vervollständigung (Ergebnis)
Apple empfiehlt, dass Sie versuchen, historische Informationen aus dem Benutzerverhalten nach Möglichkeit zu extrapolieren, um die Anzahl der Interaktionsschritte im Workflow zu reduzieren. Schauen Sie sich das an INIntentError
Dokumentation, die eine Reihe möglicher Fehler enthält, die Sie behandeln können, z actionOperationNotSupported
oder Zeitüberschreitung der Anforderung
.
SiriKit unterstützt das Hinzufügen von benutzerdefinierten Vokabeln durch Verwendung der Plist-Datei AppIntentVocabulary.plist zur Verbesserung der Benutzererfahrung Ihrer App. Sie können dies zum Onboarding von Benutzern sowie zum Einfügen bestimmter Begriffe verwenden, die Ihre App erkennt.
Wenn Sie Ihren Benutzern Beispielbefehle zur Verfügung stellen, hilft dies beim Onboarding, indem Sie die Benutzer zu den Funktionen Ihrer App führen. Wenn Sie Siri fragen: "Was können Sie tun?" Sie werden nicht nur mit den eingebauten Funktionalitäten, sondern auch mit Apps von Drittanbietern aufgefordert. Um Ihren Benutzern die Funktionalität Ihrer App auf globaler Ebene bekannt zu machen, fügen Sie Absichtsbeispiele in Ihre App ein AppIntentVocabulary.plist Datei:
Sie können Siri auch dabei helfen, Begriffe zu verstehen und zu erkennen, die nur für Ihre App spezifisch sind, indem Sie sie mit einer Reihe von Vokabeln versehen. Dies sind Wörter, die für jeden Benutzer Ihrer App gelten (z. B. wenn Sie einen bestimmten Begriff für Messaging verwenden, den Ihre App verwendet). Wenn Sie jedoch benutzerspezifische Begriffe angeben müssen, nutzen Sie diese Option INVocabulary
. In der Liste fügen Sie ein ParameterVokabulare
Schlüssel für Ihre benutzerdefinierten globalen Begriffe, und verknüpfen Sie jeden Begriff mit einem bestimmten entsprechenden Eigenschaftsobjekt (möglicherweise haben Sie mehrere Absichten für jeden Begriff)..
Lesen Sie die Apple-Dokumentation zum Registrieren von benutzerdefiniertem Vokabular bei SiriKit, um zu erfahren, wie benutzerspezifische Begriffe erstellt werden.
Schließlich können Sie Siri ab Xcode 9 bequem mit Ihrem Simulator testen, indem Sie Siri über den neuen auslösen XCUIDevice
Unterklasse XCUISiriService
. Nutzen Sie dies, um alle Ihre Intentionsphasen, benutzerdefinierten Vokabulare und sogar App-Synonyme zu testen und sicherzustellen, dass Ihre Benutzererfahrung wie vorgesehen funktioniert.
Klonen Sie für dieses Tutorial das Tutorial-Projekt-Repo, öffnen Sie das Projekt in Xcode und führen Sie es aus, um sicherzustellen, dass es in Ihrer Umgebung funktioniert. Aktivieren Sie Siri bei laufendem Simulator, indem Sie zu gehen die Einstellungen. Rufe Siri in deinem Simulator auf, wie du es auf deinem physischen Gerät tun würdest, und sage etwas wie "Sende eine Nachricht an Jane".
Öffnen Sie dann in Xcode die Datei mit dem Titel MessagingIntentsUITests.swift und Sie werden die einzelne Testfallmethode bemerken:
Sie können so viele Absichten hinzufügen, wie Sie testen möchten. Führen Sie diesen Testfall aus und beobachten Sie, wie der Simulator Siri auslöst und den beabsichtigten Befehl ausspuckt. Denken Sie daran, dies ist kein Ersatz für echte menschliche Tests und den Umgang mit unterschiedlichen Akzenten und Hintergrundgeräuschen, aber es ist dennoch nützlich als Teil Ihres automatisierten Workflows.
Das Erstellen von Benutzererlebnissen für die Sprachinteraktion ist eine völlig neue Welt aus dem visuellen UX-Design. Best Practices und Techniken werden immer noch von den Designern und Entwicklern entdeckt, die auf diesem neuen Gebiet Pionierarbeit leisten.
Dieser Beitrag gibt Ihnen einen Überblick über die aktuellen Best Practices für Konversationsdesign UX auf iOS mit SiriKit. Sie haben einige der wichtigsten Prinzipien beim Entwerfen einer Sprachschnittstelle kennen gelernt und auch einige Möglichkeiten, wie Sie mit SiriKit als Entwickler kommunizieren können. Ich hoffe, das hat Sie dazu inspiriert, in Ihrer nächsten App mit Sprachschnittstellen zu experimentieren!
Während Sie hier sind, lesen Sie einige unserer anderen Beiträge zur Entwicklung von iOS-Apps.
Oder sehen Sie sich einige unserer umfassenden Video-Kurse zur Entwicklung von iOS-Apps an: