プリンス・マクリーン
· 2分で読めます
ブライス・C氏は、Leopardのアプリの軽量化は、言語間で異なるテキスト文字列やその他の変数をすべて抽出するローカリゼーションファイルによるものだと指摘しました。ユーザーが設定した言語設定に応じて、オペレーティングシステムは必要な言語ファイルにアクセスし、共通のアプリケーションコードと組み合わせて使用することで、開発者がアプリを世界市場に展開する作業を簡素化します。
Mac OS Xの各アプリケーションのバンドルファイルには、NIBファイルが含まれています。NIBファイルは、アプリケーションの作成に使用されたツールの元の名前であるNeXTSTEP Interface Builderの略称です。NIBファイルには、アプリケーションで使用されるグラフィックリソースも含まれています。
開発中は、Interface Builder を使用して、ボタンからスクロールリストまで、プログラムのインターフェースコントロールを視覚的に配置します。これらのコントロールは、アクションにマッピングされます。開発中に使用された元のXMLファイルは「designable.nib」という名前ですが、これらのファイルは完成したアプリケーションに同梱されるものではありません。完成したアプリケーションに含まれる最終的なNIBファイルははるかに小さく、通常はさらに圧縮できます。
これらのNIBファイルを単純なファイル圧縮で実行すると、ディスク容量が大幅に削減されます。Bryce氏によると、LeopardのMailバンドルに保存されているXMLファイルとHTMLファイルは、単純なファイル圧縮によって289MBから96.6MBに縮小され、Snow Leopardベータリリースで提供される新しいMailと同等のファイルサイズになったとのことです。
Appleは以前、設定ファイルの.plistファイルに同様の手法を適用し、人間が読めるプレーンなXMLテキストファイルから圧縮バイナリファイルに変換することでディスク容量を節約していました。これらのファイルをディスクから読み込んだり書き戻したりする際に、バックグラウンドで圧縮と解凍を行うために必要なオーバーヘッドはごくわずかです。
AppleはSnow Leopardでディスク容量を節約するためにバックグラウンドファイル圧縮の利用を拡大している可能性が高いが、匿名を希望した開発者によると、現在のMac OS X Leopardは、Appleがシステムのパッケージ化時に犯したミスにより、不必要に重量が重くなっているという。Leopardアプリにはすべて、Golden Masterで削除されるべきだった不要なdesignable.nibファイルが含まれている。「メールだけでも約1400個のこうしたファイルがあり、ディスク容量を約200MBも占めています」と彼は指摘した。
劇的な軽量化の理由としては、他に軽量化、解像度に依存しないベクターグラフィック、PowerPCコードの削除などが挙げられていました。しかし、同じ開発者は「アプリケーションのアートワークのほとんどはLeopardと同じです。残念ながら、少なくとも開発者プレビュー版では、Snow LeopardはLeopardと比べて解像度に依存しないという点でそれほど進歩していません」と説明しています。
ベクターグラフィックへの移行は、システムの軽量化に若干の影響を与える可能性があり、ビットマップアートとして保存されたグラフィカルインターフェース要素でさえ、前述のファイル圧縮の恩恵を受けるでしょう。PowerPCコードの削除に関しては、Snow Leopardのアプリケーションは現在もユニバーサルバイナリとして提供されており、インターフェースのローカライズに関連する大きなXMLファイルやグラフィックファイルの圧縮や、不要な開発用NIBファイルの完全削除と比較すると、PowerPCコードの削除によるファイルサイズへの影響はごくわずかであると開発者は指摘しています。
ディスク容量が限られている Leopard ユーザーは、アプリ内に保存されている designable.nib ファイルをすべて安全に削除し、Monolingual や Northern Softworks Leopard Cache Cleaner などのツールを使用して未使用の外国語ファイルを削除することで、待つことなく無料で軽量化を実現できます。