Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CoreHaptics入門

 CoreHaptics入門

Hapticsとは、iPhoneを操作しているときに「ポコッ」と振動するアレです(「ポポポポ」とか「ブーーーン」とかもあります)。
UXを向上させたりアプリのらしさを演出したりできる強力なフィードバックツールですが、その扱い方は公式ドキュメントを軽く読むだけでは理解できないほど難解です。
このトークを聞いて、あなたのアプリをhaptics付きのより魅力的なものにしましょう。

2023/9/3 14:30~ @ iOSDC 2023

Satsuki Hashiba

September 03, 2023
Tweet

More Decks by Satsuki Hashiba

Other Decks in Programming

Transcript

  1. $PSF)BQUJDTೖ໳
    4BUTVLJ)BTIJCB

    View Slide


  2. Ӌࣲ࠼݄ϋγόαπΩ
    w -*/&גࣜձࣾ
    w 🎧🧼⌨

    View Slide


  3. TIJCB)BQUJDT%FNP

    View Slide

  4. )BQUJDTͱ͸ʁ

    View Slide

  5. J1IPOFΛૢ࡞͍ͯ͠Δ࣌ʹײ͡Δৼಈ

    View Slide

  6. 4VDDFTT 8BSOJOH &SSPS
    Α͋͘Δ)BQUJDT

    View Slide

  7. )BQUJDT͕͋Δͷ͸

    J1IPOF͚ͩͰ͸͋Γ·ͤΜ
    📱⌚💻🎮

    View Slide

  8. w 5BQUJD&OHJOF౥ࡌσόΠε
    w 'PSFHSPVOEͰ࣮ߦ͞Ε͍ͯΔ
    w γεςϜઃఆͰ༗ޮʹͳ͍ͬͯΔ
    )BQUJDTΛ࠶ੜͰ͖Δͷ͸

    View Slide

  9. ໨ཱ͍ͨͤͨϑΟʔυόοΫʹ
    )BQUJDTΛ͚ͭΔͱ
    ϦονͳΞϓϦʹͳΓ·͢

    View Slide

  10. )BQUJDTΛఏڙ͢Δ
    'SBNFXPSLT

    View Slide

  11. 6*,JUPS$PSF)BQUJDTΛར༻͠·͢

    View Slide

  12. 6*'FFECBDL(FOFSBUPSΛ࢖ͬͯ
    ؆୯ͳ)BQUJDTΛ࠶ੜ
    6*,JUPS$PSF)BQUJDTΛར༻͠·͢

    View Slide

  13. ΧελϚΠζͨ͠)BQUJDTͷ
    ࡞੒ɾ࠶ੜ
    6*,JUPS$PSF)BQUJDTΛར༻͠·͢

    ࠓ೔ͷτϐοΫ

    View Slide

  14. $PSF)BQUJDTͷ֓ཁ

    View Slide

  15. &WFOUͱ1BUUFSO

    View Slide

  16. &WFOUͱ1BUUFSO
    $))BQUJD&WFOU

    View Slide


  17. $))BQUJD1BUUFSO
    &WFOUͱ1BUUFSO

    View Slide

  18. &WFOU

    1BUUFSO &OHJOF 1MBZFS
    ϙίο

    View Slide

  19. )BQUJDTΛߏ੒͢Δ஋

    View Slide

  20. $))BQUJD&WFOU
    ୯ҰͷৼಈΛࣔ͢ΦϒδΣΫτ

    View Slide

  21. &WFOU5ZQF
    5SBOTJFOUͱ$POUJOVPVT

    View Slide

  22. &WFOU5ZQF
    ஄͍ͨΑ͏ͳ୹͍িಈ

    5SBOTJFOUͱ$POUJOVPVT
    U

    View Slide

  23. &WFOU5ZQF
    ௕͞ͷ͋Δৼಈ

    5SBOTJFOUͱ$POUJOVPVT

    View Slide

  24. JOUFOTJUZ
    ײ৮ͷڧ౓


    View Slide

  25. TIBSQOFTT
    ײ৮ͷ઱໌͞


    View Slide

  26. SFMBUJWF5JNF
    &WFOUͷ։࢝࣌ࠁ

    View Slide


  27. $POUJOVPVTͷΈ

    View Slide

  28. $POUJOVPVTͷΈ
    EVSBUJPO
    )BQUJDTͷ௕͞ʢ࠷େඵʣ

    View Slide

  29. $POUJOVPVTͷΈ
    TVTUBJOFE
    ײ৮Λ࣋ଓͤ͞Δ͔Ͳ͏͔

    'BMTF
    5SVF

    View Slide

  30. $POUJOVPVTͷΈ
    BUUBDL
    *OUFOTJUZ͕૿Ճ࢝͠ΊΔ࣌ؒ

    View Slide

  31. $POUJOVPVTͷΈ
    SFMFBTFEFDBZ
    *OUFOTJUZ͕ݮগ࢝͠ΊΔ࣌ؒ

    View Slide

  32. SFMFBTFͱEFDBZͷҧ͍

    View Slide

  33. SFMFBTFͱEFDBZͷҧ͍

    TVTUBJOPO
    SFMFBTF
    TVTUBJOPGG
    EFDBZ

    View Slide

  34. &WFOUͷ·ͱΊ

    5SBOTJFOU
    w JOUFOTJUZ
    w TIBSQOFTT
    w SFMBUJWF5JNF

    View Slide

  35. &WFOUͷ·ͱΊ

    $POUJOVPVT
    w JOUFOTJUZ
    w TIBSQOFTT
    w SFMBUJWF5JNF
    w EVSBUJPO
    w TVTUBJOFE
    w BUUBDL
    w SFMFBTFEFDBZ

    View Slide

  36. $))BQUJD1BUUFSO
    &WFOUͷ഑ྻ

    View Slide

  37. ೉͍͠Ͱ͢Ͷʜ😖

    Ͱ΋΋ͬͱ೉͍͜͠ͱ͕͋Γ·͢ʂ

    View Slide


  38. $))BQUJD1BUUFSOJOJU
    public init(


    dictionary patternDict: [CHHapticPattern.Key : Any]


    ) throws

    View Slide


  39. View Slide

  40. ")"1ϑΝΠϧ
    "QQMF)BQUJDBOE"VEJP1BUUFSO
    1BUUFSOΛࢦఆ͢Δ+40/ϥΠΫͳ
    ϑΝΠϧ

    View Slide


  41. let path = Bundle.main.path(


    forResource: “filename", ofType: "ahap"


    )!


    let pattern = try CHHapticPattern(


    contentsOf: URL(filePath: path)


    )

    View Slide

  42. )BQUJDTͷ࠶ੜ

    View Slide

  43. &WFOU

    1BUUFSO &OHJOF 1MBZFS
    ͓͞Β͍
    ϙίο

    View Slide


  44. let pattern: CHHapticPattern = …


    let engine = try CHHapticEngine()


    try engine.start()


    let player = try engine.makePlayer(with: pattern)


    try player.start(atTime: 0)

    View Slide

  45. )BQUJDTͷϕετϓϥΫςΟε

    View Slide

  46. w Ұ؏ੑΛ࣋ͨͤΔ
    w ଞͷϑΟʔυόοΫΛิ׬͢Δ
    w ࢖͍͗͢ͳ͍
    w ΦϑͰ͖ΔΑ͏ʹ͢Δ
    w ผͷૢ࡞Λअຐ͠ͳ͍

    IUUQTEFWFMPQFSBQQMFDPNEFTJHOIVNBOJOUFSGBDFHVJEFMJOFTQMBZJOHIBQUJDT

    View Slide

  47. 5IBOLZPV
    εϐʔΧʔελϯϓϥϦʔ
    ͕͋Γ·͢

    View Slide