今注目の「O2O」について、現状や概要を紹介し、O2Oを利用したAndroidアプリを作る際に必要な技術要素を1つ1つ解説していきます。今回は、O2Oの技術要素の1つとして、Push NotificationとNFCについて、実際にアプリに組み込んだ例を示しながら解説します。
本連載では、O2OをキーワードにAndroidで利用可能な技術要素について解説しています。前回「Wi-Fiベース屋内測位技術をAndroidアプリに組み込むには」では、「Walkbase」というサービスを軸にAndroidで屋内測位技術を使う方法について解説しました。
今回は別の技術として、Push Notification(Push型通知)とNFCについて実際にアプリに組み込んだ例を示しながら解説していきます。
モバイルアプリ含めWebサービスを利用しているユーザーに情報を通知する方法としては大きく分けてPull型とPush型があります。Pull型の通知方法では、一般的にモバイルアプリが情報を配信するサーバに対して定期的にリクエストを送信して更新があるかを確認し、更新がある場合はその情報を取得してユーザーに知らせます。一方、Push型の通知方法では情報を配信するサーバが直接ユーザーに対して更新情報を送信し、ユーザーに知らせます。
本連載の第1回「スマホ技術者も知らないと損する「O2O」の基礎知識」でも軽く触れましたが、Pull型の通知方法だとユーザーがリクエストしない限り情報を届けることができないため、情報提供者が更新情報をすぐに通知したいと考えている場合、ある程度短い間隔でサーバ側に問い合わせるように実装しなければなりません。また、リクエスト数が多ければ多いほど端末への負荷が高くなるため、電池の減りが早くなるなどユーザーへの影響が大きくなります。
一方、Push型で通知させる場合はモバイルアプリ側で情報を取りにいくのではなく、サーバ側で情報を送信できるため、Android端末に高い負荷をかけることなく(電池の消耗を抑えつつ)、任意のタイミングで情報をユーザーに届けられます(ただし、ネットワーク状況やAndroid端末の状態にも依存するため、ユーザーが情報を受け取るタイミングがずれる可能性はあります)。
O2Oの観点でいうと「任意のタイミングで特定のAndroid端末に対してメッセージを送ることができる」という特徴は、煩わしい操作をすることなく、オンラインの情報をユーザーに届けられるため、オフライン行動へのきっかけを与える有用な手段となり得ます。
本稿では、このような利点があるPush型通知を実現する方法について具体的に解説していきます。
AndroidでPush型通知を行う場合には、Google Cloud Messaging for Android(以下、GCM)という仕組みを使うことによって簡単に実装できます。
GCMは2012年6月26日で非推奨となった「C2DM(Cloud to Device Messaging)」の後継でPush型の通知をサポートする仕組みです。GCMになってからは煩雑なサインアップ処理を書かずによくなったり、複数の端末に同時にメッセージが送れたり、JSON形式のメッセージに対応したりと機能が強化されています。
GCMでは「Android端末(アプリ)」「サードパーティアプリケーションサーバ」「GCMサーバ」が協調してPush型の通知を実現しています。
それぞれの役割を簡単に説明します。
Push型通知(メッセージ)を受け取る端末です。通知を受け取るためには、事前にGCMサーバと呼ばれるGoogleが管理するサーバに端末情報を登録する必要があります。
Android端末に対してメッセージを送信するサーバです。GCMサーバは「メッセージの内容」「メッセージを送信したい端末」の情報を受け取ると、端末にメッセージを送る準備をし、準備が完了次第メッセージを送信します。Android端末にメッセージを送信したい場合は、あらかじめGCMサーバにその端末の登録を依頼する必要があります。
送信したい「メッセージの内容」「メッセージを送信したい端末」の情報をセットにしてGCMサーバに送信し、Android端末へのメッセージの送信依頼を行います。「どんなメッセージ」を「どの端末」に送信するかは、このサーバで決定します。このサーバは、開発者自身が用意する必要があります。
実際には、「登録」「メッセージ送信」「メッセージ受信」という手順で処理が進んでいきます。
本稿では、このGCMの仕組みを使って、アプリにPush型通知の機能を組み込んでいきます。
NFC(Near Field Communication)は、通信距離が10cm程度のデータ通信を行う近距離無線通信技術です。その一番の特徴としては、NFCを搭載した機器同士もしくはNFCタグに「かざす」だけでデータ通信を行える点にあります。「かざす」という行動は実際のオフラインの行動に結び付けやすい性質があるため、O2Oのサービスを検討するうえでは考慮に入れるべき有効な技術要素であるといえます。
AndroidでもNFCを利用するための環境が整ってきたため、NFCを活用したAndroidアプリを比較的簡単に作成できるようになってきました。AndroidでNFCを活用したアプリを作成する際の基礎知識については、こちらの記事「AndroidアプリでNFCタグを読み書きするための基礎知識」を参考にしてみてください。
先の記事にも触れられていますが、NFCをAndroidで利用するためには以下の条件が必須となってくるので、注意してください。
Android 2.3よりNFCを利用するための標準APIが搭載されたため、NFCの機能を利用するにはバージョンが2.3以上である必要があります。連載第1回でも触れたようにNFCには「カードエミュレーションモード」「リーダー/ライターモード」「PtoPモード」という3種類のモードがありますが、Android 2.3以上(APIレベル10)であれば「リーダー/ライターモード」「PtoPモード」に対応したアプリを作成可能です。
また、Android 4.0では、Androidビームという仕組みが導入され、NFC搭載端末が2台あったときに端末同士を背中合わせで近づけると、一方の端末で見ているアプリの情報(例えば、Webページ)をもう一方の端末に送信・データを表示できるといった、ユーザー同士でのデータ交換がずっと手軽になりました。この機能は簡単な実装で実現できるため、すぐに試せます。
2つ目の「NFC搭載端末」に関しては、NFCの標準APIが搭載されたAndroidバージョン2.3の発表後しばらくはNFCが搭載されたAndroid端末はほとんどありませんでしたが、最近は国内でもNFCを搭載している端末も徐々に増えつつあります(2012年1月現在で、国内キャリアから発表されたNFC搭載端末は少なくとも10機種以上あるようです)この辺りは今後発表される端末の情報にも注目しておきたいところです。
Androidビームの登場やNFC搭載端末の増加により、少しずつですが利用者でのNFCに対する認識も上がっていると思います。そういう意味では、利用者の面でも開発者の面でもNFCを利用したアプリを開発するハードルが比較的下がってきているので、本稿でも実際にNFCの機能を組み込んだアプリを紹介していきます。
前回、「ぺこりん」というアプリを軸に技術要素を説明しましたが、今回もその形式で説明していきます。O2Oの観点からいうと、オンラインの情報(Facebookの友達情報)を基にして送ったあいさつをきっかけに、オフラインでの行動を喚起したいという狙いがあるため、前回の記事でも触れていた「あいさつを送るという部分」の実装を示しながら説明していきます。
Copyright © ITmedia, Inc. All Rights Reserved.