AppKit、Catalyst、SwiftUIの中でApple自身が使っているのはどれ?Catalystはすでに…

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

S 20220823 95628

AppleはWWDC 2019でCarbon APIを削除し、代わりにMac CatalystとSwiftUIを導入しました。

macOS Catalina以降、開発者は3つの異なるUIフレームワークを使用して、Mac用のネイティブアプリを作成することができるわけですが、Apple自体はどのフレームワークを使用してアプリを作成しているのでしょうか。

現在の状況を分析したブログ記事「Apple’s use of AppKit, Mac Catalyst and SwiftUI in macOS」が公開されています。

開発者のAlexandre Colucci氏は、detectUIFramework.shと呼ばれるスクリプトを使用し、アプリが何で作られているかを分析しています。

スクリプトは以下のような動作を行います。

  • バイナリがUIKitにリンクしているかどうかをチェックし、Mac Catalystアプリを検出する。
    /System/iOSSupport/System/Library/Frameworks/UIKit.framework/Versions/A/UIKit
    
  • バイナリが以下にリンクしているかどうかをチェックし、SwiftUIを使用しているかどうかを検出する。
    /System/Library/Frameworks/SwiftUI.framework/Versions/A/SwiftUI
    
  • バイナリが以下にリンクしているかどうかをチェックし、AppKitを使用しているかどうかを検出する。
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    
  • NSApplicationMainとs7SwiftUI3AppPAAE4mainyyFZのシンボルをチェックすることで、アプリがAppKitアプリかSwiftUIアプリかを検出する。
  • System/iOSSupportにあるバイナリはMac CatalystとiOSアプリしかサポートしていないので、すべて除外。
目次

AppKit対Mac Catalyst対SwiftUI

同記事ではmacOSの各バージョンに含まれるアプリを3つのカテゴリにグループ化してグラフを作成しています。

  • Mac Catalystアプリ(SwiftUIとAppKitも使用する可能性がある)
  • SwiftUIを使用するアプリ(Mac Catalystは使用しないが、AppKitは使用する可能性がある)
  • AppKitのみを使用するアプリ

macOS MontereyからmacOS VenturaまでのmacOSに含まれるアプリを調査した結果のグラフは以下の通りです。

CatalystSwiftUIAppKit

グラフを確認すると次の事がわかります。

  • AppKitアプリの占める割合が非常に大きい。
  • 出遅れたSwiftUIを利用するアプリが急速に増えている。
  • Mac Catalystアプリの数は頭打ちになった。

macOS Mojaveで「Marzipan」として試験的に導入され、macOS Catalinaで一般開発者も利用可能となった「Mac Catalyst」は、iOSアプリをmacOSに素早く導入するための手段として使用されましたが、Apple製アプリに関しては移植がほとんど終わり、現在はアプリの数がほとんど増えていない状況のようです。

対してSwift UIのアプリの数が増えておりmacOS Venturaでも「Font Book」「システム設定」「Tips」というアプリで使用されている模様です。

新しく導入されたUIフレームワークの使用が順調に増えているということで、Appleが意図した方向に進んでいると考えることができそうです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次