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
750
インタラクションデザインと実装
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.4k
Markdownをリアルタイムに解析する
nakajijapan
4
4.2k
Firebase Authorization
nakajijapan
0
210
Intoducing Izumo
nakajijapan
1
1.8k
Practical CloudKit
nakajijapan
1
1.7k
Introducing to Ajimi - プロダクトを味見していこう
nakajijapan
0
2k
Shari
nakajijapan
1
2.6k
Japan Apple Pay Development
nakajijapan
0
240
業務で絶対必要にならない技術
nakajijapan
0
760
Other Decks in Technology
See All in Technology
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
720
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
140
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
290
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
6
670
Lexical Analysis
shigashiyama
1
150
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.4k
The Cult of Friendly URLs
andyhume
78
6k
A Philosophy of Restraint
colly
203
16k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Visualization
eitanlees
145
15k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Facilitating Awesome Meetings
lara
50
6.1k
Designing for humans not robots
tammielis
250
25k
Designing for Performance
lara
604
68k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
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.