macOSは新しいアプリケーションにDMGファイルを使用するのはなぜですか?

新しいプログラムをMacにダウンロードすると、しばしば「.dmg」ファイルが付いてきます。紙の上のディスクアイコンで簡単に識別できる「dmg」拡張子はディスクイメージを意味します。dmgをダブルクリックすると、それがマウント(または、より正確には、接続)され、Finderにその内容が表示されます。そこから、ユーザーはアプリケーションディレクトリにイメージの内容をドラッグアンドドロップして、新しいアプリをMacにインストールします。

このプロセスは、Windowsのインストーラー主導のプロセスとは非常に異なり、新しいmacOSユーザーにとっては誤解を招くことがあります。私がWindowsから移行していたとき、この最後のステップが必要だとは全く知りませんでした。結局、多くのプログラムはディスクイメージから完全に動作することができ、ディスクイメージは「アプリケーションにドラッグ」ステップを説明することはありません。その結果、私は約1ヶ月間ディスクイメージからFirefoxを起動していましたが、ブックマークが全くなく、なぜそうなっているのか理解できませんでした。

では、なぜ新しいアプリケーションにDMGファイルが必要なのか、ファイルをドラッグアンドドロップするためだけに何を「マウント」する必要があるのでしょうか?

理由1: Macアプリケーションの構造

macOSがDMGを使用する理由-アプリケーション構造

Macアプリケーションは、アプリケーションを起動するためにダブルクリックする魅力的なアイコンで表されますが、そのアイコンは秘密を隠しています。その.appファイルは実際にはパッケージを表しています。これは、アプリケーションのすべてのファイルを含むフォルダーです。

自分で確認してみてください: Finderで任意のアプリケーションを右クリックし、「パッケージの内容を表示」を選択して自分で探索してみてください。macOSアプリケーションは本質的にフォルダーであるため、ファイルを失うことなく新しいコンピュータに移動するための何らかのコンテナが必要です。裸のフォルダーを転送するのは、特にネットワークを介しては混乱を招く可能性があります。

それは、カートンなしで12個の卵を運ぶようなものです。そして、DMGはかなり良い卵のカートンを作ることがわかります。もちろん、他のフォーマットでもフォルダーを保持できますが、DMGを特別にしているのは何でしょうか?

理由2: 美的カスタマイズ

macOSがDMGを使用する理由-美的カスタマイズ

ディスクイメージは、外観やユーザーのインストール体験をカスタマイズする能力というユニークな利点も提供します。これには、カスタムアイコン、アイコンの配置、背景画像などの機能を設定することが含まれます。

ディスクイメージを開くと、アプリをアプリケーションフォルダーにドラッグするように促す矢印が表示されますが、実際にはDMGの背景画像を見ているのです。これは他のコンテナフォーマットでは不可能であり、macOSの開発者は視覚デザインに敏感です。ZIPアーカイブは圧縮を提供できますが、実際のインストーラーを実行せずにこの程度の「インストール体験」を提供することはできません。代わりに、解凍プログラムは単にファイルをフォルダーにドロップし、開発者にはほとんど美的な制御を提供しません。

理由3: ディスクイメージはCDに似ている

ディスクイメージは、物理メディアの時代に人気を博し(Appleによって採用されました)、そのプロセスを模倣します。その古代の時代、ユーザーはソフトウェアを購入するために店に出かけ、アプリケーションのインストールCDを含むボックスを購入しました。次に、CDをCDドライブに挿入し、「マウントされた」CDからアプリケーションをアプリケーションフォルダーにドラッグしました。その後、CDを取り出し、将来のインストールのためにジュエルケースに戻しました。

ディスクイメージはそのプロセスを模倣し、馴染みのあるユーザー行動に乗っかっています。イメージは読み取り専用(CDと同様)であるため、ユーザーはアプリケーションの既知の良好なコピーを損傷または変更することができません。ユーザーはディスクイメージをアーカイブでき、緊急時にアプリの機能的なコピーが棚に保管されていることを知っています。

結論: 現代の代替手段とパッケージインストーラー

macOSがDMGを使用する理由-代替手段

ディスクイメージは、今日でも多くの使用が見られます。その利点とともに、DMGは伝統と期待の殻を発展させてきました。ユーザーは新しいソフトウェアがDMGを介して配信されることを期待しているため、開発者はそのように提供します。しかし、インターネット上にはZIPアーカイブ内に裸の.appファイルが散在しているのも見つかります。これは特にGitHubや小規模な開発者からのアプリケーションに当てはまります。

アプリケーションがインストーラーを搭載したパッケージ(.pkg)で提供されることもあります。開発者は、アプリケーションが開く際に指示を実行する必要がある場合にパッケージ形式を使用します。これは、プログラムが「/Applications」以外のディレクトリにファイルをコピーする必要がある場合に特に便利です。たとえば、インストーラーがカスタムフォントをインストールしたり、Libraryディレクトリにファイルをコピーする必要がある場合、パッケージ形式を使用することでインストーラーを介してそれを実現できます。

これに興味がある場合は、ディスクイメージの歴史について読むことができます。