AR kit で顔面キャスアプリを作る (その1 xcodeprojにsocketIOを導入)
前回(昨日)に引き続きやって行きます。
実装
実際キャスティングアプリとなると、配信者が何人もいて、それぞれの配信ページに多数の閲覧者がいる状況が自然な想定になります。 しかし、まずは実験ということで、配信者は1人、閲覧者が数人という状況(手持ちの端末数にも制約があるため)で動くように作っていきたいと思います。
socketIOでARAnchorデータを転送する
端末側SocketIO準備(Swift)
Carthageを使ってXcode projectにsocketIOを導入していきます。導入するライブラリはこれです。
Carthageはbrewでインストールできるので、簡単に構築できました。(普段からbrewをよく使うので)
carthageインストール手順 (as of 2019/01/24, macOS 10.14.3, Homebrew 1.9.2)
brew install carthage
これで通常は完了ですが、このように怒られる場合があります。
Linking /usr/local/Cellar/carthage/0.31.2... Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
これはそもそも /usr/local/Frameworks
が存在しないことが原因ですので、
sudo mkdir /usr/local/Frameworks sudo chown $(whoami):admin /usr/local/Frameworks sudo brew link carthage
で解決します。
CarthageでsocketIO-Client-Swiftを導入
cd [Xcode Projectが入ってるディレクトリ]
nano Cartfile
github "socketio/socket.io-client-swift" ~> 13.3.0
と書き保存(バージョン番号は更新されていくので、
Carthage/README.md at master · Carthage/Carthage · GitHubCarthage/README.md at master · Carthage/Carthage · GitHub
で確認してください。)
carthage update --platform ios
Xcode projectの依存関係に追加
dyld: Library not loaded
のエラーが出まくって詰まったので、以下を参考に進めました。画像付きでわかりやすいです。
Step by step guide on using Carthage dependency manager
重要 同時にCarthage/Build/iOSに導入されるStarscream.frameworkも同時に追加する必要があります。
コーディング
2019/01/24現在、以下のStackOverFlowの解答に記載されているサンプルコードで動きました。 swift - Socket.io for swift4 ios - Stack Overflow
サーバー側SocketIO準備(nodeJS)
サーバー側については、同内容の分かりやすい記事がたくさんあるのと、すでにAWSにSocketIOをセットアップ済みのページを準備してあったので、飛ばします。
動作確認
ひとまずString型変数をアプリからPostすることに成功しました。 次回は、ARAnchorをPostするところから始めたいと思います。