Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DnD in Compose
Search
punchdrunker
April 04, 2025
0
270
DnD in Compose
punchdrunker
April 04, 2025
Tweet
Share
More Decks by punchdrunker
See All by punchdrunker
Kotlin2.0以降の新機能
punchdrunker
0
24
what's new in Material Design で気になったトピック
punchdrunker
1
620
7カ国語に対応したサービスでの翻訳管理システムの改善事例
punchdrunker
1
1.3k
Java Bytecode Vertical Tasting
punchdrunker
2
1.4k
getting started with dark theme
punchdrunker
2
1.1k
Practical Activity Transition in Android
punchdrunker
0
1.2k
今時のProgress indicator / Replacing ProgressDialog with ProgressBar
punchdrunker
0
710
レビュー評価4.7の秘密 / The Secret To A Better Reputation
punchdrunker
2
2.1k
Dynamic Feature Modules 入門
punchdrunker
2
2.7k
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Code Reviewing Like a Champion
maltzj
527
40k
[SF Ruby Conf 2025] Rails X
palkan
0
470
Unsuck your backbone
ammeep
671
58k
A designer walks into a library…
pauljervisheath
210
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Become a Pro
speakerdeck
PRO
30
5.7k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
How GitHub (no longer) Works
holman
316
140k
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
-