Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customiz...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
M"e
May 16, 2022
Programming
2.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customize Haptic
M"e
May 16, 2022
More Decks by M"e
See All by M"e
UIViewで光の三原色の混ざり合いを表現したい / potatotips 75 Blend Mode
endoumari
1
400
文字列をコピーできるスクリーンショットを作る/iOSDC 2020 LT PDF
endoumari
3
5.8k
ZOZOが採用しているiOSのアーキテクチャについて/zozo-tech-meetup8-ios-architecture
endoumari
0
2.8k
Dribbbleで見つけたコンセプトデザインを実装/potatotips-56-concept-design
endoumari
2
740
iOSエンジニアが悩んだUpボタンについて / 2017 potatotips 45 Up Button
endoumari
1
1.3k
URLエンコードされた Shift_JISのデコードについて / iOSDC 2017 LT SJIS decode
endoumari
1
6.2k
Other Decks in Programming
See All in Programming
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
250
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
350
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
220
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
350
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
380
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
140
Android CLI
fornewid
0
230
今さら聞けない .NET CLI
htkym
0
210
Hono + Inertia + React で LP を構築した話
oukayuka
2
130
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
680
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
1.3k
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
180
The Cost Of JavaScript in 2023
addyosmani
55
10k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
420
It's Worth the Effort
3n
188
29k
Navigating Weather and Climate Data
rabernat
0
490
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
280
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.4k
Agile that works and the tools we love
rasmusluckow
331
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Product Roadmaps are Hard
iamctodd
55
12k
Transcript
HapticΛΧελϚΠζͯ͠ΈΑ͏ גࣜձࣾZOZO ZOZOTOWN։ൃຊ෦ ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ ԕ౻ ສཬ Copyright © ZOZO,
Inc. 1
© ZOZO, Inc. גࣜձࣾZOZO ZOZOTOWN։ൃຊ෦ ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ ԕ౻ ສཬ Twitter:@re___you
#ZOZOTOWN iOSΞϓϦ։ൃ୲👩💻 #վળ׆ಈͯ͠·͢🛠 #࠷ۙങͬͯΑ͔ͬͨͷApple Watch⌚ 2
© ZOZO, Inc. 3 ࠓͷςʔϚ
© ZOZO, Inc. 4 HapticΛΧελϚΠζͯ͠ΈΑ͏
© ZOZO, Inc. 5 Apple WatchΛ͚͍ͭͯͨΒHapticͷόϦΤʔγϣϯʹؾ͍ͮͨ ☀ ىচΞϥʔϜ ಓҊͷࠨӈͷ ਐߦํ
ϚεΫ࣌ͷ iPhoneͷղআ 🔓 ώμϦɾɾɾώμϦɾɾɾώμϦ ϛΪϛΪϛΪϛΪϛΪϛΪ Χνο ͱͱΜɺͱͱΜɺͱͱΜ
© ZOZO, Inc. 6 Core HapticsొͰ Hapticͷදݱ্
© ZOZO, Inc. 7 Core Hapticsʹ͍ͭͯ
© ZOZO, Inc. 8 UIFeedbackGeneratorͱCore Haptics UIFeedbackGenerator Core Haptics •
iOS 10 ~ • ܾΊΒΕͨHapticύλʔϯͷΈ ࠶ੜՄೳ • ZOZOTOWN͓ؾʹೖΓͱ͔Ͱ ͬͯΔ • iOS 13 ~ • HapticύλʔϯΛΧελϚΠζͰ͖Δ
© ZOZO, Inc. 9 Core HapticsͷΧελϚΠζཁૉ ԻΛ࠶ੜ(.wav) ৮֮
© ZOZO, Inc. 10 Core HapticsͷΧελϚΠζͱ ৮֮ɺԻΛΈ߹Θͤͯ 1ͭͷύλʔϯΛ࡞Δ͜ͱ
© ZOZO, Inc. Core Hapticsͷׂ • Haptic ίϯςϯπͷ࡞ • CHHapticEvent:
৮֮ɺԻ • CHHapticEventParameter: CHHapticEventͷύϥϝʔλʔ • CHHapticPattern: CHHapticEventΛΈ߹Θͤͨͷ • Hapticͷ࠶ੜ • CHHapticPlayer: CHHapticPatternΛ࠶ੜ • CHHapticEngine: CHHapticPlayerΛ࡞ 11
© ZOZO, Inc. 12 Core Hapticsͷίϯςϯπߏ https://developer.apple.com/videos/play/wwdc2019/520 WWDC 2019 520
Introducing Core HapticsΑΓ
© ZOZO, Inc. 13 Core HapticsͰઃఆͰ͖Δ2छྨͷ৮֮ τϯο ϰΡʔʔʔʔʔʔʔʔ https://developer.apple.com/videos/play/wwdc2019/810 Designing
Audio-Haptic ExperiencesΑΓ
© ZOZO, Inc. 14 Core HapticsͰઃఆͰ͖Δ2छྨͷ৮֮ τϯο ϰΡʔʔʔʔʔʔʔʔ - durationΛઃఆͰ͖Δ
- duration͕0ͩͱHaptic͕࠶ੜͰ͖ͳ͍ - durationͷઃఆͳ͍ Designing Audio-Haptic ExperiencesΑΓ
© ZOZO, Inc. TransientͷCHHapticEventParameter 15 Haptic Intensity Haptic Sharpness 0
1 1 ߗ͍ײ͡ ॊΒ͔͍ײ͡
© ZOZO, Inc. ContinuousͷCHHapticEventParameter 16 Haptic Intensity Haptic Sharpness ;ΜΘΓৼಈΛײ͡Δ
͖ͬΓͱৼಈΛײ͡Δ
© ZOZO, Inc. ԻͷCHHapticEventParameter 17 • audioVolume • audioPitch •
audioPan • audioBrightness
© ZOZO, Inc. Hapticͷ࠶ੜ https://developer.apple.com/documentation/corehaptics/chhapticengine HapticίϯςϯπΛ࡞ CHHapticEngineͷυΩϡϝϯτΑΓ
© ZOZO, Inc. 19 Engine४උ class ViewController: UIViewController { //
࠶ੜதʹ։์͞Εͳ͍Α͏ʹϝϯόมʹ͢Δ private let engine: CHHapticEngine! override func viewDidLoad() { super.viewDidLoad() // engineinitviewDidLoad()ͳͲͷૣ͍λΠϛϯάͰ࡞ engine = try! CHHapticEngine(audioSession: AVAudioSession.sharedInstance()) try! engine.start() } }
© ZOZO, Inc. 20 Hapticίϯςϯπ࡞ // Transient Event let transientEvent
= CHHapticEvent(eventType: .hapticTransient, parameters: [ CHHapticEventParameter(parameterID: .hapticIntensity, value: 0.3), CHHapticEventParameter(parameterID: .hapticSharpness, value: 0.3)], relativeTime: 0.2) // Audio Event let audioResourceID = try! engine.registerAudioResource(resourceURL) let audioEvent = CHHapticEvent(audioResourceID: audioResourceID, parameters: [CHHapticEventParameter(parameterID: .audioVolume, value: 0.3)], relativeTime: 0) do { // ΠϕϯτΛͱʹHapticύλʔϯΛ࡞ let pattern = try CHHapticPattern(events: [transientEvent, audioEvent], parameters: []) } catch let error {ɾɾɾ}
© ZOZO, Inc. 21 Haptic࠶ੜ do { let pattern =
try CHHapticPattern(events: [event, audioEvent], parameters: []) let player = try engine.makePlayer(with: pattern) try player?.start(atTime: CHHapticTimeImmediate) } catch let error {ɾɾɾ}
© ZOZO, Inc. 22
© ZOZO, Inc. 23 ΧελϚΠζΛߟ͑ͯΈΔ
© ZOZO, Inc. 24 ʮΛΧʔτʹೖΕΔʯ ࣌Λߟ͑ͯΈΔ ϦϦʔε͠ͳ͍Α ͋͘·Ͱ࣮ݧͶ 👆
© ZOZO, Inc. 25 ʮΛΧʔτʹೖΕΔʯ ࣌Λߟ͑ͯΈΔ ϦϦʔε͠ͳ͍Α ͋͘·Ͱ࣮ݧͶ 👆
© ZOZO, Inc. 26 Designing Audio-Haptic Experiences https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 27 Appleͷࣄྫ https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 28 Appleͷࣄྫ Apple Watch ཉ͍͠ɾɾɾ https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 29 HapticsΛઃܭ͢Δͷʹॏཁͳ3ͭͷ͜ͱ ௐੑ ҼՌؔ ࣮༻ੑ
© ZOZO, Inc. 30 ҼՌؔ ඞཁͳ͜ͱ • ԿʹΑͬͯࣄ͕ى͖͔ͨ໌֬ʹ͢Δ ͳͥඞཁͳͷ͔ •
ҼՌ͕ؔ߹Θͳ͍ͱҧײΛײ͡Δ
© ZOZO, Inc. 31 ҼՌؔ Designing Audio-Haptic ExperiencesΑΓ ྫ) αοΧʔϘʔϧΛऽͬͨͱ͖ͷԻ͕ҧ͏ͱҧײ͕͋Δ
https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 32 ௐੑ ඞཁͳ͜ͱ • ࢹ֮(Ξχϝʔγϣϯ)ɺௌ֮(Ի)ɺ৮֮ΛҰகͤ͞Δ ͳͥඞཁͳͷ͔ •
ௐ่͕ΕΔͱମݧ͕ଛͳΘΕΔ • ྫ) αοΧʔϘʔϧΛऽΔલʹ৮͕֮ൃੜ͢Δ
© ZOZO, Inc. 33 ࣮༻ੑ ඞཁͳ͜ͱ • ΞϓϦέʔγϣϯͷମݧ͕࣮֬ʹ্͢ΔՕॴʹಋೖ͢Δ ͳͥඞཁͳͷ͔ •
HapticΛՃ͗͢͠Δͱཁ͕բΉ
© ZOZO, Inc. 34 ·ͣΧελϚΠζΛߟ͑Δ্Ͱେࣄͳ͜ͱ https://developer.apple.com/videos/play/wwdc2019/810 ৮֮ɺԻ͕ ͦΕΒ͍͜͠ͱ
© ZOZO, Inc. 35 ΛΧʔτʹೖΕΔ࣌ͷ ৮֮ͷͦΕΒ͠͞ͱʁ
© ZOZO, Inc. 36 https://developer.apple.com/videos/play/wwdc2019/810 ϙϯ ৮͕֮ͦΕΒ͍͠ͱʁ
© ZOZO, Inc. 37 https://developer.apple.com/videos/play/wwdc2019/810 ϙϯ ৮͕֮ͦΕΒ͍͠ͱʁ ୯ൃతͳ৮͕֮1
© ZOZO, Inc. 38 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ βοβοβο
© ZOZO, Inc. 39 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ βοβοβο ܧଓతͳ৮֮ or ୯ൃతͳ৮͕֮ෳճ
© ZOZO, Inc. 40 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ Ψγϟʔϯ ͺΓʔΜ ऑ͍ ~
த͘Β͍ͷ৮֮ ڧ͍৮֮
© ZOZO, Inc. 41 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ ΘΒ͔͍৮֮ Ӷ͍৮֮ ΅;ͬ Ψπϯ
© ZOZO, Inc. 42 ৮֮Իࡐ࣭ͱؔ࿈͕͋Γͦ͏
© ZOZO, Inc. 43 ͕͔͜͜Ε৮֮Λ ܾΊ͘͢Γͦ͏ ৮֮Իࡐ࣭ͱؔ࿈͕͋Γͦ͏
© ZOZO, Inc. 44 ΛΧʔτʹೖΕΔ࣌ ͲΜͳԻ͕͢ΔͩΖ͏͔ʁ
© ZOZO, Inc. 45 • ାʹٵ͍ࠐ·ΕΔγϡοͬͯԻ • ϋϯΨʔˠˠΧʔτ(͔͝?)ɺʹ͋ͨΔͱ͢Εɺΰοͱ͔ίϯ ʹͳΔ •
Ϙϑοͯײ͡ • ͷ͜͢ΕΔԻ͔ͳ͋ʮγϡοʯͬͯײ͡ • ͕མͪͨԻ͔ͳ • ϙϑͬײʢϘϑΑΓϙϑʣ • ચ୕ΧΰʹҥྨΛೖΕΔΑ͏ͳʮόαοʯͱ͍͏ײ͡ νʔϜϝϯόʔʹҙݟΛฉ͍ͯΈͨ
© ZOZO, Inc. 46 • ାʹٵ͍ࠐ·ΕΔγϡοͬͯԻ • ϋϯΨʔˠˠΧʔτ(͔͝?)ɺʹ͋ͨΔͱ͢Εɺΰοͱ͔ίϯ ʹͳΔ •
Ϙϑοͯײ͡ • ͷ͜͢ΕΔԻ͔ͳ͋ʮγϡοʯͬͯײ͡ • ͕མͪͨԻ͔ͳ • ϙϑͬײʢϘϑΑΓϙϑʣ • ચ୕ΧΰʹҥྨΛೖΕΔΑ͏ͳʮόαοʯͱ͍͏ײ͡ νʔϜϝϯόʔʹҙݟΛฉ͍ͯΈͨ
© ZOZO, Inc. 47 ୯ൃతͳ৮͕֮߹͍ͦ͏
© ZOZO, Inc. 48 ΧʔτʹೖΕΔԻΛ࠶ݱͯ͠ΈΑ͏ • ϋϯΨʔʹ͔͔ͬͨγϟπ • ΧʔτʹೖΕΔಈ࡞ ڥ
© ZOZO, Inc. 49 ΧʔτʹೖΕΔԻΛ࠶ݱͯ͠ΈΑ͏ • ϋϯΨʔʹ͔͔ͬͨγϟπ • ΧʔτʹೖΕΔಈ࡞ ڥ
γϡοɺΧϯʁ Χϯʁ
© ZOZO, Inc. 50 ԻΛݟͯΈΑ͏
© ZOZO, Inc. 51
© ZOZO, Inc. 52 • 2ͭͷԻ͕ͳ͍ͬͯΔ • খ͍͞Իͱେ͖ͳԻ • ҥࡲΕˠϋϯΨʔ
Իͨ͠Իͷܗ
© ZOZO, Inc. 53 ԻΛࢀߟʹߟ͑Δͱ • ୯ൃతͳ৮֮ • খ͘͞ॊΒ͔͍৮֮ →
1ճΑΓେ͖͘Ӷརͳ৮֮
© ZOZO, Inc. 54
© ZOZO, Inc. 55 Χʔτʹ͕ೖͬͨ ײ֮ͬΆ͍ؾ͕͢Δ
© ZOZO, Inc. 56 ৮֮Λߟ͑Δͷʹ ԻඇৗʹࢀߟʹͳΔ
© ZOZO, Inc. 57 ·ͱΊ • ΧελϚΠζʹCore HapticsΛ͏ • HapticͷઃܭʹʮҼՌؔʯʮௐੑʯʮ࣮༻ੑʯ͕ॏཁ
• ৮֮ԻΛࢀߟʹ͢ΔͱܾΊ͍͢
© ZOZO, Inc. 58 HapticΛΧελϚΠζ͠Α͏ʂ
None
None
None
None
None