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
740
インタラクションデザインと実装
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.6k
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
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
27
12k
オニオンアーキテクチャで実現した 本質課題を解決する インフラ移行の実例
hryushm
14
3k
端末が簡単にリモートから操作されるデモを通じて ソフトウェアサプライチェーン攻撃対策の重要性を理解しよう
kitaji0306
0
170
カメラを用いた店内計測におけるオプトインの仕組みの実現 / ai-optin-camera
cyberagentdevelopers
PRO
1
120
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
3
200
CyberAgent 生成AI Deep Dive with Amazon Web Services / genai-aws
cyberagentdevelopers
PRO
1
480
IaC運用を楽にするためにCDK Pipelinesを導入したけど、思い通りにいかなかった話
smt7174
1
110
日経電子版におけるリアルタイムレコメンドシステム開発の事例紹介/nikkei-realtime-recommender-system
yng87
1
500
プロダクトエンジニアが活躍する環境を作りたくて 事業責任者になった話 ~プロダクトエンジニアの行き着く先~
gimupop
1
480
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
120
10分でわかるfreee エンジニア向け会社説明資料
freee
18
520k
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
Featured
See All Featured
Navigating Team Friction
lara
183
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.8k
Embracing the Ebb and Flow
colly
84
4.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Typedesign – Prime Four
hannesfritz
39
2.4k
Speed Design
sergeychernyshev
24
570
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
328
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
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.