Xcode 26.3で「自分専用カラーピッカー」をDIYしてみた話

前回の「幾何学パターン画像生成アプリ」では、最大6色までカラーパレットを登録して使えるようにしました。ところが、その“パレット作り”が地味に面倒。
「この色いいな」と思った瞬間に、サッと6色集めて、まとめてコピーできたら最高じゃないですか。

そこで今回は、画面上の色を拾って、そのまま6色ストックできる カラーピッカーアプリ をXcodeで自作することにしました。

幾何学パターン画像生成アプリのカラーパレット

そもそもカラーピッカーって何?

カラーピッカーは、PCやスマホの画面上から目的の「色」を取得して、カラーコード(HexやRGBなど)を確認・コピーできるツールです。

macOSには標準で Digital Color Meter(デジタルカラーメータ) というユーティリティが入っています。Hexなどのカラー値は、アプリ上でコピー操作もできますし、ショートカットでテキストとしてコピーすることもできます。
…ただ、基本は 1回で1色 なんですよね。

「幾何学パターン画像生成アプリ」は最大6色パレット。1色ずつ拾って、1色ずつコピーして、6回貼って…って。
これを6回やっていると、頭が空(カラー)になってきて、さすがに面倒になってきます。

Digital Color Meter

今回作ったカラーピッカーの要件


狙いはシンプルです。「自分が欲しいところだけ、気持ちよく」。

  • 画面上のピクセルカラーをマウスポインタ位置からリアルタイムで取得
  • クリックで Hex(#RRGGBB) を登録
  • 登録は 最大6個
  • 登録したカラーは右クリックで削除
  • ドラッグ&ドロップで並び替え
  • コピーボタンで 6個をカンマ連結してコピー(スペースなし)
    例:
    1
    #6E2A97,#EBA2DA,#F8A36A,#87C570,#037349
  • クリアボタンで全削除
  • さらに表示として
    • マウスポインタ周辺の拡大(×8、中心が分かる十字付き、ぼかさない)
    • 現在の色面
    • 現在のHex表示

そして重要ポイントがもう一つ。
macOSで画面のピクセルを読むには、環境によって 「画面収録(Screen Recording)」権限 が必要になります。これが無いと色が取れなかったりするので、未許可でもクラッシュせず、設定場所を案内するUIも必須にしました。

最終飯

ChatGPTに“コーディングエージェント”として動いてもらう

今回の進め方は、前回と同じく、初心者なので、そっちでやってね。という感じでChat GPTに投げました。

  • 自分は Swift / SwiftUI初心者
  • 手でちょい直しすると壊しがち
  • だから「差分」じゃなく ファイル丸ごと置き換えで進める
  • ビルド → 実行 → Preview → テストまで、毎回ちゃんと回す
  • 失敗したら「原因→修正→再ビルド→再テスト」をエージェント側で完結

この後下記のような要件定義が作られました。(長くなるので見出しだけ掲載します)

  • アプリ仕様(最重要)
    • 目的
  • 要件まとめ
  • 重要:権限と技術要件
  • 画面構成(SwiftUI)
  • 操作仕様
  • 実装方針(壊れにくさ優先)
  • 納品物

つまずいたのは、コードより「言葉」だった

最初のビルドでは「カラーがストックに登録できない」問題が出ました。
ここでCodexと何度も何度もやり取りしたんですが、なかなか直らない。

途中で、回答に違和感があって問いただしたら原因が判明。
こちらの「色が取れない」は、

  • 自分の意味:色面には出ているけど、クリックしてもストックに入らない
  • 相手の認識:そもそも色面に表示されない(色が取得できていない)

この齟齬が、ずっと修正を空回りさせていました。
認識が一致した瞬間、スッと直る。
結局いちばん大事なのは「何が起きていて、何が起きていないか」を言語化することなんだな、と痛感しました。

使ってみて見えた改善点(そして改良)動き始めると、今度は「使い心地」が…

  • 6色満杯でクリックすると「最大6個です」ダイアログ
    → 何度も出ると邪魔なので、画面内メッセージに変更
  • 登録したカラーを後から変更したい
    → 変更できないと修正が面倒なので、カラーパネルを表示・反映
  • 6スロットの一部が隠れてスクロールが必要
    → “隠すUIが今っぽい”のは分かるけど、作業効率が落ちるので 全部見えるレイアウトに寄せる
  • クリックで色を拾うと、ブラウザ操作中にも誤登録される
    Caps Lock+クリック で取得、という“誤爆しにくい組み合わせ”を導入

「汎用ツール」だと丸くまとめるところを、今回は完全に自分仕様に振り切れたのが気持ちよかったです。

今後の改善アイデア

いまの時点でかなり満足していますが、次の展開も見えています。

  • 6色のセットを「パレット」として保存・呼び出しできるようにする
  • コピペではなく、アプリ間連携で自動的に受け渡す(将来的に)

アプリのDIYという実感

市販アプリは、当然ながら汎用的に作られています。便利だけど、機能が増えるほど重くなったり、UIが変わって使いにくくなったりもする。
「自分には不要な機能」や「そこだけ足りない」があっても、今までは工夫して付き合うしかありませんでした。

でもXcode 26.3の“エージェンティックな開発”が入ってきたことで、自分の手癖に合わせた道具を、自分で作れる感じが一気に現実になった。
今回のカラーピッカーはまさにそれで、RGB/HSB/CMYK全部対応とか、倍率を×2×4×8で選べるとか、登録数を増やすとか、ヘルプ整備とか……そういう“立派な汎用化”は一旦置いといていい。

必要なものだけ作って、使って、直して、また使う。
道具って、本来そういう距離感がいちばん気持ちいいのかもしれません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次