Claude CodeとDockerでRのVibe Coding
Vibe Codingは、コンピュータとの対話によってプログラミングを行う新しい手法です。あなたが実現したい結果を説明すれば、Claude Codeがコードを構築し、テストし、改良します。これは魔法ではなく、あなたがビジョンを示し、AIが実装を担う新しい作業方法です。このチュートリアルでは、自然言語による指示だけで実際のNBA統計ダッシュボードを構築する方法を紹介します。
主要な概念
- Claude Code - 自然言語の指示に基づいてコードを生成、デバッグ、リファクタリングするAIコーディングアシスタント
- hoopR - NBAプレイヤー統計とゲームデータに簡単にアクセスできるRパッケージ
- 反復的改良 - Vibe Codingの中核パターン:説明 → テスト → 改良 → 動作版をコミット
必要なもの
- Docker経由でVS CodeでRコーディングを完了
- GitHub DesktopとClaude Codeを使用を完了
- Docker Desktopがインストールされ、起動している
- 25〜30分
ステップ1:新しいGitHubリポジトリを作成
- GitHub Desktopを開く
- File > New Repositoryをクリック
- 詳細を記入:
- Name:
nba-dashboard - Description:
vibe codingで構築したNBA統計ダッシュボード - Local Path: 場所を選択(例:ドキュメントまたは作業フォルダ)
- Initialize this repository with a READMEにチェック
- Name:
- Create Repositoryをクリック
- 上部のPublish repositoryをクリック
- 公開したい場合はKeep this code privateのチェックを外す(オプション)
- Publish Repositoryをクリック
ローカルGitリポジトリとGitHub上のバックアップができました。
ステップ2:Docker設定をコピー
- https://github.com/gexijin/vibe にアクセス
- ARM64ユーザー向けの注意(Apple Silicon Mac): 代わりに https://github.com/gexijin/vibe/tree/ARM64 を使用
- CodeをクリックしてZipをダウンロード
- エクスプローラー(Windows)またはFinder(Mac)を開く
- Downloadフォルダでファイルを解凍
- vibeプロジェクトフォルダに移動(例:
Documents/vibe) .devcontainerフォルダを見つける- フォルダ全体をコピー(
Dockerfileとdevcontainer.jsonが含まれています) - 新しい
nba-dashboardフォルダに移動 .devcontainerフォルダを貼り付け
nba-dashboardフォルダには以下が含まれるはずです:
.devcontainer/(コピーしたフォルダ)README.md(GitHub Desktopが作成).git/(バージョン管理用の隠しフォルダ)
ステップ3:コンテナでプロジェクトを開く
- WindowsまたはMacからDocker Desktopアプリを起動。バックグラウンドで実行させる
- VS Codeを開く
- ファイル > フォルダーを開くをクリック
nba-dashboardフォルダに移動- フォルダーの選択(Windows)または開く(Mac)をクリック
- 右下に通知が表示されます:Folder contains a Dev Container configuration file
- Reopen in Containerをクリック
- 通知が表示されない場合は、左下隅の緑色のアイコンをクリックしてReopen in Containerを選択
- VS CodeがDockerコンテナをビルドします(初回は3〜5分かかります)
- ビルドステップを示す進行通知を見る
- 完了すると、緑色のアイコンにDev Container: R in Dockerと表示されます
ステップ4:Claude Codeを起動
- VS Codeでターミナル > 新しいターミナルをクリック
- これでDockerコンテナ内にいます
- このコマンドを入力してClaude Codeを起動:
claude
- 認証用のブラウザウィンドウが開きます
- Continue with GoogleまたはContinue with Emailをクリック
- Claudeアカウントでログイン(または作成)
- 認証が成功したら、VS Codeターミナルに戻る
- Claudeのウェルカムメッセージが表示されます
Claude Codeが実行中で、リクエストの準備ができました。
ステップ5:最初のVibe - NBAデータを取得
ここからが本番です。ドキュメントを調べる代わりに、実現したいことを説明するだけです。
Claude Codeで以下のように入力します:
hoopRパッケージをインストールして、現在のNBAプレイヤー統計を読み込んで。今シーズンの総得点でトップ10のプレイヤーを表示して。きれいなテーブルで表示して。
Enterを押すと、Claudeが以下の作業を自動で行います:
- hoopRパッケージをインストール
- データを読み込むRコードを生成
- トップスコアラーを表示するスクリプトを作成
- コードを実行
プレイヤー名、チーム、得点を表示する出力を確認してください。
これがVibe Codingです。ドキュメント検索も試行錯誤も不要で、説明してテストするだけです。
進捗を保存: Claudeに以下のように依頼するか、GitHub Desktopから手動でコミットします:
これらの変更をコミットして。
ステップ6:2番目のVibe - データを探索
ダッシュボードを構築する前に、データの内容を把握しましょう。
Claude Codeで以下のように入力します:
このNBAデータで利用可能な列を見せて。それから要約を作成して:プレイヤー数、チーム数、プレイヤーあたりの平均得点、最多アシストとリバウンドは誰か。
Enterを押すと、Claudeがデータセットを探索して興味深い統計を表示します。 利用可能な列を確認してください:player_name、team、points、assists、rebounds、field_goal_percentageなど。
この探索により、ダッシュボードに何を含めるかを決めることができます。
進捗を保存: Claudeに依頼してコミットするか、GitHub Desktopから手動で行います。
ステップ7:3番目のVibe - 基本的なShinyアプリを作成
対話型ダッシュボードを構築しましょう。
Claude Codeで以下のように入力します:
NBAプレイヤー統計の対話型テーブルを表示するShinyアプリをapp.Rというファイルで作成して。プレイヤー名、チーム、得点、アシスト、リバウンドの列を含めて。最小得点(0から1000)でプレイヤーをフィルタリングするスライダーを追加して。クリーンでプロフェッショナルに見えるようにして。
Enterを押すと、Claudeが完全なShinyアプリケーションを含むapp.Rを作成します。
ファイルの作成が完了するまで待ちます。
ステップ8:Shinyアプリを実行
ダッシュボードが動作するか確認しましょう。
VS Codeエディターの右上(app.Rが開いている場所)を見てください。
ドロップダウン矢印付きの▶ボタンを見つけ、ドロップダウンからRun Shiny Appを選択します。
アプリが起動すると、Open in Browserという通知が表示されます。 Open in Browserをクリックすると、NBAダッシュボードがWebブラウザで開きます。
得点スライダーを動かしてみてください。テーブルがリアルタイムでフィルタリングされます。 プレイヤーデータをスクロールして確認します。 アプリが正常に動作したら、変更をコミットします。
何か問題が発生した場合は、エラーメッセージをコピーしてClaudeに貼り付け、修正を依頼してください。
ステップ9:4番目のVibe - 可視化を追加
テーブルは便利ですが、グラフはより効果的にストーリーを伝えます。
Claude Codeで以下のように入力します:
テーブルの下に得点でトップ15のプレイヤーを表示する棒グラフを追加して。各プレイヤーに異なる色を使用して。また、フィルタリングされたすべてのプレイヤーの得点とアシストの関係を示す散布図も追加して。
Enterを押すと、Claudeがapp.Rを可視化コードで更新します。
Run Shiny Appを再度クリックしてアプリをリロードし、ブラウザを更新してください。
カラフルな棒グラフと散布図が表示されます。 スライダーを動かすと、すべての可視化が連動して更新されます。
これがVibe Codingの実践です。機能を説明し、テストし、改良を重ねます。
ステップ10:5番目のVibe - チームフィルターを追加
チーム選択機能でダッシュボードをより対話的にしましょう。
Claude Codeで以下のように入力します:
チームでプレイヤーをフィルタリングするドロップダウンメニューを追加して。上部に配置して。チームを選択すると、そのチームのプレイヤーだけを表示して。全員を表示する「All Teams」オプションも含めて。
Enterを押すと、Claudeがチームフィルターを追加します。 ブラウザを更新して、ドロップダウンをテストしてください。 Lakers、Warriors、Celticsなど異なるチームを選択すると、テーブルとグラフが各チームに応じて更新されます。
対話しながらプロフェッショナルなダッシュボードを構築しています。
ステップ11:確認してコミット
コミットする前に、Claudeが構築したものを確認しましょう。
- VS Codeエクスプローラーで
app.Rをクリックして開く - コードをざっと見る—UIレイアウト、サーバーロジック、プロッティングコードに注目
- 全ての行を理解する必要はありませんが、構造の感覚をつかむ
- GitHub Desktopを開く
app.Rが新しいファイルとしてリストされている- 右パネルにすべてのコードが緑色で表示(新規追加)
- 左下のSummaryフィールドに入力:
チームフィルターと可視化付きのNBAダッシュボードを作成
- Commit to mainをクリック
- Push originをクリックしてGitHubにバックアップ
最初の動作バージョンを保存しました!
ステップ12:反復して改善
Vibe Codingは反復によって真価を発揮します。説明するだけで機能を追加してみましょう。
Claudeへのリクエスト例:
- 「プレイヤー名を入力してジャンプできる検索ボックスを追加して」
- 「ドロップダウンのチーム名の横にチームロゴを表示して」
- 「選択したチームの試合ごとの得点トレンドを示す折れ線グラフを追加して」
- 「列ヘッダーをクリックしてソートできるテーブルにして」
- 「散布図にホバーするとプレイヤー名を表示するツールチップを追加して」
各機能を追加した後の流れ:
- ブラウザでテスト
- うまくいったら、GitHub Desktopでコミット
- エラーが出たら、エラーメッセージをClaudeに伝えて修正を依頼
- 修正されたら、動作するバージョンをコミット
重要な原則:
- 実装ではなく結果を説明する - 「arrange()とhead()を使って」ではなく「トップスコアラーを見せて」と言う
- 素早く反復する - テスト → 改良 → テスト → 改良
- 動作するバージョンをコミットする - 新しい機能を試す前に各成功を保存
- 失敗を受け入れる - Claudeのコードが動かなくても、エラーを説明して修正を依頼するだけ
- 主導権を維持する - 何の機能を追加するか、優先順位、完成の判断はあなたが決める
毎回、説明 → テスト → 改良 → コミットのパターンに従いましょう。
次のステップ
- 自分の領域に適用する - 研究、ビジネス、趣味のデータにVibe Codingを使用
- 他のパッケージを試す - フットボール用の
nflfastRやサッカー用のworldfootballRをClaudeに依頼 - 質問して学ぶ - Claudeがコードを生成したら、「この関数は何をするか説明して」と聞いてRを学ぶ
- ダッシュボードを共有する - shinyapps.ioにデプロイする方法をClaudeに聞く
- Vibe Codingについて詳しく学ぶ - IBMのガイドでこの手法について深く理解する
トラブルシューティング
- hoopRインストールが失敗する - インターネット接続を確認してください。パッケージはウェブからデータをダウンロードします。Rターミナルで
install.packages("hoopR")を実行して詳細なエラーメッセージを確認してください。 - Shinyアプリが起動しない - Shiny拡張機能がインストールされていることを確認してください(VS Code拡張機能で「Posit.shiny」を検索)。ターミナルのエラーメッセージをClaudeに貼り付けて修正を依頼してください。
- データが表示されない - hoopRパッケージはライブデータを取得します。NBAシーズンが始まっていない場合、データが限られている可能性があります。サンプルデータまたは過去のシーズンデータを使うようClaudeに依頼してください。
- Claudeが間違える - 問題ありません。エラーメッセージをコピーしてClaudeに貼り付け、「このエラーを修正して」と依頼してください。Vibe Codingには反復とデバッグが含まれます。
- GitHubにプッシュできない - GitHub Desktopにログインし、リポジトリを公開済みであることを確認してください(ステップ1)。インターネット接続も確認してください。
ワークフロー概要
このチュートリアルでは、複数の技術を統合したワークフローを構築しました:
- GitHub Desktop - 視覚的なインターフェースでのバージョン管理(リポジトリ作成、コミット、プッシュ)
- Dockerコンテナ - すべての依存関係がプリインストールされた独立したR環境
- VS Code - Dockerコンテナに接続するコードエディター
- Claude Code - 自然言語の説明からRとShinyコードを生成するAIアシスタント
- hoopRパッケージ - シンプルなAPIでNBAデータにアクセスできるデータソース
- Shinyフレームワーク - Rで対話型Webアプリケーションを作成するフレームワーク
魔法は単一のツールにあるのではなく、Vibe Codingによって実現したいことを説明し、素早く反復できる点にあります。空のプロジェクトから動作するスポーツダッシュボードまで、手動で1行もコードを書かずに30分で完成させました。
日常のワークフロー
初期セットアップ後の日々のVibe Codingの流れは以下の通りです:
- Docker Desktopを起動する - アプリを起動し、緑色のステータス表示を待つ
- VS Codeを開く - プロジェクトを開き、必要に応じてコンテナで再度開く
- Claude Codeを起動する - ターミナルで
claudeと入力 - 目標を説明する - 「…する機能を追加して」または「…のバグを修正して」
- 変更をテストする - アプリを実行し、正常に動作するか確認
- 改良またはコミットする - エラーが出たら修正を説明。動作したらGitHub Desktopでコミット
- 定期的にプッシュする - Push originをクリックしてGitHubにバックアップ
練習を重ねるほど、実現したいことを効果的に説明できるようになります。Vibe Codingはスキルです。どのような説明が最も効果的か、大きなアイデアをテスト可能な単位に分割する方法を学んでいきます。
Steven Geが2025年12月7日に作成。