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
InterApp DnD in iOS 9
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
matuyuji
September 30, 2015
Programming
2.4k
0
Share
InterApp DnD in iOS 9
iOS 9 の split view でアプリ間でのドラッグ&ドロップのデモアプリの紹介と実装についての解説
matuyuji
September 30, 2015
More Decks by matuyuji
See All by matuyuji
Emacs × Touch Bar
matuyuji
2
1.9k
ARKit + SceneKitでMinesweeperを作ってみた
matuyuji
1
820
Go + QtでiOS アプリ開発
matuyuji
0
420
@_specialized なお話し
matuyuji
0
510
Xcode Souce Code Extensionを使ってみた
matuyuji
0
440
Codebeatを 試してみた
matuyuji
0
810
React Nativeで UIコンポーネントをつくる
matuyuji
0
1.1k
React Nativeを使ってみた
matuyuji
0
1.4k
SwiftでLens
matuyuji
1
1.1k
Other Decks in Programming
See All in Programming
Agent Skills を社内で育てる仕組み作り
jackchuka
1
2.4k
CSC307 Lecture 17
javiergs
PRO
0
240
Inside Stream API
skrb
1
160
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
210
~ 秘伝のタレ化した『神スプシ』と戦う ~ 関数型パラダイムで壊れない仕組みへ
h0r15h0
1
130
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
370
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
2.3k
関係性から理解する"同一性"の型用語たち
pvcresin
2
530
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
150
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
240
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
150
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
1.8k
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
210
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
150
Designing for Performance
lara
611
70k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
390
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Crafting Experiences
bethany
1
160
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Facilitating Awesome Meetings
lara
57
6.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
380
Ruling the World: When Life Gets Gamed
codingconduct
0
240
Transcript
%O%JOJ04 UIF&SBPG.VMUJUBTLJOH !NBUVZVKJ ؔϞόΠϧΞϓϦݚڀձ
!NBUVZVKJ TBGYEFWCMPHTQPUKQ
TBGYJPTEOEEFNP
.VMUJUBTLJOH 4MJEFPWFS 4QMJUWJFX 1JDUVSFJOQJDUVSF
Two foreground apps
4QMJUWJFXBMMPXTVTFSTUP JOUFSBDUCFUXFFOUXPBQQT
%O%CFUXFFO UXPBQQT
UPVDIFT.PWFE (-100, 400) (607, 400) (-507, 0) (507, 0) %SBHFWFOUTDPOUJOVFPOUIFPVUFSPGUIFXJOEPXPGBQQ
*OUFSBQQ%O% 4PVSDF"QQ %FTU"QQ touchesBegan touchesMoved touchesEnded 4IBQFJOGP $PPSEJOGP *OOFSPSPVUFS
*1$ w 1BTUFCPBSE w $'.FTTBHF1PSU X"QQ(SPVQT*% w .BDI1PSU mach_msg_send
w %BSXJO/PUJpDBUJPO w 4IBSFE6TFS%FGBVMUT X"QQ(SPVQT*%
1BTUFCPBSE 5JNFS UPPMBUFUPSFDFJWF6*1BTUFCPBSE$IBOHFE/PUJpDBUJPO let p = touches.first!.locationInView(view) myPasteboard.string = "M,\(Int(p.x)),\(Int(p.y))"
dispatch_source_set_timer(timer, now, USEC_PER_SEC * 50, 0) dispatch_source_set_event_handler(timer) { () -> Void in if let pb = UIPasteboard(name: otherID, create: false) { : } } dispatch_resume(timer) 4PVSDF"QQ VTFTOBNFEQBTUFCPBSE %FTU"QQ LOPXTTPVSDFBQQ`TQBTUFCPBSEOBNF
3FGFSFODFT w "EPQUJOH.VMUJUBTLJOH&OIBODFNFOUTPOJ1BE IUUQTEFWFMPQFSBQQMFDPNMJCSBSZQSFSFMFBTFJPTEPDVNFOUBUJPO8JOEPXT7JFXT$PODFQUVBM "EPQUJOH.VMUJUBTLJOH0OJ1BEJOEFYIUNM w *OUFSQSPDFTTDPNNVOJDBUJPOPOJ04XJUI.BDINFTTBHFT IUUQEEFWJMMFNFJOUFSQSPDFTTDPNNVOJDBUJPOPOJPTXJUINBDINFTTBHFT w
*OUFS1SPDFTT$PNNVOJDBUJPO IUUQOTIJQTUFSDPNJOUFSQSPDFTTDPNNVOJDBUJPO