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
インタラクションデザインと実装
Search
nakajijapan
October 10, 2016
Technology
1
780
インタラクションデザインと実装
shibuya.swift #5
http://shibuya-swift.connpass.com/event/39841/
nakajijapan
October 10, 2016
Tweet
Share
More Decks by nakajijapan
See All by nakajijapan
サービスにおけるDesign Systemの構築
nakajijapan
6
3.5k
Markdownをリアルタイムに解析する
nakajijapan
4
4.3k
Firebase Authorization
nakajijapan
0
230
Intoducing Izumo
nakajijapan
1
1.8k
Practical CloudKit
nakajijapan
1
1.7k
Introducing to Ajimi - プロダクトを味見していこう
nakajijapan
0
2.1k
Shari
nakajijapan
1
2.6k
Japan Apple Pay Development
nakajijapan
0
260
業務で絶対必要にならない技術
nakajijapan
0
790
Other Decks in Technology
See All in Technology
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1k
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
890
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
1
110
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
740
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
1
1.1k
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
2
880
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
110
マルチモーダル理解と生成の統合 DeepSeek Janus, etc... / Multimodal Understanding and Generation Integration
hiroga
0
360
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
7
1k
データ基盤の成長を加速させる:アイスタイルにおける挑戦と教訓
tsuda7
3
650
スクラムのイテレーションを導入してチームの雰囲気がより良くなった話
eccyun
0
110
自動テストの世界に、この5年間で起きたこと
autifyhq
10
7.1k
Featured
See All Featured
Designing for Performance
lara
604
68k
Done Done
chrislema
182
16k
Thoughts on Productivity
jonyablonski
69
4.5k
Embracing the Ebb and Flow
colly
84
4.6k
Bash Introduction
62gerente
610
210k
Unsuck your backbone
ammeep
669
57k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
KATA
mclloyd
29
14k
A Tale of Four Properties
chriscoyier
158
23k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Transcript
TIJCVZBTXJGU !OBLBKJKBQBO ΠϯλϥΫγϣϯ σβΠϯͱ࣮
huin ͞Μ גࣜձࣾFablic͞Μ ʹײँʂ
@nakajijapan GMO PEPABO inc. Principal Engineer iOS / Web /
OS X About Me Daichi Nakajima
ϋϯυϝΠυ࡞Λ ചΕΔɺങ͑Δɻ ࠃ࠷େڃͷ ϋϯυϝΠυϚʔέοτ
NKJMultiMovieCaptureView NKJMovieComposer NKJPagerViewController PhotoSlider Teiten GitHub Sengiri Shari frustration.me Kazaguruma
None
Apple Pay JP launch partner
None
None
ΠϯλϥΫγϣϯ ͱ࣮
ΠϯλϥΫγϣϯ σβΠϯͱ
ΠϯλϥΫγϣϯ
ΠϯλϥΫγϣϯ ૬ޓ࡞༻ wikipedia
None
None
Interface
Interface
ΠϯλϥΫγϣϯ ͓ޓ͍͕ ίϛϡχέʔγϣϯ͢Δ͜ͱ wikipedia
ΠϯλϥΫγϣϯσβΠϯ ͓ޓ͍͕ ίϛϡχέʔγϣϯ͢Δ͜ͱ wikipedia खॿ͚
Ԡ༻ඒज़ ʙΠϯλϥΫγϣϯσβΠϯͷڭՊॻʙ
Ԡ༻ඒज़ͱ ඒज़Λ༻ߦࣄͳͲ Ԡ༻͢Δ͜ͱ
None
ඒज़
ඒज़ͱ ࢹ֮ʹΑͬͯͱΒ͑Δ͜ ͱΛతͱͯ͠දݱ͞Ε ͨܗܳज़ͷ૯শ wikipedia
None
wදݱऀ͕͍͑ͨ͜ͱΛؑऀʹ͑Δ wܗΛΒΕͨͷ wֆըɺூࠁɺݐஙɺܳ ඒज़ͱ
Ԡ༻ඒज़ͱ ඒज़Λ༻ߦࣄͳͲ Ԡ༻͢Δ͜ͱ wikipedia
None
Ԡ༻ඒज़ͱ ؾ࣋ͪΑͬͯ͘Β͏ͨ Ίʹศརʹ͢Δ͜ͱ wikipedia
࣮༻తͰ͋Δ͜ͱ
None
ਓ
•ඪΛཱͯΔ •࣮ߦ͢Δ •ධՁ͢Δ ਓؒͷߦಈαΠΫϧ
ҙਤ ܗ ߦಈ ܾఆ ࣮ߦ ֮ ղऍ ධՁ ϊʔϚϯ ͷࣣஈ֊
Ϟσϧ
ҙਤ ܗ ߦಈ ܾఆ ࣮ߦ ֮ ղऍ ධՁ ϊʔϚϯ ͷࣣஈ֊
Ϟσϧ ΑΓখ͍ͯ͘͞͠ ͘͜ͱ͕͍͢ ͞ͷۙಓ
☺
վળ
Case Study
Sign up
Feedback
•ϩάΠϯใͷೖྗΛ͠ͳ͚Ε͍͚ͳ͍ •߲ʹ༷ʑͳ੍ݶ͕͋Δ •શͯਖ਼͍͠ใʹͳΒͳ͍ͱSign upͰ͖ͳ ͍ Sign up
None
None
•ೖྗେมɺ࠷େݶܰݮͤ͞Δ •ϦΞϧλΠϜʹదͳใΛೖྗͤ͞Δ Α͏༠ಋ͠ɺ࣌ؒॖ •ϧʔϧΛ໌֬ʹͯ͠ঢ়ଶΛ֮ͤ͞Δ Sign up
Sign up
Sign up let selector = #selector(self.existsMinneID(_:)) NSObject.cancelPreviousPerformRequestsWithTarget(self, selector: selector, object:
cell) • UITextFieldDelegate#textFieldDidChange • Connection
Cart
Keep a context
• ࡏݿΛมߋͰ͖Δ Cart
None
•ίϯςΩετΛҡ࣋͢Δ •ͳΜͷ࡞ΛબΜͩͷ͔ •͙͢ʹࢦఆͷࡏݿʹมߋͰ͖Δ •ෆՄࢹτϦΨʔ •શମΛ֬ೝͰ͖ΔΑ͏ʹͰ͖Δ Cart
Implementation
Implementation • Container View Controller • presentViewControllerΛಠ࣮ࣗ͢Δ • No UIViewControllerTransitioningDelegate!
• ΞχϝʔγϣϯͷதؒͰը໘ΛࢭΊ ͔ͨͬͨͷͰར༻͍ͯ͠ͳ͍
Implementation • Shari • https://github.com/nakajijapan/Shari
Scroll View
Prevent mistakes
• Scroll ViewʹΧςΰϦͷҰཡ͕ଘࡏ • Կճ͔εϫΠϓ͠ͳ͚Ε͍͚ͳ͍߹͕ ͋Δ • ը໘ྖҬʹݶք͕͋Δ • ؆୯ʹྖҬΛ͛ΔΘ͚ʹ͍͔ͳ͍
Scroll View
None
Implementation • εϫΠϓޙ̍ඵεϫΠϓྖҬ͕͛Δ • ̍ඵҎʹεϫΠϓ͕͋ΕΩϟϯηϧ • ͳ͚ΕεϫΠϓྖҬ͕Δ scroll view scroll
view 4XJQF scroll view scroll view
Implementation
Implementation let selector = #selector(self.unlockUserInteractionWithScrollView(_:)) NSObject.cancelPreviousPerformRequestsWithTarget(self, selector: selector, object: scrollView)
NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: selector, userInfo: nil, repeats: false) • Lazy Execution and Cancel
·ͱΊ
ΠϯλϥΫγϣϯσβΠϯ ͓ޓ͍͕ ίϛϡχέʔγϣϯ͢Δ͜ͱ wikipedia खॿ͚
ΠϯλϥΫγϣϯσβΠϯ ࣮༻తͰ͋Δ͜ͱ
•ඪΛཱͯΔ •࣮ߦ͢Δ •ධՁ͢Δ ਓؒͷߦಈαΠΫϧ
• ঢ়گΛ͑ͯϑΟʔυόοΫΛఏڙ͢Δ • ίϯςΩετΛҡ࣋͢Δ • ϛεΛࣄલʹ͙ ·ͱΊ
Thanks.