Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
DnD in Compose @punchdrunker 2025/4/4
Slide 2
Slide 2 text
自己紹介 - 2010〜 Android / iOS Dev - Director of DroidKaigi Association - MNG - Tamagotchi Connect
Slide 3
Slide 3 text
ComposeでもDnD(ドラッグアンドドロップ)できる? - Jetpack Compose 1.6からDnDサポート追加 - 具体的には dragAndDropSource と dragAndDropTarget を使う - Viewベースと同じく ClipData でデータを渡せる
Slide 4
Slide 4 text
最小限の実装の流れ 構成 - Modifier.dragAndDropSource → ドラッグしたいもの - ClipDataで中身を渡す - Modifier.dragAndDropTarget → ドロップ先 - DragAndDropEventでイベント受け取り 📦 データの受け渡しは ClipData.newPlainText("label", "value") みたいな感じ
Slide 5
Slide 5 text
example: dragAndDropSource
Slide 6
Slide 6 text
example: dragAndDropTarget 1/2
Slide 7
Slide 7 text
example: dragAndDropTarget 2/2 onDropだけ 実装必須
Slide 8
Slide 8 text
example: DragAndDropEvent - DragAndDropEvent - mimeType - DragEvent - Offset - ClipData - …(たくさん)
Slide 9
Slide 9 text
まとめ まとめ: - ComposeでもDnDができるようになった - Modifierベースで導入も簡単 - ClipDataとDragAndDropEventの理解がポイント - 外部アプリからのDnD対応もできそうなのでやってみたい - ファイルDnDなども試す予定!
Slide 10
Slide 10 text
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 -