ごちゃごちゃメニューバーはもう卒業!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プラットフォームで、インターネット上の画像を扱う際に、開発者が面倒を見るべき多くのタスクを肩代わりしてくれる超強力な画像処理ライブラリです。


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

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


ワタシがナンバーワンになった理由:開発環境を変えた Wave Terminalの衝撃

ワタシが、あなたのプログラミングの夜を彩る、ナンバーワンホスト、〇〇だよ!今宵ご紹介するのは、wavetermdev/waveterm!ただのターミナルじゃない、これはまさに夢の統合開発環境(IDE)を内包したターミナルさ!「え?ターミナルなんて黒い画面でコマンド打つだけでしょ?」って?


エンジニアの味方!macOS最適化ツール「Mole」導入ガイド 〜もしもドラえもんがITコンサルだったら〜

今回は、Macを爆速でクリーンアップしてくれる強力なツール「Mole」について、エンジニア視点で解説します。せっかくなので、某・国民的SFアニメの「青いネコ型ロボット」と「メガネの少年」によるショートコント風にお届けしますね!のび太「ドラえも〜ん!Macが重すぎて、ジャイアンとのオンライン対戦に負けちゃうよ〜!何とかして〜!」


Hackintosh構築の救世主 OpCore-Simplifyでエラーをゼロに:Pythonスクリプトによる自動生成の裏側

はい、どうも!お疲れ様です!カンパーイ! いや〜、あの「OpCore-Simplify」ってやつ、コントみたいにややこしい「Hackintosh(ハッキントッシュ)」の世界をスッキリさせてくれる、エンジニアから見ても超助かるツールなんですよ!


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

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


macOSエンジニア必見!厳選アプリリスト「awesome-mac」の活用術

jaywcjlove/awesome-macは、ソフトウェア開発者、特にmacOSを使用するエンジニアにとって非常に役立つ、厳選されたアプリケーションとツールのリストです。プロジェクトのGitHubリポジトリにホストされており、ソフトウェア開発に必要な様々なカテゴリのツールが網羅的にまとめられています。


Web技術とネイティブアプリの融合:WebKit入門

WebKitは、Appleが開発したWebブラウザのレンダリングエンジンです。簡単に言うと、Webページを画面に表示するための、ブラウザの心臓部にあたるソフトウェアですね。みなさんが普段使っているSafariや、iPhone/iPadのアプリ内でWebページを表示する機能は、すべてこのWebKitが動かしています。