Hapticsとは、iPhoneを操作しているときに「ポコッ」と振動するアレです(「ポポポポ」とか「ブーーーン」とかもあります)。 UXを向上させたりアプリのらしさを演出したりできる強力なフィードバックツールですが、その扱い方は公式ドキュメントを軽く読むだけでは理解できないほど難解です。 このトークを聞いて、あなたのアプリをhaptics付きのより魅力的なものにしましょう。
2023/9/3 14:30~ @ iOSDC 2023
$PSF)BQUJDTೖ4BUTVLJ)BTIJCB
View Slide
Ӌࣲ࠼݄ϋγόαπΩw -*/&גࣜձࣾw 🎧🧼⌨
TIJCB)BQUJDT%FNP
)BQUJDTͱʁ
J1IPOFΛૢ࡞͍ͯ͠Δ࣌ʹײ͡Δৼಈ
4VDDFTT 8BSOJOH &SSPSΑ͋͘Δ)BQUJDT
)BQUJDT͕͋Δͷ J1IPOF͚ͩͰ͋Γ·ͤΜ📱⌚💻🎮
w 5BQUJD&OHJOFࡌσόΠεw 'PSFHSPVOEͰ࣮ߦ͞Ε͍ͯΔw γεςϜઃఆͰ༗ޮʹͳ͍ͬͯΔ)BQUJDTΛ࠶ੜͰ͖Δͷ
ཱ͍ͨͤͨϑΟʔυόοΫʹ)BQUJDTΛ͚ͭΔͱϦονͳΞϓϦʹͳΓ·͢
)BQUJDTΛఏڙ͢Δ'SBNFXPSLT
6*,JUPS$PSF)BQUJDTΛར༻͠·͢
6*'FFECBDL(FOFSBUPSΛͬͯ؆୯ͳ)BQUJDTΛ࠶ੜ6*,JUPS$PSF)BQUJDTΛར༻͠·͢
ΧελϚΠζͨ͠)BQUJDTͷ࡞ɾ࠶ੜ6*,JUPS$PSF)BQUJDTΛར༻͠·͢ࠓͷτϐοΫ
$PSF)BQUJDTͷ֓ཁ
&WFOUͱ1BUUFSO
&WFOUͱ1BUUFSO$))BQUJD&WFOU
$))BQUJD1BUUFSO&WFOUͱ1BUUFSO
&WFOU1BUUFSO &OHJOF 1MBZFSϙίο
)BQUJDTΛߏ͢Δ
$))BQUJD&WFOU୯ҰͷৼಈΛࣔ͢ΦϒδΣΫτ
&WFOU5ZQF5SBOTJFOUͱ$POUJOVPVT
&WFOU5ZQF͍ͨΑ͏ͳ͍িಈ5SBOTJFOUͱ$POUJOVPVTU
&WFOU5ZQF͞ͷ͋Δৼಈ5SBOTJFOUͱ$POUJOVPVT
JOUFOTJUZײ৮ͷڧ
TIBSQOFTTײ৮ͷ໌͞
SFMBUJWF5JNF&WFOUͷ։࢝࣌ࠁ
$POUJOVPVTͷΈ
$POUJOVPVTͷΈEVSBUJPO)BQUJDTͷ͞ʢ࠷େඵʣ
$POUJOVPVTͷΈTVTUBJOFEײ৮Λ࣋ଓͤ͞Δ͔Ͳ͏͔'BMTF5SVF
$POUJOVPVTͷΈBUUBDL*OUFOTJUZ͕૿Ճ࢝͠ΊΔ࣌ؒ
$POUJOVPVTͷΈSFMFBTFEFDBZ*OUFOTJUZ͕ݮগ࢝͠ΊΔ࣌ؒ
SFMFBTFͱEFDBZͷҧ͍
SFMFBTFͱEFDBZͷҧ͍TVTUBJOPOSFMFBTFTVTUBJOPGGEFDBZ
&WFOUͷ·ͱΊ5SBOTJFOUw JOUFOTJUZw TIBSQOFTTw SFMBUJWF5JNF
&WFOUͷ·ͱΊ$POUJOVPVTw JOUFOTJUZw TIBSQOFTTw SFMBUJWF5JNFw EVSBUJPOw TVTUBJOFEw BUUBDLw SFMFBTFEFDBZ
$))BQUJD1BUUFSO&WFOUͷྻ
͍͠Ͱ͢Ͷʜ😖Ͱͬͱ͍͜͠ͱ͕͋Γ·͢ʂ
$))BQUJD1BUUFSOJOJUpublic init(dictionary patternDict: [CHHapticPattern.Key : Any]) throws
")"1ϑΝΠϧ"QQMF)BQUJDBOE"VEJP1BUUFSO1BUUFSOΛࢦఆ͢Δ+40/ϥΠΫͳϑΝΠϧ
let path = Bundle.main.path(forResource: “filename", ofType: "ahap")!let pattern = try CHHapticPattern(contentsOf: URL(filePath: path))
)BQUJDTͷ࠶ੜ
&WFOU1BUUFSO &OHJOF 1MBZFS͓͞Β͍ϙίο
let pattern: CHHapticPattern = …let engine = try CHHapticEngine()try engine.start()let player = try engine.makePlayer(with: pattern)try player.start(atTime: 0)
)BQUJDTͷϕετϓϥΫςΟε
w Ұ؏ੑΛ࣋ͨͤΔw ଞͷϑΟʔυόοΫΛิ͢Δw ͍͗͢ͳ͍w ΦϑͰ͖ΔΑ͏ʹ͢Δw ผͷૢ࡞Λअຐ͠ͳ͍IUUQTEFWFMPQFSBQQMFDPNEFTJHOIVNBOJOUFSGBDFHVJEFMJOFTQMBZJOHIBQUJDT
5IBOLZPVεϐʔΧʔελϯϓϥϦʔ͕͋Γ·͢