4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Figma MakeでWebアプリを爆速開発できるのか試してみた

Last updated at Posted at 2025-06-28

はじめに

「AIを使えばWebアプリが短時間で作れる」
そんな時代が、ついに現実のものになってきました。

今回は、「Figma Makeがすごいらしい!」という噂を耳にして、モバイルエンジニアの私がWeb開発に挑戦してみた体験記です。

対象読者:

  • Figma MakeやClaude Codeに関心のある方
  • AIを活用したWebアプリ開発の流れを知りたい方

私のスペック:

  • モバイルアプリ開発歴:7〜8年
  • Web開発経験:ほぼゼロ(趣味で少し触れた程度)

仕様書を書く

まずはじめに、どんなアプリを作るか考えます。
ChatGPTと会話を重ねながら、次のような仕様書をまとめました。

# 🎮 タイピングゲームモード UI仕様(英語学習アプリ用)

英語ライティング学習アプリにおいて、ゲーム感覚で没入できる**タイピングゲームモード**のUIを設計します。ユーザーが英語の文を正確にタイピングする体験を通じて、英語力とタイピングスキルを同時に向上させられるようにします。

## 🎯 目的

- 英作文力とタイピングスキルの同時向上  
- 写経スタイルによる反復学習の支援  
- 入力の正確さに対する直感的な視覚フィードバック  
- ゲーム的なUIによる学習へのモチベーション向上  

## ✨ デザイン要素

- **フォント**:等幅フォント(例:Courier New、Monaco)  
- **文字の色分け**:  
  - ✅ 正しい入力:緑 `#22c55e`  
  - ❌ 間違った入力:赤 `#ef4444`  
  - ⏳ 未入力の文字:グレー `#9ca3af`  
  - ⌨️ カーソル:点滅する青 `#3b82f6`  
- **背景色**:白または薄いグレー  
- **アニメーション**:文字状態の変化時にスムーズなトランジション(例:正解時に緑色でフラッシュ)  

## 🧩 機能とインタラクション

- 画面上部に日本語のお題文(今日のお題)を表示  
- その下に正解となる英語文を表示  
- ユーザーは英語文を下部のタイピングエリアで入力  
- 入力状況はリアルタイムで色分け表示:  
  - 正解文字 → 緑に変化  
  - 不正解文字 → 赤で表示(次の文字に進まない)  
- 対応キーボード操作:  
  - 英字・記号・スペース・バックスペース  
- 画面下部に2つのボタンを配置:  
  - `次の文へ` → 新しいお題を読み込み  
  - `もう一度` → 現在のお題をリセットして再挑戦  

Figma Makeでプロトタイプを生成

この仕様書をFigma Makeに入力すると、わずか1分足らずでプロトタイプが自動生成されました(今回は英語でプロンプトを入力しましたが、日本語でも問題なく使えそうです)。

image.png

見た目が整っているだけでなく、なんとUIが実際に操作可能な状態で動作します。

image.png

画面上部には「Preview」と「Code」のタブがあり、Codeタブをクリックすると自動生成されたソースコードが確認できます。

image.png

ローカル開発環境を構築

プロトタイプを動かすだけならFigma Make上でも十分ですが、本格的な開発を行うにはローカル環境とGitHubでのバージョン管理が欠かせません。

Figma Makeでは、生成されたコード一式をzipファイルとしてダウンロードできるので、次の手順でローカル環境を整えました:

  1. Figma Makeからソースコード(zip)をダウンロード
  2. 解凍して開発ディレクトリに配置
  3. Claude Codeを起動し、claude init を実行
  4. Claudeに依頼して、開発環境を整備

この手順を終えると、npm run dev を実行してブラウザでアプリを表示できるようになりました。
作成したコードはGitHubにもPush済みです。

機能開発を進める

初期のタイピング画面が動作することを確認できたので、次は以下の機能を追加していきます:

  • お題を生成する画面の作成
  • 長文を1文ずつタイピングできる形式へのUI変更

UIまわりの変更については、Claude CodeよりもFigma Makeのほうが見た目の整ったデザインを素早く提案してくれるため、以下のような流れで進めました:

  1. Figma MakeにUI変更を依頼
  2. コードをダウンロードし、Claude Codeに統合作業を依頼

1. Figma MakeにUIの変更を依頼

Figma Makeに以下のような要望を伝えました:

お題生成画面を作成してください。 「ニュース」「日記」「日常会話」などのキーワード、「中学英語レベル」「高校英語レベル」「TOEIC700点レベル」などの難易度を選択すると、それに合わせたお題をAIで生成します。

image.png
image.png

その結果、メニュー画面とお題生成画面のプロトタイプが完成しました。

2. Figma MakeのコードをClaude Codeに統合

ダウンロードしたフォルダをClaude Codeに渡し、まず新しいコードの構造を理解してもらいます。
そのうえで、既存コードとの違いを洗い出し、統合計画を立ててもらいました。

npm run dev を実行した際の画面はこちらです:

image.png
image.png

メニュー画面は狙い通りでしたが、お題生成画面はFigmaのデザインとは異なっていたため、修正を依頼しました。

3. Figmaと異なるデザインを修正

デザインの違いを言葉で正確に伝えるのはなかなか難しいです。
Claude Codeは画像を参照できるため、Figmaのスクリーンショットを提供し、Playwrightを活用して差分を検出してもらいました。

⏺ デザイン差分テスト結果

  期待デザイン(Figma)と実際の実装を6つの観点で比較した結果:

  ❌ 1. ステップ表示の一致性

  - 期待: ステップ1、ステップ2、ステップ3の明確な段階表示
  - 実際: ステップ番号なし、カード見出しのみ(📚トピック選択、📊難易度、📝文数)
  - 差分: ステップ番号による進行状況の明示が不足

  ❌ 2. トピックカードの配置とスタイル

  - 期待: 3列2行のグリッドレイアウト
  - 実際: 1列6行の縦積み表示
  - 差分: 横幅を活用できておらず、期待される視覚的な配置と異なる

  ❌ 3. 難易度レベルの表示形式

  - 期待: 各レベルが個別カード形式で右側にレベルバッジ表示
  - 実際: Select(ドロップダウン)形式
  - 差分: 選択肢が一覧表示されず、バッジによる視覚的な区別がない

  ✅ 4. 文数選択の表示

  - 期待: ドロップダウン形式
  - 実際: Select形式で正しく実装済み

  ❌ 5. 全体レイアウト

  - 期待: 単一カラムの縦流れレイアウト
  - 実際: 左右2カラム構成(左:設定、右:プレビュー)
  - 差分: 根本的なレイアウト構造が異なる

  ❌ 6. 最終ボタンの配置

  - 期待: 最下部中央配置
  - 実際: 右側パネル内配置
  - 差分: ボタンの位置が期待される場所と異なる

  結論: 6項目中5項目で期待デザインと差分があり、特にレイアウト構造とUIコンポーネントの表示形式で大きな違いがあります。

修正を依頼した結果、次のように改善されました:

image.png

細かい違いはまだ残っているものの、全体的なレイアウトはFigmaのプロトタイプにかなり近づいています。
このように「Figmaで設計 → Claudeで統合と調整」という流れを繰り返すことで、効率的に開発を進められることがわかりました。

おわりに

今回はモックレベルの開発でしたが、Figma MakeとClaude Codeを組み合わせることで、Web開発の経験が浅くても、想像以上に完成度の高いアプリを形にできることを実感しました。

もちろん、まだまだ改善の余地や別のアプローチもあると思いますが、この記事が一例として、誰かの参考になれば嬉しいです。 次はバックエンドにも挑戦してみたいと思います。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?