
Jetpack Composeの核心を担う androidx.compose.foundation。
そのサンプルコード群は、Googleのエンジニアが「正しい書き方」を提示している宝庫です。
今回は、これらを実務での利用頻度とモダンな設計(2026年現在のトレンド)に基づいてグループ分けしました。
🧑🏻💻 1. インタラクション & ジェスチャー(操作感のキモ)
ユーザーが画面に触れた時の挙動を制御する、最も重要なグループです。
- ClickableSamples.kt:タップ反応の基本。リップルエフェクトなどの視覚効果も。
- AnchoredDraggableSample.kt:スワイプで閉じるUIやモーダルなど、特定の「固定位置」へ吸着するドラッグ操作。
- TapGestureSamples.kt:ダブルタップ、長押し、複数指タップなど。
- InteractionSourceSample.kt:ボタンが「押されているか」などの状態をリアルタイムに監視し、UIを変化させる方法。
- DraggableSamples.kt:水平・垂直方向への単純な引きずり操作。
- ToggleableSamples.kt:チェックボックスやスイッチなどのON/OFF切り替え挙動。
- SelectableSamples.kt:ラジオボタンなど、リストの中から一つを選択する挙動。
- FocusableSample.kt:キーボードやリモコン操作に必要な「フォーカス」の管理。
- HoverableSample.kt:マウスカーソルが乗った時(ホバー)の反応。
- DragGestureDetectorSamples.kt:より低レベルなドラッグ開始・終了の検知。
- Draggable2DSamples.kt:縦横自由に動かせるドラッグ。
- TransformableSample.kt:ピンチイン・アウト(ズーム)や回転。
- TransformGestureSamples.kt:ズーム・回転のジェスチャー検知に特化。
- CustomTouchSlopSample.kt:ドラッグと見なす最小の移動距離をカスタマイズ。
🧑🏻💻 2. スクロール & リスト(データの表示)
効率的にスクロールさせるためのテクニック集です。
- LazyDslSamples.kt:
LazyColumnやLazyRowの基本。動的なリスト生成。 - PagerSamples.kt:ページをめくるような左右(または上下)のスワイプUI。
- LazyGridSamples.kt:等幅で並ぶ格子状レイアウト。
- ScrollableSamples.kt:Modifierを通じた基本的なスクロール制御。
- SnapFlingBehaviorSample.kt:スクロールを止めたときに、ピタッと要素の中央で止まる挙動。
- LazyStaggeredGridSamples.kt:不揃いな高さのグリッド(Pinterest風)。
- LazyLayoutSamples.kt:完全に独自仕様のリストレイアウトを作るための基盤。
- ScrollableAreaSamples.kt:スクロールバーや、特定のエリアのみをスクロール可能にする方法。
- Scrollable2DSample.kt:縦横両方向にスクロールできる領域。
- ScrollerSamples.kt:単純なコンテナにスクロール機能を追加。
🧑🏻💻 3. テキスト & 入力(文字の表示と編集)
2026年のトレンドである「次世代入力」が含まれます。
- BasicTextFieldSamples.kt:テキスト入力の基本実装。
- SelectionSample.kt:テキストを選択可能にする範囲の指定。
- BasicTextFieldValueSample.kt:カーソル位置や選択範囲など、入力状態の詳細制御。
- ClickableTextSample.kt:テキスト内の特定の部分(リンクなど)をクリック。
- StyleSamples.kt:フォントや色、行間などのスタイル適用。
- TextAutoSizeSample.kt:枠のサイズに合わせて文字サイズを自動調整。
- BasicMarqueeSamples.kt:電光掲示板のように文字を横に流す。
- InlineTextContentSample.kt:テキストの中にアイコンなどの画像を埋め込む。
- ContextMenuSample.kt:右クリックや長押しで出るメニュー。
- BackgroundTextMeasurementSample.kt:表示前にテキストのサイズをバックグラウンドで計測する高度な最適化。
- HandwritingDetectorSample.kt:スタイラスペン等による手書き入力検知。
🧑🏻💻 4. 描画 & 視覚効果(見た目のクオリティ)
- CanvasSamples.kt:円や四角、パスを使った自由な図形の描画。
- BorderSamples.kt:角丸や点線などの枠線。
- DrawBackgroundSamples.kt:図形やグラデーションを使った背景描画。
- ImageSamples.kt:画像の表示と、フィルタなどの加工。
- MagnifierSamples.kt:虫眼鏡エフェクト(拡大鏡)。
- IndicationSamples.kt:クリック時のビジュアルフィードバック(波紋など)の自作。
- DarkThemeSample.kt:ダークモード・ライトモードの切り替え挙動。
- AndroidExternalSurfaceSamples.kt:動画再生などに使うSurface(SurfaceView/TextureView)の統合。
🧑🏻💻 5. 高度なシステム統合・同期
- DragAndDropSamples.kt:他アプリ間でのファイル・データのドラッグ&ドロップ。
- ReceiveContentSamples.kt:キーボードやコピペからの画像・リッチデータの受け取り。
- BringIntoViewSamples.kt:特定の要素が画面内に収まるように自動スクロールさせる。
- OverscrollSample.kt:スクロール端でのバウンド効果やストレッチのカスタム。
- ProgressSemanticsSamples.kt:アクセシビリティ(読み上げなど)に対応した進捗バーの実装。
- MutatorMutexSamples.kt:スクロールとアニメーションが競合しないようにするための同期制御。
🧑🏻💻 これだけは読んでおくべきトップ5
1. ClickableSamples.kt(すべての基本)
2. LazyDslSamples.kt(リスト表示の要)
3. AnchoredDraggableSample.kt(モダンなUIに必須)
4. BasicTextFieldSamples.kt(入力の実装)
5. CanvasSamples.kt(カスタムUIの第一歩)
ぐらいか。
Related Categories : Android・AndroidStudio・Developmemt・JetpackCompose・KMP・Kotlin・Kotlin Multiplatform Mobile