リソースとパッケージとバンドル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/22 08:46 UTC 版)
「Finder」の記事における「リソースとパッケージとバンドル」の解説
Mac OSには、リソースフォークと呼ばれる、特有のファイル構造が初期から使われており、アプリケーションで使われるアイコンやメニューなどのGUI要素の定義や実行コード、文字列などのリソースを格納することができる。この仕組みにより、アプリケーション本体を再度コンパイルすることなく、表示される文字列の翻訳(ローカライズ)などの改変が可能となる。一方、ユーザから見たメリットは、多様なデータを含むアプリケーションが一つのファイルとして扱えることにある。これにより、アプリケーションの起動に必要なファイルが足りない、といった事態が起きることなく、アプリケーションのアイコンをハードディスクの好きな位置にドラッグ&ドロップでコピーするだけで、手軽にインストールすることができる。したがってMacintoshアプリケーションでは、システムへ機能拡張やフレームワークなどのインストールを必要とする場合を除いて、インストーラが用意されない場合が多い。 そして、この延長線上にあるのが、Mac OS 9において実装されたパッケージ機能である。これは、入れ子になったフォルダを単一の書類に見せかけるもので、例えば、アプリケーションとその関連書類(ヘルプファイルやテンプレート、ライブラリなど)を含むフォルダを一つのアプリケーションに見せることができ、やはり手軽に扱うことが可能になる。また、一つのアプリケーションパッケージの中に、Mac OS 9に最適化したアプリケーション(Classicアプリケーション)とmacOS向けに最適化されたCarbonアプリケーションの両方を同梱し、実行時の環境によって最適な方が起動されるようなテクニックも使われた(AppleWorksなど)。 macOSにおいては、"パッケージ"とやや実装は異なるものの、本質的には同様のバンドルという仕組みが積極的に導入されている。バンドル構造は元々NeXTSTEPで採用されていたもので、従来リソースフォークに格納されていたGUI要素や画像、文字列などは、それぞれ単一のファイルとして、アプリケーションバンドル内に格納されるようになった。これには、リソースフォークがMac OS特有のファイル構造であるため他のオペレーティングシステムとのデータ交換に支障があったことや、アプリケーションの使用する画像やサウンドなどのデータが肥大化したことなどが理由として考えられる。CocoaアプリケーションやCarbonアプリケーションの多く(.appバンドル)、インストーラパッケージ(.pkgファイル)などはバンドルの例である。他に、画像を含むリッチテキスト(.rtfdファイル)やXcodeプロジェクト書類(.xcodeprojファイル)なども実体はバンドルとなっている(バンドルの中身はFinderのコンテクストメニューから「パッケージの内容を表示」することで見ることができる)。バンドルにより、macOSでも依然多くのアプリケーションがドラッグ&ドロップするだけで手軽にインストール可能となっている点は特筆すべきであろう。 また、バンドル機構により、アプリケーションの各種リソースを言語ごとに分割して格納することが可能となった。macOSでは、文字列・画像・GUI要素の定義(Nibファイル)などは各言語のフォルダ(.lprojフォルダ、たとえば英語ならEnglish.lprojなど)に収められ、システムの言語環境設定に応じて必要な言語リソースがロード・表示されるようになっている。アプリケーションをローカライズするには、他の言語の.lprojフォルダをコピー・翻訳すれば良い。多言語OSとしてのmacOSを支える機構の一つである。
※この「リソースとパッケージとバンドル」の解説は、「Finder」の解説の一部です。
「リソースとパッケージとバンドル」を含む「Finder」の記事については、「Finder」の概要を参照ください。
- リソースとパッケージとバンドルのページへのリンク