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
870
インタラクションデザインと実装
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
7
3.7k
Markdownをリアルタイムに解析する
nakajijapan
5
4.3k
Firebase Authorization
nakajijapan
0
250
Intoducing Izumo
nakajijapan
1
1.9k
Practical CloudKit
nakajijapan
1
1.7k
Introducing to Ajimi - プロダクトを味見していこう
nakajijapan
0
2.2k
Shari
nakajijapan
1
2.7k
Japan Apple Pay Development
nakajijapan
0
260
業務で絶対必要にならない技術
nakajijapan
0
810
Other Decks in Technology
See All in Technology
GigaViewerにおけるMackerel APM導入の裏側
7474
0
400
[JAWS-UG 栃木 #2]AWS FISはドSなのか?システムに試練を与えて強くする!
sh_fk2
1
270
AIのための オンボーディングドキュメントを整備する - hirotea
hirotea
9
2.2k
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3.1k
AIエージェントデザインパターンの選び方
almondo_event
0
120
Introduction to Bill One Development Engineer
sansan33
PRO
0
230
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
360k
Rebase エンジニアリング組織の現状とこれから
rebase_engineering
0
130
スプリントゴールで価値を駆動しよう
takufujii
3
1.6k
ソフトウェアは捨てやすく作ろう/Let's make software easy to discard
sanogemaru
10
5.4k
テストを実施する前に考えるべきテストの話 / Thinking About Testing Before You Test
nihonbuson
PRO
12
1.9k
Swiftは最高だよの話
yuukiw00w
2
270
Featured
See All Featured
Practical Orchestrator
shlominoach
187
11k
4 Signs Your Business is Dying
shpigford
183
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
We Have a Design System, Now What?
morganepeng
52
7.6k
What's in a price? How to price your products and services
michaelherold
245
12k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Fireside Chat
paigeccino
37
3.5k
Music & Morning Musume
bryan
47
6.5k
A better future with KSS
kneath
239
17k
How GitHub (no longer) Works
holman
314
140k
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.