Xcode iPad app→Mac appの移植機能Catalystを使ってみた

Xcodeの新機能がCatalystiOS(とiPadOS)のアプリケーションをMacへ移植する機能。

 

自作のアプリに適用してみた。

 

・良く見るWebサイトのリストを準備しておき、その中から選ぶと遷移するアプリ。

iOS版同様、iOSで時間を設定するとき回転させて選ぶUIPickerViewが出てきた。そこから選ぶとSafariの一番上にあるウィンドウに新にタブが作られ、表示された(MacSafariの設定による挙動。新しいページを開くとき新しいタブを開くよう設定してある)。

アプリケーションはSafariServicesのに含まれるSFSafariViewControllerを使っている。

 

・二次アニメーション

画面をタップするとそこへ二次元キャラが手足を振って移動する。

Mac版でも移動するが不思議なことに手足を振らない。

 

・トランプゲームSeaHaven

Mac版も画面が開きプレイ可能。レイアウトに多少の違和感があるが、これはベゼルが無いからだろう。

初期の頃、ゲーム中にカードの位置がずれる不具合があったが、プレイ中に何故か解消された。

 

ここまで順調だが移植できないアプリケーションもある。仮想現実のARKitを使ったものは、Macに仮想現実用の傾きセンサーや加速度センサーなどが無いからだろう、移植できない。

 

移植の方法はプロジェクトを選んでGeneralタブにあるMacチェックボックスにチェックを入れてBuildするだけ。

f:id:dangun:20190702230223p:plain

Macにチェックを入れる

古いアプリーションだとGeneralタブが出てこないケースがある。「楽々PCライフ」様の『XcodeでGeneralタブが表示されない場合の解決方法について!』(https://azure-nakame.com/?p=689)を参照されたい。

チェックを入れると.entitlementsファイルが作られる。中身は

App SandboxがYES

com.apple.security.network.clientがYES

になっている

 

 

 

使って見た感想。

Generalタブが出てこないのでMac版を作ろうとしたところ、移植トラブルが続発した。楽々PCライフ様のアドバイスに従ったところ、すんなりとiOS版からMac版ができた。感服してしまった。市場規模から見るとMac版にメリットを見出す会社は少ないと思う。だが、簡単に移植ができるので考え直す会社も出るだろう。