【AI×Chrome拡張】プログラミング未経験が自分専用の「常駐時計」を作ってみた

こんにちは![あなたの名前/ハンドルネーム]です。
このブログ「gemini-study-lab.com」では、プログラミング未経験から生成AIを使って、どこまで実用的なツールを作れるかに挑戦しています。

これまではPythonを使ってPC用のアプリ(.exe)を作ってきましたが、今回は少し趣向を変えて、「Webブラウザ(Google Chrome)の拡張機能」の開発にAIと一緒に挑んでみました!

なぜ「時計」の拡張機能を作ったのか?

皆さんはPCで作業している時、「今何時だろう?」と画面の右下(Windowsのタスクバー)へ視線を移すのが少し面倒に感じたことはありませんか?

わたしは特にタスクバーを隠しているので時間を確認するのはさらに手間でした。

ストアで探すのも良いですが、「せっかくならAIに自分専用のものを作らせてしまおう!」と思い立ったのがきっかけです。

完成した「ドラッグ移動可能なHUD時計」

AI(Antigravity)に要件を伝えて数分で完成したのが、こちらの拡張機能です。

【実装した主な機能】

  • どんなWebページを開いても、右上に小さく現在時刻を表示
  • マウスで掴んで(ドラッグして)好きな位置に自由に移動可能
  • 作業の邪魔にならない半透明のダークテーマ&ミニマルデザイン
  • クリックを邪魔しないよう、最前面に表示しつつも主張を抑えたUI

右上のボタンを押したい時はサッとマウスでどかすことができる、非常に実用的で小回りの利くツールに仕上がりました。

AI(Antigravity)に投げた「要件定義プロンプト」大公開

今回は、Chrome拡張機能の最新ルールである「Manifest V3」に対応したコードを書かせるため、以下のような指示を出しました。

【要件定義】
Google Chromeで開いたWebページ上に、マウスで自由にドラッグして移動できる「常駐型のデジタル時計」を表示する、Manifest V3対応のChrome拡張機能を作成してください。

【必要なファイル構成】
以下の3つのファイルを同一のフォルダ(例:draggable-clock-ext)内に生成してください。

  1. manifest.json (拡張機能の設定ファイル。”content_scripts”を使用)
  2. content.js (時計の生成、現在時刻の毎秒更新、およびマウスでのドラッグ移動ロジック)
  3. styles.css (時計のミニマルなデザイン)

【デザインと機能の要件】

  1. 初期位置は画面の「右上(少し余白を開けた位置)」に固定(position: fixed)してください。
  2. 時計の要素(div等)をマウスでクリックしたままドラッグすると、画面上の好きな位置に移動できるように content.js にマウスイベント(mousedown, mousemove, mouseup)を用いたドラッグ処理をネイティブJavaScriptで実装してください。
  3. デザインは作業の邪魔にならないミニマルなものとし、角を少し丸めた半透明の黒背景に、白いシンプルなフォントで 14:25:00 のように表示してください。マウスカーソルを乗せた時は cursor: grab、ドラッグ中は cursor: grabbing になるようにCSSを設定してください。
  4. 他のWebページの要素の下に隠れないよう、z-index は最大値(例:999999)に設定してください。

【開発プロセスへの指示】

完成後、Chromeの「パッケージ化されていない拡張機能を読み込む」からローカルインストールして動作確認する手順を出力してください。

外部ライブラリ(jQuery等)は一切使用せず、上記のファイルを自律的に作成し、フォルダにまとめてください。

AIエンジニアとしての見どころ

今回のハイライトは、Webページ上に自分のプログラムを注入する「Content Script」という技術と、要素をマウスでピクセル単位で動かす「ドラッグ&ドロップ処理のJavaScript」を、AIが一発で矛盾なく書き上げた点です。

開発を終えて:自分専用の拡張機能は簡単に作れる!

「Chrome拡張機能」と聞くと、なんだか難しそうでストアの審査などが必要なイメージがありましたが、実はAIにファイルを作ってもらい、Chromeの「デベロッパーモード」からフォルダを読み込ませるだけで、誰でも簡単に自作ツールを導入できることが分かりました。

皆さんも「ブラウザにこんな機能があったらいいな」というアイデアがあれば、ぜひ生成AIに相談して、自分だけの拡張機能を作ってみてください!

コメント

タイトルとURLをコピーしました