邪魔にならない Mole の設計
mole.fit を一日かけて作り直しました。いま読んでいるこのページです。投稿したとき、私は一行だけ書きました。静かで、信頼できて、邪魔をしない。アプリそのものと同じ思想だと。それが、最初のシェルスクリプト以来、Mole のデザインのすべてです。ここでは、それが実際に何を意味するかを書きます。
静かであることは制約です
静かさは雰囲気のように聞こえますが、ツールにとっては一連の厳しいルールです。パネルは完全に描画されるか、隠されるかのどちらかで、途中まで描かれたカードや、少しずつ組み立てられる結果画面はありません。スキャンが完了してから、画面は結果の状態に入ります。短い待ちでは何も表示せず、長い待ちでは落ち着いた作業状態をひとつだけ見せます。完了レイアウトはデータが届く前に領域を確保するので、ウィンドウが跳ねません。
これらは装飾ではなく、エンジニアリング上の制約です。明示的な操作状態、遅延付きの読み込み表示、安定したコンテナサイズ、キャンセル経路が必要です。その仕組みがなければ、トランジションを足しても不確かさを動かすだけです。ユーザーが見る落ち着きは、非同期の仕事を下で予測可能にすることで生まれます。
このすべてが目指すのは、見守らなくてよいツールです。頼むとやり、画面を返してくれます。点滅したりレイアウトが揺れたりするソフトは、まだ得ていない注目を求めています。そしてメンテナンス用のツールが得ている注目はゼロです。アプリをチェックする対象というより、よくできた家電に近い感覚であるべきです。
触る前に、やること一覧を見せる
Mole でいちばん重要なデザイン判断は、削除計画をサイズ付きで見せ、確認を待つことです。通常のユーザーファイルの削除はゴミ箱へ行き、そこから復旧できます。ホームフォルダのようなナビゲーションの根には削除オプションがありません。インターフェースは意図を明確にしますが、サービス層は実行時にすべてのパスを検証します。警告画面だけでは、安全の境界にはなりません。
ここでの安全は、末尾にボルト止めした警告ダイアログではなく、アプリの形そのものです。発見は削除できません。確認が、境界のある計画をつくります。実行は身元と保護パスを再確認し、結果は削除済み・スキップ・失敗を分けて報告します。操作前の確認が目に見える半分で、独立した検証が目に見えない半分です。
なぜクリーナーに太陽系があるのか
このようなユーティリティは、クリーンボタン付きのメニューバーアイコンでもよく、それだけでも売れたでしょう。私は代わりに五つの惑星を渡しました。世の中には生成された、使い捨てソフトがすでに多すぎます。労力を費やすなら、前に座っていても居心地のよいものにしたかったのです。
各機能は、仕事に合った性格の惑星です。Clean は地球、Software は火星、Optimize は水星、Analyze は木星、Status は太陽。規律は、五つの飾りではなく、ひとつの系として保つことです。テクスチャは天文画像から来ており、地球は NASA の Blue Marble を基にしています。回転の向きと相対的な速さは実体に従い、どの惑星も同じコードで、いくつか決まったサイズで描かれます。ツールのなかの美しさは、ツールのほかの部分と同じように作られている限り問題ありません。惑星が生まれた長い話は 別の記事 にあります。
抑制がシステムです
Mole のデザイン作業の大半は引き算です。アプリは意図的にダークのみです。メニューバーパネルは壁紙の上に HUD のように浮き、暗いガラスがまぶしさを抑えます。そのため維持すべきライトモードも、考えるべきテーマ切り替えもありません。アプリ全体でひとつの書体スケール、サイトでひとつの書体スケールがあり、要素が単発のサイズや色を得ることはありません。値はすべて共有トークンから来るので、どれかひとつが叫ばなくてもページが均質に読めます。
そして、よい機能でも出さないものがたくさんあります。Mac には Mole ができてしまいそうな、しかしすべきでない技がたくさんあります。ファイル削除を任せるツールは、頭に収まるくらい小さく保たなければならないからです。よいアイデアにノーと言うのは、足すより難しく、アプリの落ち着きを保つ仕事の大半がそれです。何を作らないかの決め方は 別途書きました。
抑制はアクセシビリティにも当てはまります。フォーカスが飛び、コントロールのラベルが曖昧で、アニメーションが VoiceOver から状態を隠すなら、見た目の静かさだけでは足りません。読み上げ順、キーボードでの到達、Reduce Motion、安定したフォーカスは、同じ約束の一部です。インターフェースは、タスクが許す限り、ユーザーの注意をできるだけ使わないべきです。
そのルールは惑星にも及びます。Reduce Motion がオンのとき、装飾的な回転は止まり、状態変化は空間的な動きを避けます。惑星は動きを求めなくても身元を担え、どの操作もアニメーションを見ることには依存しません。静かさは固定された見た目のスタイルではなく、ユーザーが求めた刺激の量を尊重することです。
ひとつの思想、三つの表面
Mole はコマンドラインツールであり、Mac アプリであり、このウェブサイトでもあります。三者へのブリーフは同じです。CLI は深く掘りますが、境界があり安全です。アプリはその仕事を、うるさくなく見えるようにします。サイトはアプリが何をするかを伝え、あとは道を空けるよう努めます。だから作り直しは一か月ではなく一日で済みました。足すものはほとんどなく、削るものだけがあったからです。
それが全部です。静かな守り手であり、それ以上ではありません。自分の Mac のために、あるいは友人のために。時間は、あなたのものでありますように。