16
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIネイティブ開発のための UI アノテーションツールを作った

Posted at

2025年、AIエージェントを使って開発するのが一般的になりました。
私はもっぱら Web の画面を作っているのですが、AI の進化に驚く一方で「そこじゃないんだよ...」というストレスを感じる場面も多々あります。

そんな中で、少しでもストレスを緩和するためにツールを作った、という話をさせてください。

モチベーション

新規開発であれば、

  • Figma でデザイン
  • Figma MCP で AIエージェントと連携し、コンポーネントを整備
  • コンポーネントのStorybookを整備
  • Figma MCP、 Storybook MCP、 AIエージェントを連携して画面を実装

という流れが、現時点のAIを活用した開発の正攻法だと思っています。

Storybook MCP

Storybook 10.1.0以降で利用できる、Storybook MCPのDocs Tool が個人的にはおすすめです(現時点では Experimental)。このMCPでは以下を提供します。

List All Components(list-all-components)

  • コンポーネントライブラリ内で利用可能なすべての UI コンポーネント一覧を返す
  • AIが、どのようなコンポーネントが存在するか把握するために利用

Get Component Documentation(get-component-documentation)

  • 指定した 特定のコンポーネントに関する詳細ドキュメントを返す
    • コンポーネントの説明(役割・仕様)
    • 使用例(Usage examples)
  • AIが、コンポーネントをどのように利用するか把握するために利用

参考:https://github.com/storybookjs/mcp/tree/main/packages/addon-mcp#docs-tools-experimental

一方で、既存システムのリプレースや改修の場合、そもそもFigma が存在しない というケースも少なくありません。そういう場合手元にあるのは、

  • 既存画面のスクリーンショット
  • なんとなくの仕様理解

だけ、ということも多いのではないでしょうか。

画像だけ渡して「よろしく」はまだ難しい

マルチモーダル AI の進化で、画像を理解してくれるようにはなってきました。
とはいえ、

この画面を React で作ってください

とスクショだけ投げても、なかなか思った通りにはいかない のが正直なところです。

一方で、

  • 「ここはボタン」
  • 「押すとモーダルが開く」
  • 「これは既存の〇〇コンポーネント」

みたいなちょっとした補足をプロンプトに加えるだけで、生成精度がかなり上がるという経験をした人も多いと思います。

そもそも人間が画面を作るときも、振る舞い、意図、制約みたいなものを、何らかの形でドキュメントに残しますもんね。

.md を書くのも辛い

とはいえ、

  • スクショを横に置いて
  • md を書いて
  • どこがどこか説明して

というのは、なかなか面倒です。

できれば、

  • スクリーンショットを見ながら
  • 直接その上に説明を書いて
  • そのまま AI に渡せる

そんなことができると楽だなと思いました。


そう、それが UI Annotator です。

UI Annotator

発想としてはかなりシンプルで、

  • 画像を読み込んで
  • Figma ライクな UI で人がアノテーションをつけて
  • その情報をプロンプトやJSONに吐き出せる

それだけです。

ユーザがD&Dで範囲指定 → アノテーションを入力!
image.png

エクスポートしたプロンプトをスクショと一緒にAIへ指示!
image.png

StorybookのJSONをインポートすれば、コンポーネントが選べる!

デジタル庁デザインシステム コードスニペット(React版)のstorybookを読み込んだ例

できること

  • 画像を見ながら、人がアノテーションを付与できる
    • ラベル(ここは何か)
    • コンポーネント(何の UI コンポーネントか)
    • ノート(補足・振る舞い、バリアントなど)
  • エクスポートすると以下を出力/クリップボードにコピペできる
    • AI 向けプロンプト
    • 構造化された JSON
  • コンポーネントは以下から定義をインポート可能
    • Storybook の index.json
    • components.json

Storybook MCP と組み合わせる

スクリーンショットとこのツールで付与した

  • コンポーネント
  • 位置
  • 付加情報(レイアウト・バリアントなど)

をAIに与え、さらに先ほどのStorybook MCPからコンポーネント選ばせるようにすると、「イライラ」が「イラッ」もしくは「んーちょと惜しい!」くらいまで改善します。

(もちろん作る画面と揃っているUIコンポーネントの質に依存します)

おわりに

冒頭述べたように、「スクショ起点の AI ネイティブ開発」をもう少し楽にしたかったというのもありますが、実際のところ

  • 普段作らないものを何か作ってみたかった
  • 込み入った UI を AI とならどれだけ楽に作れるのかを試してみたかった

というのが一番のモチベーションだったりします。

今回の開発ではClaude Code を使い、いわゆる Vibe Coding 的なスタイルで作っていきました。利用技術や実装の雰囲気に興味があれば、GitHub も覗いてみてください。

まだまだ荒い部分もありますが、「AI ネイティブな UI 開発」の補助ツールとしては、それなりに使いどころがあるんじゃないかなと思っています。よかったら、試しに一度触ってみてください。

16
0
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
16
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?