2019.05.290iOSとAndroidでデバイス間通信をしようとすると、真っ先にBluetoothやWi-Fiなどが上げられると思います。実際に作成しようとすると、それぞれのレシーバーの作成や連携に苦戦することになります。使ってiOSとAndroidで通信をする方法をご紹介します。Googleが開発した近距離通信用のプラットフォーム/ライブラリです。使用することで、インターネットを使用しなくてもデバイス間通信が可能になります。Android同士だけの場合に限りますが、近距離接続ができるようになるため、マルチプレイヤーゲームやコンテンツの共有なども可能になります。これは、AndroidとiOSの両プラットフォームでのメッセージ通信を可能にするだけでなく、BLEビーコンとの通信も両立してくれる優れものです。Bluetooth、BLE、Wi-Fi、超音波(非可聴音)の組み合わせでデバイス間通信を実現しているそうです。今回の環境はこんな感じです。利用制限は下記のとおりです。使うため、APIキーを取得しましょう。APIを有効にします。APIが有効になったら、アプリで利用可能にするため、APIキーを控えておきましょう。インストールしましょう。インストール方法や使い方については割愛します。作成し、下記の内容を記載して保存します。先ほど作成したファイルまでのパスをしています。${PROJECT_NAME}/BridgingHeader.h1${PROJECT_NAME}/BridgingHeader.hinfo.plistにプライバシー設定を追加NearbyではBluetoothやマイクなど、プライバシーに関する機能で通信を行います。プライバシー設定を追加する必要があります。通信でマイクを使います1234NSBluetoothPeripheralUsageDescription通信でBluetoothを使いますNSMicrophoneUsageDescription通信でマイクを使いますレイアウトを設定してプログラムを書くではレイアウトの作成をし、プログラムを作っていきます。下記のようにパラメータを設定します。プログラムを書いていきます。よるテキストの送受信ができるようになりました。※ここではプライバシーを意識した確認メッセージ等はすべて省略しています。※このままコピペをしてもAppleの審査は通りませんので、Nearbyの公式ドキュメントをご確認ください。設定する必要があります。AndroidでNearbyを使うライブラリのインストールGradleでNearbyのライブラリをインストールします。APIキーを設定します。AndroidManifest.xml...1...レイアウトを設定してプログラムを書く続いて画面のレイアウトとプログラムを書いていきましょう。{Nearby.getMessagesClient(this).unpublish(this.message!!)}}}※ここではプライバシーを意識した権限のチェックや確認等はすべて省略しています。※このままコピペをしてもGoogleの審査によりリジェクトされる可能性があります。通信してみるここまでできれば相互通信ができます。両端末ともBluetoothをONにして、テキストを打ってみましょう。両方のデバイスを持ってないという方のために、下記に相互通信したときの結果を貼り付けておきます。実際には経路や権限などの細かい設定をする必要がありますが、これでiPhoneとAndroidでの通信が可能になったのは大きなことだと思います。連携も細かく設定する必要がありますが、通信が可能となります。実際に近距離通信を使って検証してみた弊社では実際に近距離通信を利用したサービスを実装し、現実世界での実地検証を行いました。その結果、ビーコンの通信範囲を100mに設定しても、人物や建物などに反射して複数回取得したり、逆に遮断されて届かなかったりと、様々な記事に記載されている内容通りには到達しませんでした。10mなどのかなり近距離に設定しても、周辺の電波と干渉してしまい、到達までの時間が長くなってしまうなどの問題もありました。BluetoothとGPSの両立で不安定さを解消しようと試みましたが、今度はバッテリー消費がとてつもないことになってしまうというジレンマに・・・。デバイスのBluetoothチップによって、送受信の感度が異なることから、届いたり届かなかったりと不安定な結果となってしまいました。さいごに今回は作成方法だけではなく、実際に検証した結果も記載してみました。いう生きた記事を書いていきたいものです。