WebRTCの力を借りてアプリ作ったんですよ。
##現物
ソーシャル仮想散歩アプリSmanpoWiz
Googleストリートビューの景色に没入しFacebookまたはLINEの仲間と散歩気分でビデオ通話を楽しむ事ができる。
映像から利用者の動きを検出し、動いた分だけストリートビューの景色が進み、相手と近づいたり離れたりでき、仲間との散歩を仮想体験できる。
##経緯
以前より歩数計センサーとGoogleストリートビューをのっけた仮想散歩アプリ「Smanpo(Android,iOS)」ってのを作っていた。
その後、室内で座って腕を振りつつ流れる景色を楽しめばなんか健康的でいい感じだろうと思い、歩数計センサーの代わりにカメラで動きを検出するカメラモード(iOSのみ)って機能を追加した。ちなみにMacアプリは新規で作成した。
ビデオ通話機能を盛り込めば仲間と楽しめるんじゃないかと思い、WebRTC(Skyway)に手を出した。
##実装
とりあえずjsベース(PeerJS)のサンプルコードを触ったらちょー簡単にビデオ通話できたのでNativeアプリにはwebview実装という安易な選択を企んだ(2017年8月頃)。
Android:手元の端末でCrosswalkというWebViewエンジンを利用したらWebRTCが動いたのでこれ使えば端末環境による差異を吸収してくれるらしいしいいなこれ、って事で採用。
iOS,Mac:Safari11からWebRTCに対応するとのことで、アプリ実装時のWebView(WKWebView)もWebRTCに対応するだろう、つまりAndroidが出来上がる2017年秋頃には環境が整うだろうとたかをくくっていた。
##現状
Android:できました!既存アプリに機能追加ではなく別アプリとしてローンチしました。
iOS,Mac:できず涙
##iOS,Mac環境について
当初の目論見から外れ、いざ蓋を開けて見るとSafari11が動いているiOS11(MacはHighSierra?)のWKWebViewではWebRTCが動いておりませんでした。がーん。
##今後
mashupawardという開発者のお祭りの2ndSTAGEというところで発表できることになったので自慢してくる。
ローンチ済みのAndroidをキレイにしてからiOSでは心を入れ替えてSDKを使い実装する。
##未解決問題←解決しました!
Macにはsdkなさげけどどうやって実装するんだろう??素直にwebアプリという手もあるがMac app storeってiOSほど盛り上がっていないから個人アプリ供給者としては需給バランス的に配信チャネルとして魅力なんだよなぁ。
12/7追記:エレクトロンってのを使うとmac-webviewでWebRTCが使えるんじゃないかという話をWebRTCもくもく会で教えていただきました。ありがとうございます!今回のイベント主催者のWebRTC Beginners Tokyoの皆さんはふわ系の私のような人にでも親切に教えてくれます。興味のある方はお気軽にjoinしてみましょう!