Yo.
今回は『Yount』というWebサービス/アプリを開発したのでご紹介です。
どういうサービス・アプリ?
世界中で大人気の世界一シンプルなメッセージアプリ『Yo』で自分に送られてきたメッセージ(=Yo)の回数をWeb上でリアルタイムに公開するサービス/アプリです。利用するためには『Yo』と『Yountアプリ』をインストールしたAndroid端末が必要です(iPhoneの方は残念でした)。
イマイチよくわからない場合は、下のページを開いてください。
このページを開いたまま、お手持ちのスマートフォン(iPhoneでもいいですよ!)で『Yo』を起動して『RUTAN』というアカウントに向かってYoを送ってみてください。僕のNexus5の電源が入っていれば、上のページの『Yo数』が増えるはずです(WebSocketに対応しているブラウザだとリアルタイムにアニメーションして数値が変化します!)
このように、自分に届いたYoをリアルタイムに共有することができるWebサービス/アプリなのです。
Yoを検知する仕組み
Yoは世界一シンプルなメッセージアプリなので、TwitterみたいにAPIを使ってアレコレ〜みたいな機能は(たぶん)ありません。一応、デベロッパー用のAPIもあるのですが、あくまでAPI専用アカウントを開設して受信や送信を行うだけなので、既存のユーザのアカウントに対して操作をする機能は(僕の知ってる限りは)ないのです。
じゃあどーなってんの!というと、その仕掛けはコレです。
Androidには「ユーザー補助(AccessibilityService)」という機能があります。Androidに標準で載ってる「TalkBack」という操作や通知などを音声/振動で教えてくれる、視覚の不自由な方を支援するアプリで使われています。
というわけで、ユーザー補助機能はその性質上、他のアプリの通知領域が覗けるなど、ちょっと強めの権限があるわけですね。『Yount』では通知領域に来たメッセージを全部チェックし、イベント発生元がYoであるか調べて、Yoだった場合は処理を行う〜といったことをしています。あんまり行儀よくない。
ちなみにAndroid4.3以上だと通知領域にアクセスするためのAPI(NotificationListenerService)が増えているので、そっちが使えると思います(というか、AccessibilityServiceはこんなことをするための機能じゃないし)
このサービスをつくった理由
- 『Yo』めっちゃ熱い!らしいので何か僕もやりたい!!
- 「何かが起きたときにYoを送信(ミサイル)」とか「Yoを送信すると○○(Yo2048)」とかあるけど「僕がYoされたとき」のほうが面白そう
- とりあえず回数を公開してみるか!!
です。Yoの受信をトリガーに何かを実行するものを作りたかったのです。
今回はYoの回数を表示しているだけですが同じ仕組みを使えば他のこともできそうですね。Yoされたときの電池残量を表示するとか、Yoされたら勝手にツイートするとか、Yoされたら総資産を公開するとか……
Yoには無限の可能性が眠っているのですYo!!!!!
オマケ
ユーザページのアドレス http://yo.rutan.info/ユーザ名
なんですけど、 http://yo.rutan.info/ユーザ名.json
とか http://yo.rutan.info/ユーザ名.jsonp?callback=hoge
みたいなことができるようになってます。
あくまでオマケ機能なのでいきなり消えたりバグったりするかもですが、何かに使えるといいですね!