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
150
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
570
7カ国語に対応したサービスでの翻訳管理システムの改善事例
punchdrunker
1
1.1k
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
640
レビュー評価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
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Into the Great Unknown - MozCon
thekraken
36
1.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Automating Front-end Workflow
addyosmani
1369
200k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
51
2.4k
Facilitating Awesome Meetings
lara
54
6.3k
Bash Introduction
62gerente
611
210k
Code Review Best Practice
trishagee
67
18k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
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
-