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
DnD in Compose
Search
punchdrunker
April 04, 2025
0
180
DnD in Compose
punchdrunker
April 04, 2025
Tweet
Share
More Decks by punchdrunker
See All by punchdrunker
what's new in Material Design で気になったトピック
punchdrunker
1
580
7カ国語に対応したサービスでの翻訳管理システムの改善事例
punchdrunker
1
1.2k
Java Bytecode Vertical Tasting
punchdrunker
2
1.3k
getting started with dark theme
punchdrunker
2
1k
Practical Activity Transition in Android
punchdrunker
0
1.2k
今時のProgress indicator / Replacing ProgressDialog with ProgressBar
punchdrunker
0
650
レビュー評価4.7の秘密 / The Secret To A Better Reputation
punchdrunker
2
2k
Dynamic Feature Modules 入門
punchdrunker
2
2.6k
how to get started in developing Android app
punchdrunker
5
4.2k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
840
Into the Great Unknown - MozCon
thekraken
39
1.8k
We Have a Design System, Now What?
morganepeng
52
7.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
25
2.8k
Practical Orchestrator
shlominoach
188
11k
The Language of Interfaces
destraynor
158
25k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Fireside Chat
paigeccino
37
3.5k
Code Review Best Practice
trishagee
68
18k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Producing Creativity
orderedlist
PRO
346
40k
Transcript
DnD in Compose @punchdrunker 2025/4/4
自己紹介 - 2010〜 Android / iOS Dev - Director of
DroidKaigi Association - MNG - Tamagotchi Connect
ComposeでもDnD(ドラッグアンドドロップ)できる? - Jetpack Compose 1.6からDnDサポート追加 - 具体的には dragAndDropSource と dragAndDropTarget
を使う - Viewベースと同じく ClipData でデータを渡せる
最小限の実装の流れ 構成 - Modifier.dragAndDropSource → ドラッグしたいもの - ClipDataで中身を渡す - Modifier.dragAndDropTarget
→ ドロップ先 - DragAndDropEventでイベント受け取り 📦 データの受け渡しは ClipData.newPlainText("label", "value") みたいな感じ
example: dragAndDropSource
example: dragAndDropTarget 1/2
example: dragAndDropTarget 2/2 onDropだけ 実装必須
example: DragAndDropEvent - DragAndDropEvent - mimeType - DragEvent - Offset
- ClipData - …(たくさん)
まとめ まとめ: - ComposeでもDnDができるようになった - Modifierベースで導入も簡単 - ClipDataとDragAndDropEventの理解がポイント - 外部アプリからのDnD対応もできそうなのでやってみたい
- ファイルDnDなども試す予定!
Resources - actual code: https://github.com/punchdrunker/compose-drag-and-drop/blob/main/app/src/ main/java/com/example/myapplication/MainActivity.kt - overview: https://developer.android.com/reference/kotlin/androidx/compose/foundation/d raganddrop/package-summary
-