ごちゃごちゃメニューバーはもう卒業!macOSエンジニアのための「Ice」徹底解説


ごちゃごちゃメニューバーはもう卒業!macOSエンジニアのための「Ice」徹底解説

jordanbaird/Ice

2025-09-18

Jordan Baird/Ice は、macOSのメニューバーを管理するための強力なツールです。たくさんのアプリをインストールしていると、メニューバーのアイコンが増えすぎて見にくくなりがちですよね。そんな時にIceが活躍します。まるで魔法のように、メニューバーをスッキリと整理し、必要な時だけアイコンを表示させることができます。

メニューバーの整理は、ただ見た目をきれいにするだけではありません。ソフトウェア開発の効率を上げる上でも非常に重要です。

集中力の向上
開発中は、できるだけ集中したいものです。たくさんのアイコンが並んでいると、視覚的なノイズとなり集中力が途切れがちになります。Iceを使えば、必要なアイコンだけを表示させ、不要なアイコンは非表示にできるため、集中してコードを書くことができます。

スクリーンキャストやプレゼンでの活用
開発したアプリのデモやプレゼンテーションを行う際、メニューバーがごちゃごちゃしていると、プロフェッショナルな印象を与えにくいことがあります。Iceでアイコンを整理しておけば、デモ画面をクリーンで洗練された状態に保てます。

開発効率の改善
Macのメニューバーアイコンは、アプリのステータスを表示していることが多いです。例えば、ビルドの進捗やCI/CDの状態など。これらの情報を効率的に管理し、必要な時にすぐにアクセスできるようにすることは、開発ワークフローの最適化につながります。

ちょっとしたコント風に、Iceの導入を想像してみましょうか。

A先輩
「おい、最近やたらとメニューバーアイコンが増えてきて、ビルドのステータスが見にくくて仕方がないんだよなぁ...」

B後輩
「先輩、それ、"闇バイト"ですよ! 」

A先輩
「え? 闇バイト?」

B後輩
「はい。次々と知らないうちにメニューバーに居座るアイコンたちに、大事な"見やすさ"という資産を奪われているんです! いますぐやめさせないと、いずれ...」

A先輩
「...おいおい、なんか話が物騒だな。どうしたらいいんだ?」

B後輩
「任せてください! そんな闇バイトアイコンたちをクリーンアップする、合法で強力なツールがあるんです! それが Ice です!」

A先輩
「お、それだ! 頼む!」

Iceは、増えすぎたメニューバーアイコンという「闇バイト」を合法的に整理してくれる、エンジニアの強い味方というわけです。

Iceはオープンソースプロジェクトなので、直接GitHubからダウンロードするか、Homebrew を使って簡単にインストールできます。

Homebrewを使う場合

brew install --cask ice

このコマンドを実行するだけで、Homebrewが自動的にIceをダウンロードし、インストールしてくれます。

GitHubからダウンロードする場合

GitHubリポジトリ(jordanbaird/Ice)にアクセスします。

最新のリリース版(Releases)から .dmg ファイルをダウンロードします。

ダウンロードしたファイルを開き、Ice.app を「アプリケーション」フォルダにドラッグ&ドロップします。

これでインストールは完了です!

Iceを起動すると、メニューバーに新しいアイコンが表示されます。

アイコンをドラッグ&ドロップ
Iceが提供する特別な仕切りアイコン(通常はパイプ | や点線)を境に、アイコンをドラッグ&ドロップして並べ替えができます。

非表示エリア
一定のエリアを設けて、そこにアイコンをドラッグすると、普段は非表示になり、必要な時だけ表示されるようになります。

Iceはメニューバー管理アプリですが、Swift開発者として、Iceと連携するようなアプリをどう作るか、またはIceのコンセプトをどう取り入れるか考えてみましょう。

以下は、メニューバーにアイコンを追加し、クリックするとメニューが表示される、基本的なmacOSアプリのサンプルコードです。Iceのようなツールと組み合わせることで、このアイコンをより効率的に管理できます。

import SwiftUI

@main
struct MyApp: App {
    @StateObject private var menuBarManager = MenuBarManager()

    var body: some Scene {
        Settings {
            // アプリの設定ウィンドウなど
            Text("設定")
        }
    }
}

class MenuBarManager: NSObject, ObservableObject {
    private var statusItem: NSStatusItem!
    
    override init() {
        super.init()
        setupMenuBar()
    }
    
    private func setupMenuBar() {
        // メニューバーアイコンを生成
        statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)
        
        // アイコンの画像を設定
        if let button = statusItem.button {
            // ここにオリジナルのアイコン画像をセット
            button.image = NSImage(systemSymbolName: "hammer.fill", accessibilityDescription: nil)
            button.action = #selector(showMenu)
        }
    }
    
    @objc func showMenu() {
        // クリックした時に表示されるメニュー
        let menu = NSMenu()
        menu.addItem(NSMenuItem(title: "こんにちは!", action: nil, keyEquivalent: ""))
        menu.addItem(NSMenuItem(title: "設定", action: #selector(openSettings), keyEquivalent: ""))
        menu.addItem(NSMenuItem.separator())
        menu.addItem(NSMenuItem(title: "終了", action: #selector(NSApplication.shared.terminate(_:)), keyEquivalent: "q"))
        
        statusItem.menu = menu
        // メニューを表示
        statusItem.button?.performClick(nil)
        statusItem.menu = nil
    }

    @objc func openSettings() {
        NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil)
    }
}

このコードで作成したメニューバーアプリは、Iceを使えば好きな位置に配置したり、一時的に非表示にしたりできます。これは、開発者として、自分のアプリが他のユーザーのメニューバー体験を損なわないようにするための配慮でもあります。


jordanbaird/Ice




RPAの次世代形:trycua/cuaが提供する安全なデスクトップAIエージェントインフラストラクチャ

今回は、GitHubで注目を集めているプロジェクト「trycua/cua」(読み方クーア、とされています)について、ソフトウェアエンジニアの視点から、その魅力と活用法をわかりやすく解説しますね。trycua/cuaは、「Computer-Use Agents(コンピューター利用エージェント)」のためのオープンソースのインフラストラクチャです。簡単に言えば、AIエージェントがWindows、macOS、LinuxといったデスクトップOS全体を制御できるようにするためのサンドボックス、SDK(開発キット)、評価ツールを提供しています。


Peekaboo:AIエージェントのためのmacOSスクリーンショット・インターフェース

本日のテーマは、macOSエンジニアやAI開発者の間で今アツい視線を浴びているツール、「Peekaboo」(ピーカブー)です!「AIに自分の画面を見せて、指示通りに操作してもらいたい…」そんな願いを叶えるこのツールの正体を、エンジニア視点で紐解いていきましょう。


SDWebImage:iOS開発を加速させる非同期画像処理の「高速補給船」

ソフトウェアエンジニアの視点から、このライブラリがどれほど強力で、あなたの開発をスムーズにするのかを、宇宙飛行士のように冷静かつ情熱的に解説しますね!SDWebImageは、iOS/macOSなどのAppleプラットフォームで、インターネット上の画像を扱う際に、開発者が面倒を見るべき多くのタスクを肩代わりしてくれる超強力な画像処理ライブラリです。


ネットの「今」が見える!SNIFFNETで快適なデジタルライフを

今宵も最高の体験をあなたに。私、SNIFFNETが、あなたのインターネットライフをより豊かに、そして安全にするお手伝いをさせていただきます。SNIFFNET、そう、それはまるでホストクラブのナンバーワンホストのように、あなたのインターネットトラフィックを優雅に、そしてスマートに監視するツールです。


高速開発の秘密兵器: ホットリロードでFlutterアプリを爆速構築

Flutter(フラッター)は、モバイルアプリはもちろんのこと、デスクトップやウェブまで、一つのコードベースから複数のプラットフォームに対応する美しいアプリを素早く構築できるUIツールキットです。ソフトウェア開発者であるあなたにとって、Flutterはまさに「万能の道具箱」のような存在です。


モビルスーツ級の高性能!k2-fsa/sherpa-onnx徹底解剖と実戦導入ガイド

「連邦の白いヤツ」...ではなく、ソフトウェアエンジニアの皆さん!今回は、オフラインでの音声処理を強力にサポートするライブラリ k2-fsa/sherpa-onnx について、その能力と活用法を、さながらモビルスーツの機能解説のように、分かりやすく、フレンドリーに解説していきます!


macOSで「動かない」をなくす!エンジニアのためのLinux VM環境構築術:Lima徹底活用ガイド

Limaは、macOS上でLinux仮想マシン(VM)を簡単に起動・管理するためのツールで、特にコンテナの実行環境として注目されています。要するに、Limaは「macOSで、本番に近い、手軽で高速なLinuxコンテナ開発環境」を手に入れるための強力なツールと言えます。


Android画面操作の決定版:escrcpyの導入方法とエンジニア的活用術

(司令官、机を叩いて立ち上がる)「いいか、通信兵!我々ソフトウェアエンジニアの戦場は、今やPCの中だけではない。手元のAndroid端末、テスト用の実機、あちこちに散らばるデバイスをいちいち手に取って、パスコードを打って、デバッグする……。そんなことをしていたら、私のコーヒーは冷め、納期は火の海だ!」


開発者のための証明書作成ツール「mkcert」徹底解説

そこで、今回紹介する新兵器が mkcert だ!まず、なぜローカル開発でHTTPSが必要なのか、そこから話そう。本番環境とのギャップをなくす 多くの本番サービスはHTTPSを使っている。ローカル環境も同じHTTPSにすることで、本番との違いによる予期せぬバグを防げる。


PowerShell: ソフトウェアエンジニアのための吉野家流自動化術

「大将!牛丼大盛り!」って、元気よく注文するでしょう?あれ、厨房の奥では熟練の職人さんたちが、手際よく肉や玉ねぎをさばいてる。PowerShellは、まるであの敏腕シェフなんです。普段、私たちはマウスでポチポチとメニューを選びます。それがGUI(Graphical User Interface)。 でも、PowerShellという「呪文」を唱えれば、キーボードだけで、もっと素早く、もっと大量の作業を一気に片付けられます。Windowsだけでなく、macOSやLinuxでも使えるようになって、まさに「吉野家の味を、世界のどこでも!」ってなわけです。