Haptische feedback in iOS 10

Haptische feedback voegt een hele nieuwe dimensie toe aan de interactie van mobiele gebruikers. Leer hoe u de nieuwe iPhone 7 haptische feedback-API's kunt gebruiken om uw gebruikers een voelbaar antwoord te geven.

Wat is Haptische feedback?

In iOS 10 hebben we een nieuwe API om feedback te geven aan de gebruiker. Haptische feedback is een uitbreiding op de visuele feedback die elke gebruiker al gewend is. Als je een iPhone 7 of iPhone 7 Plus hebt, heb je mogelijk een kleine trilling van het apparaat opgemerkt tijdens het scrollen van een datumkiezer of bij het wijzigen van de waarde van een schakelaar - dat is haptische feedback. De nieuwe UIFeedbackGenerator class kan worden gebruikt om hetzelfde gedrag in uw apps te implementeren.

Wanneer te gebruiken

De eerste regel van haptische feedback van de iOS Human Interface Guidelines: gebruik het niet te veel! Stuur geen nutteloze feedback naar uw gebruikers. Als u dit doet, kunnen ze besluiten deze functie uit te schakelen voor hun hele apparaat. Omdat het kan worden uitgeschakeld, gebruik geen haptische feedback als uw enige feedbackmethode voor uw gebruiker. Het is mogelijk niet beschikbaar op sommige apparaten en de verzoeken worden stilzwijgend genegeerd op oudere apparaten die dit niet ondersteunen.

Over het algemeen moet haptische feedback een reactie zijn op een door de gebruiker geïnitieerde actie. Op deze manier is het gemakkelijker voor gebruikers om de feedback te correleren met de bron.

Als u tenslotte tegelijkertijd een geluid wilt spelen, moet u ervoor zorgen dat het geluid wordt gesynchroniseerd.

Hoe u de juiste feedback kiest

Apple's What's New in iOS 10-document geeft aan dat een van de volgende drie concrete klassen moet worden gebruikt:

  • UIImpactFeedbackGenerator biedt een fysieke metafoor die de visuele ervaring aanvult. De gebruiker kan bijvoorbeeld een plof voelen wanneer een weergave op zijn plaats schuift of twee objecten botsen. Het heeft drie variaties: succes, waarschuwing, en mislukking.
  • UINotificationFeedbackGenerator geeft aan dat een taak of actie, zoals het plaatsen van een cheque of het ontgrendelen van een voertuig, is voltooid, mislukt of een waarschuwing heeft gegenereerd. Het heeft drie variaties: licht, medium, en zwaar.
  • UISelectionFeedbackGenerator geeft aan dat de selectie actief verandert. De gebruiker voelt bijvoorbeeld lichte tikken tijdens het scrollen van een kiezerwiel. Deze feedback is bedoeld om beweging te communiceren via een reeks discrete waarden, geen selectie te maken of te bevestigen.

Om deze verschillende typen uit te leggen, bevat de documentatie video's met geluid om het patroon van elk feedbacktype te illustreren. Probeer ze zelf uit op de Apple Developer-site.

Feedback geven

Laten we nu beginnen met coderen! We gaan een zeer eenvoudige iOS-app bouwen die een succesfeedback geeft wanneer op een knop wordt gedrukt. Open Xcode 8 en maak een nieuw iOS-project.

Voeg een knop toe in uw storyboard bestand en maak een IBAction om de feedback te activeren. 

 De levenscyclus van een feedbackgenerator ziet er als volgt uit:

  1. Start de generator.
  2. Bereid de generator voor (optioneel).
  3. Feedback triggeren.
  4. Laat de generator los (optioneel).

Ik zal je door elk van de onderstaande stappen leiden.

Start de generator

Verklaar eerst een nieuwe variabele van het type UINotificationFeedbackGenerator. Als u een ander type feedback wilt gebruiken, hoeft u alleen deze klasse te wijzigen.

var feedbackGenerator: UINotificationFeedbackGenerator? // Declareer het generatortype.

Initialiseer de generator in viewDidLoad:

override func viewDidLoad () super.viewDidLoad () feedbackGenerator = UINotificationFeedbackGenerator () // Start de generator. 

Bereid de generator voor

Als u van tevoren weet dat de gebruiker feedback gaat geven, belt u het nummer bereiden() methode. Dit vermindert de latentie tussen uw methodeaanroep en de feitelijke hardwarefeedback. Een voorbeeld is wanneer u tijdens een beweging meerdere feedback wilt geven. Bereid in dit geval eerst de generator voor zodat de latentie wordt verminderd.

Feedback triggeren

In het voorbeeld dat we aan het bouwen zijn, kunnen we niet weten wanneer de gebruiker op de knop drukt. Daarom triggeren we binnen de actie meteen de feedback.

@IBAction func triggerNotification (_ sender: UIButton) feedbackGenerator? .NotificationOccurred (.success) // De haptische feedback triggeren. 

Laat de generator los

We hebben de generator als optioneel verklaard, zodat we deze indien nodig kunnen instellen voor het geval we deze niet meer nodig hebben nul om al zijn middelen vrij te geven. Dit is een optionele stap. 

Er is momenteel geen manier om haptische feedback te testen in de Simulator. Je moet een iPhone 7 in handen krijgen en de stroom van de app testen met het nieuwe feedbacksysteem in actie. Start de app op je iPhone 7 en druk op de knop op het scherm. Je moet een succesfeedback voelen! 

Wanneer u ondersteuning voor feedback toevoegt aan uw eigen app, moet u ervoor zorgen dat deze goed in de context aanvoelt die uw gebruikers zouden verwachten, anders zouden ze in de war kunnen raken.

Conclusie

Haptische feedback is een nieuwe geweldige functie om uw app realistischer te maken. Gebruikers waarderen het altijd als ze zien dat uw app de nieuwste functies van hun apparaat ondersteunt, dus ga ervoor en implementeer het meteen.

Bekijk in de tussentijd enkele van onze andere cursussen en zelfstudies over de ontwikkeling van Swift-apps en nieuwe functies in iOS 10.

  • Upgrade uw app naar iOS 10

    In dit artikel laat ik je zien wat je moet doen om je apps voor te bereiden op iOS 10. Zoals bij elke belangrijke release introduceert iOS 10 een hele reeks wijzigingen en ...
    Bart Jacobs
    iOS
  • iOS 10: aangepaste meldingsinterfaces maken

    In deze zelfstudie leert u hoe u het nieuwe UserNotificationsUI-framework in iOS 10 kunt gebruiken om aangepaste interfaces voor de lokale en push-instellingen van uw app te maken ...
    Davis Allie
    iOS SDK
  • Core Data is nu nog beter

    Tijdens de WWDC van dit jaar introduceerde Apple een aantal belangrijke verbeteringen aan Core Data, waarmee het framework naar een hoger niveau werd gebracht. In dit artikel zal ik ...
    Bart Jacobs
    Kerngegevens
  • Maak iOS-apps met Swift 3

    iOS 10 is net vrijgegeven en daarmee is Swift 3. Swift een nieuwe programmeertaal van Apple, speciaal ontworpen voor het maken van iOS, macOS en ...
    Markus Mühlberger
    Snel