Mange artikler, inkludert vårt nettsted, har fokusert på å hjelpe leserne til å lage fantastiske iOS-apper ved å designe en flott mobilbrukeropplevelse (UX).
Men med fremveksten av Apple Watch for noen år siden, sammen med CarKit, og mer nylig HomePod i år, begynner vi å se mange flere apps og IoT-apparater som bruker talekommandoer i stedet for visuelle grensesnitt. Utbredelsen av IoT-enheter som HomePod og andre stemmeassistenter, samt eksplosjonen i talassistent-aktiverte tredjepartsapps, har gitt opphav til en helt ny kategori av brukeropplevelsesdesignmetoder, med fokus på Voice User Experiences (VUX ) eller Conversational Design UX.
Dette har ført til at Apple fokuserer på utviklingen av SiriKit for noen år siden, og gir tredjepartsutviklere muligheten til å utvide sine apper slik at brukerne kan snakke med appene sine mer naturlig. Ettersom SiriKit åpner flere for tredjepartsutviklere, begynner vi å se flere programmer som blir en del av SiriKit, for eksempel fremtredende meldingsprogrammer WhatsApp og Skype, samt betalingsapplikasjoner som Venmo og Apple Pay..
SiriKit har som mål å utrydde grensene mellom apper gjennom en konsekvent samtale brukeropplevelse som gjør at apps kan forbli intuitive, funksjonelle og engasjerende gjennom forhåndsdefinerte hensikter og domener. Denne opplæringen vil hjelpe deg med å bruke beste praksis for å skape intuitive konversjonsdesign brukeropplevelser uten visuelle tegn.
Denne opplæringen vil lære deg å designe hørbart engasjerende SiriKit-aktiverte programmer gjennom beste praksis i VUX. Du vil lære om:
Jeg antar at du tidligere har jobbet med SiriKit, og har noen erfaringskoding med Swift og Xcode.
Å skape engasjerende apps krever et godt gjennomtenkt design for brukeropplevelse-UX-design for kort. Et felles underliggende prinsipp til alle mobile plattformer er at designen er basert på et visuelt brukergrensesnitt. Men når du designer for plattformer hvor brukere engasjerer via tale, har du ikke fordelen av visuelle signaler for å hjelpe brukerne. Dette gir et helt nytt sett med designutfordringer.
Fraværet av et grafisk brukergrensesnitt tvinger brukerne til å forstå hvordan de kommuniserer med sine enheter med stemme og bestemmer hva de kan si når de navigerer mellom ulike stater for å nå sine mål. Interaction Design Foundation beskriver situasjonen i konservatorisk brukeropplevelse:
"I talebrukergrensesnitt kan du ikke opprette visuelle tilbud. Brukere vil ikke ha noen klare indikasjoner på hva grensesnittet kan gjøre eller hva alternativene er. "
Som designer må du forstå hvordan folk kommuniserer med teknologier naturlig - grunnleggende for taleinteraksjon. Ifølge nyere studier fra Stanford oppfatter brukerne generelt og interagerer med talegrensesnitt på omtrent samme måte som de snakker med andre mennesker, uavhengig av at de er klar over at de snakker med en enhet.
Vanskeligheten ved å kunne forutse de ulike måtene folk snakker på, har ført til fremskritt i maskinlæring de siste årene, med naturlig språkbehandling (NLP), slik at plattformer kan forstå mennesker på en mer naturlig måte ved å gjenkjenne hensikter og associative dommene til kommandoer. En fremtredende plattform er Apples Siri, og rammen for tredjepartsutviklere, SiriKit.
Mens de fleste forstår Siri som primært fokuserer på ikke-visuell talehjelp, tillater integrasjonen i Apples økosystem brukere å utløse taleinteraksjoner gjennom operativsystemet, enten det er iOS, watchOS, CarPlay eller HomePod.
De tre første plattformene gir begrenset visuell veiledning i tillegg til hørbar tilbakemelding, mens HomePod kun gir hørbar tilbakemelding. Ved å bruke iOS eller CarPlay under kjøring, gir plattformen enda mindre visuell tilbakemelding og mer lyd tilbakemelding, slik at mengden informasjon en bruker mottar er dynamisk. Som appdesigner må du imøtekomme begge typer interaksjoner.
Dette betyr at SiriKit kalibrerer hvor mye det tilbyr visuelt eller verbalt basert på tilstanden til enheten og brukeren, og så lenge du overholder de beste praksiser, vil SiriKit behandle alle disse på en elegant måte..
Rammen håndterer brukerforespørsler gjennom to primære prosesser: hensikt og domenehåndtering.
Intens styres gjennom Intents-rammeverket for stemmehåndtering, Intents App Extension, som tar brukerforespørsler og gjør dem til appespesifikke handlinger, for eksempel bestilling av bil-deling eller sending av penger til noen.
Intents UI app extension, derimot, gir deg mulighet til å levere minimal visuell innholdsbekreftelse når en bruker har gjort en forespørsel, og din app vil bekrefte før du fullfører forespørselen.
SiriKit klassifiserer hensikter (brukerforespørsler) i bestemte typer, kalt domener. Fra iOS 11 kan tredjepartsutviklere utnytte følgende domener og interaksjoner:
Det kan i utgangspunktet virke som om valget er begrenset, men Apples begrunnelse er at dette bidrar til å håndtere brukerens tillit og forventninger nøye, samtidig som brukerne gradvis lar seg lære og bygge opp sin kunnskap om hvordan man kan samhandle med Siri. Dette gjør det også mulig for Apple og samfunnet å skalere over tid, mens det blir uskarpt mellom grenser mellom apper som ligger bak stemmeassistentgrensesnittet.
IOS-utviklere som utnytter SiriKit, har også fordel av kontekstuell kunnskap plattformen gir. Dette inkluderer gruppering av setninger etter konversasjonskontekst, i henhold til hensikter og domener som maskinlæring gir. Det vil si, Siri vil prøve å finne ut om din neste kommando er en del av samme konversasjonskontekst eller en ny. Hvis du sier "Vennligst bestill en Uber-tur", vil Siri vite at du har tenkt å bestille en bil-deltur, i carshare-domenet. Men appen vil trenge mer informasjon, for eksempel hvilken type tur. Hvis din neste kommando var "Uber Pool", ville det vite at den andre kommandoen er innenfor samme kontekst.
Levering SiriKit gjør at du kan dra nytte av Apples plattform orkestrerer mye tung løft, slik at du kan fokusere på det som er viktig, som utvikler verdi. Når det er sagt, må du fortsatt være en god "Siri-borger". Deretter vil du neste gang lære om ulike beste praksiser du kan følge for å skape en bevegelig brukeropplevelse med ikke-visuell kommunikasjon og taleinteraksjon.
For mer informasjon om utvikling med SiriKit, sjekk ut Lag SiriKit Extensions i iOS 10.
La oss ta en titt på noen gode fremgangsmåter som du umiddelbart kan søke på din SiriKit-utvidelse, for å sikre at appen din gir et hyggelig, logisk og intuitivt samtale-talegrensesnitt for brukerne dine..
Det første veiledende prinsippet er å kortfattet informere brukerne om hvilke alternativer de har i en bestemt samspillstilstand.
Mens grafiske brukeropplevelser enkelt kan gi en visuell kontekst tilbake til brukerne, for eksempel gjennom modale dialogbokser, for eksempel, eksisterer den samme luksusen ikke med stemmeaktiverte programmer. Brukere har varierte forventninger til hva naturlig språkbehandling kan håndtere. Noen vil være svært konservative og kan ikke innse Siri, og andre kan begynne å spørre noe komplekst som ikke gir mening for Siri.
Du må designe brukeropplevelsen din slik at brukerne får informasjon om hva de kan gjøre på et bestemt tidspunkt, i form av alternativer.
Hvilke alternativer appen din returnerer skal være kontekstuelt relevant. I følgende skjermbilde har kontaktpersonen flere telefonnumre, og hvis brukeren ikke har uttrykkelig oppgitt hvilken som skal brukes, skal brukeren bli bedt om.
SiriKit bruker kontaktoppløsning, som du har tilgang til via SDK, for å veilede appen for å finne ut hvilket kontaktnummer (eller til og med hvilket kontaktnavn hvis mer enn en kontaktoppføring har samme navn) sluttbrukeren er ment. Ifølge Apples dokumentasjon:
Under oppløsning ber SiriKit deg om å verifisere hver parameter enkeltvis ved å ringe oppløsningsmetodene til håndteringsobjektet. I hver metode validerer du de angitte dataene og oppretter et oppløsningsresultatobjekt som angir suksess eller feil ved å løse parameteren. SiriKit bruker oppløsningsresultatobjektet for å bestemme hvordan man skal fortsette. Hvis for eksempel oppløsningsresultatet ditt spør brukeren om å disambiguere mellom to eller flere valg, ber SiriKit brukeren å velge ett av disse valgene.
Hvis du vil ha mer informasjon om hvordan du løser brukerens hensikter, kan du se Apples dokumentasjon om Løsning og håndtering av hensikt.
Det er viktig at du i din apps samtale brukeropplevelse reagerer på kommandoer raskt, da brukerne forventer en rask respons. Hva dette betyr er at du skal designe interaksjons arbeidsflyten for å gi det raskeste settet av handlinger for å oppnå funksjonalisering uten unødvendige meldinger eller skjermbilder.
Apple oppfordrer deg til å ta brukeren direkte til innholdet uten mellomliggende skjermbilder eller meldinger. Hvis en bruker må godkjennes, ta brukeren direkte til autentiseringsskjermen, og sørg for å opprettholde konteksten slik at brukeren kan fortsette på en logisk måte for å fullføre sine handlinger. Apples retningslinjer for menneskelig grensesnitt anbefaler at du må:
Reager raskt og minimer samspillet. Folk bruker Siri for enkelhets skyld og forventer en rask respons. Presentere effektive, fokuserte valg som reduserer muligheten for ytterligere spørsmål.
Amazon-ekko-designretningslinjene anbefaler at du ikke angir mer enn tre forskjellige alternativer i en enkelt samhandling, men gir først brukerne de mest populære alternativene først. Deretter, hvis du trenger å gi mer enn tre alternativer, gi et alternativ på slutten for å gå gjennom resten av dem.
Prioritere og bestil alternativene som brukerne mest sannsynlig vil bruke, og la brukerne eksplisitt kaste ut noen av de mindre populære alternativene uten å lese dem ut. Du kan også dynamisk justere de fremtredende alternativene basert på brukerens historiske preferanser også.
Viktigst, ikke demonstrere fordommer eller bedrag! Det vil si at du ikke misforstår informasjon eller veier opplysningene for å prioritere de dyreste alternativene, for eksempel, oppføring av de dyreste bilaktive turalternativene først med de billigere alternativene for bilparkering siste. Dette er en sikker måte for kundene dine å miste tillit og tillit til appen din.
Det er vanskelig for brukerne å trene hvor de er uten visuelle signaler, og selv om SiriKit kan holde rede på den nåværende konteksten, har brukerne en tendens til å samhandle med SiriKit mens du gjør noe annet, for eksempel kjøring eller jogging.
Derfor trenger du alltid å gi et informativt svar på en kommando, ikke bare bekrefter det, men påminner brukeren av konteksten. For eksempel, når brukeren ber om å bestille en biltur, kan du gi sammenheng rundt ditt svar ved å si noe som: "Du har bestilt en tur for i dag klokken 17.00, ved hjelp av AcmeCar" i stedet for å bare svare med "booking bekreftet”.
Med andre ord, gi nok kontekstuell informasjon i ditt svar for brukeren å forstå hva som er bekreftet, uten å måtte se på henne eller hans telefon som bekreftelse på brukerens intensjoner.
Ettersom Apples økosystem med Siri-aktiverte enheter utvides utover iOS og watchOS til enheter som mangler et visuelt grensesnitt, er det viktig at svarene dine og samspillet ikke krever at brukerne ser på skjermen eller til og med berører enhetene sine for å bekrefte noe. De verbale svarene skal være kontekstuelle og kortfattede (inkludert å gi en begrenset delmengde av alternativer), slik at brukerne får akkurat den riktige mengden informasjon for at de skal fortsette å blinde samhandle med enheten deres.
Kraften til Siri kommer fra at brukerne kan ha sine iPhones i lommene og bruke hodetelefoner til å samhandle med sine stemmeassistenter, å rope en ny påminnelse til deres HomePods fra hele rommet, eller å lytte til meldinger mens de kjører CarKit-aktiverte kjøretøy. Interaksjon med SiriKit-aktiverte apper, krever bare sekundær fokus og oppmerksomhet, ikke primær berøring eller visuell bekreftelse.
Unntaket er imidlertid når en hensikt krever et ekstra lag med sikkerhet og godkjenning før oppfyllelsen av forespørselen.
Det er viktig at du identifiserer hensikter som krever spesifikk godkjenning og autorisasjon før du blir brukt. Hvis en bruker spør "Hva er været", trenger du ikke godkjenning. Men hvis en bruker spør "Betal Jane $ 20 med Venmo", bør du selvsagt kreve at brukeren autentiserer først.
SiriKit håndterer intensjonsbegrensning der brukerne må godkjenne via FaceID, TouchID eller et passord når enheten er låst, ved å kreve at du spesifiserer i programmets Info.plist eksplisitt hvilke hensikter er begrenset mens det er låst:
I tillegg til å bruke taleoppfordring til å håndtere disambiguering, som diskutert tidligere, må du også sørge for at du forventer og håndterer så mange feilscenarier som du kan.
For eksempel, når en bruker forsøker å sende penger til en annen deltaker, og at deltakeren ikke har en e-postadresse som er nødvendig eller har flere tall, må du håndtere det. SiriKit gir INIntentResolutionResult
klasse som lar deg sette opp en oppløsning for riktig datatype du prøver å løse:
func resolveContent (forSendMessage intent: INSendMessageIntent, med ferdigstillelse: @escaping (INStringResolutionResult) -> Feid) la resultatet: INStringResolutionResult hvis la tekst = intent.content,! text.isEmpty result = .success (med: text) else result = .needsValue () fullføring (resultat)
Apple anbefaler at du forsøker å ekstrapolere historisk informasjon fra brukeroppførsel hvor det er mulig, for å redusere antallet interaksjonstrinn i arbeidsflyten. Ta en titt på INIntentError
dokumentasjon, som gir et sett med mulige feil du kan håndtere, for eksempel interactionOperationNotSupported
eller Forespørselen ble tidsavbrutt
.
SiriKit støtter å legge til tilpassede vokabularer ved bruk av plistfilen AppIntentVocabulary.plist for å forbedre appens konversasjonsbrukeropplevelse. Du kan bruke dette til onboarding brukere, så vel som for å inkludere bestemte vilkår som appen din kan gjenkjenne.
Å gi brukerne eksempler med kommandoer, hjelper med ombordstigning ved å lede brukerne til appens evner. Hvis du spør Siri "Hva kan du gjøre?" det vil spørre deg ikke bare med de innebygde funksjonalitetene som er mulige, men også med tredjepartsapps. For å markedsføre appens funksjonalitet til brukerne dine globalt, ta med hensiktseksempler i din AppIntentVocabulary.plist fil:
Du kan også hjelpe Siri til å forstå og gjenkjenne vilkår som bare er spesifikke for appen, ved å levere den med en rekke ordforrådord. Dette er ord som gjelder for alle brukere av appen din (for eksempel hvis du har et bestemt uttrykk for meldinger som appen din bruker), men hvis du trenger å angi brukerspesifikke vilkår, kan du dra nytte av INVocabulary
. Innenfor plist, legger du til en ParameterVocabularies
nøkkel for de egendefinerte globale vilkårene dine og knytte hvert begrep til et bestemt tilsvarende objektiv objektobjekt (du kan ha flere hensikter for hvert begrep).
Rådfør deg med Apples dokumentasjon om Registrering av egendefinert ordforråd med SiriKit for å lære hvordan du oppretter brukerspesifikke vilkår.
Til slutt, fra Xcode 9, kan du enkelt teste Siri ved hjelp av din Simulator ved å utløse Siri via det nye XCUIDevice
underklasse XCUISiriService
. Utnytt dette for å teste alle dine intensjonsfaser, tilpassede vokabularer og til og med appsynonymer, og for å sikre at dine designede brukeropplevelser fungerer som ment.
I denne veiledningen skal du klone opplæringsprosjektet, åpne prosjektet i Xcode og kjøre det for å sikre at det fungerer i ditt miljø. Når simulatoren kjører, aktiver Siri ved å gå til innstillinger. Påkall Siri på din simulator som du ville gjøre på din fysiske enhet og si noe som "Send en melding til Jane".
Deretter åpner du filnavnet i Xcode MessagingIntentsUITests.swift og du vil legge merke til den enkle test saken metoden:
Du kan legge til så mange hensikter som du vil teste. Til slutt, fortsett og kjør dette testet, og du vil observere Simulator utløser Siri og snakke ut den påtatte kommandoen. Husk at dette ikke er en erstatning for ekte menneskelig testing og å håndtere forskjellige aksenter og bakgrunnsstøy, men det er likevel nyttig som en del av din automatiserte arbeidsflyt.
Utforming av brukeropplevelser for taleinteraksjon er en helt ny verden fra visuell UX-design. Best practices og teknikker blir fortsatt oppdaget av designere og utviklere som er banebrytende på dette nye feltet.
Dette innlegget har gitt deg en oversikt over dagens beste praksis for samtaledesign UX på iOS med SiriKit. Du så noen av hovedprinsippene i å designe et taleinterface, så vel som noen av måtene du kan grensesnitt med SiriKit som en dev. Jeg håper dette har inspirert deg til å eksperimentere med talegrensesnitt i din neste app!
Mens du er her, sjekk ut noen av våre andre innlegg på banebrytende iOS app utvikling.
Eller sjekk ut noen av våre omfattende video kurs på iOS app utvikling: