![見出し画像](https://assets.st-note.com/production/uploads/images/111706853/rectangle_large_type_2_2670050bbc15e3da0d68610986dbd8ac.png?width=800)
omokakeをvisionOSに対応してみる。
WWDC2023でvisionOSが発表されました。
仮想苔を作っていきたいところではありますが、まずどんな感じでアプリが作れるのか?やMetalをどのくらい使えるのかなどが気になっていたので調べることにしました。
調べるにあたってiPhone向けアプリの「omokake」をvisionOS向けにビルドしてみることにしました。
環境
OS: macOS 13.4.1 (c)(22F770820d)
Xcode.app: Version 15.0 beta 4 (15A5195m)
対象
omokake: https://apps.apple.com/jp/app/omokake/id1484496250
https://github.com/kokiTakashiki/omokake
手順
Supported DestinationsにApple Visionを追加します。
![](https://assets.st-note.com/img/1690291744203-h1VLuuCGba.png?width=800)
![](https://assets.st-note.com/img/1690291744399-QL209MQINI.png?width=800)
![](https://assets.st-note.com/img/1690291744205-Iu5DIc7r7c.png)
Designed for iPhoneのApple Visionは不要なのでマイナスボタンで削除します。
![](https://assets.st-note.com/img/1690291744383-NLdpu48PZo.png?width=800)
試しにApple Vision Proを選択しビルドしてみます。
するとDeviceKitでいくつかのエラーが出ました。
![](https://assets.st-note.com/img/1690291744558-uhS9kdSeck.png)
このライブラリはiOS以外で使うことを想定していないので「Frameworks, Libraries, and Embedded Content」からDeviceKitの項目でiOSのみにFilterします。
![](https://assets.st-note.com/img/1690291744463-RAd1vJD0B6.png?width=800)
![](https://assets.st-note.com/img/1690291744423-c8Qo7Mlnyk.png)
![](https://assets.st-note.com/img/1690291744601-GAre4E2Lah.png?width=800)
次に出てくるエラーに対して「#elseif os(iOS)」をつけていきます。
omokakeでは主にMetalKitやFeedbackGenerator・UIScreenを介した値の参照でエラーになりました。
![](https://assets.st-note.com/img/1690291744484-1qEg3xVSSg.png?width=800)
動作確認
SwiftUIで作成した箇所がいい感じにvisionOS感がありました。
最後に
omokakeをvisionOSに対応してみました。
SwiftUIで作ることで比較的簡単にvisionOS対応できそうでした。
UIKitの部分の表示はできましたがかなり手を入れる必要がありそうでした。
Metalに関してはMetalViewが使えないので下記のサンプルコードを参考に作り直す必要がありそうでした。
最後までお読みいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?