マッシュルーム

m01

Simejiや、ATOK for Androidは、マッシュルームというプラグインをサポートしています。これは、入力文字列を加工して返すインテントになっています。インテントというフレームワークがあるAndroidならではの機能です。

実装は簡単で、普通のアプリとほとんど同じ。ただ、マッシュルームのインテントに応答するようになっていればいいだけです。メインのActivity の onCreateと、Manifestにちょいちょいとコードを書くだけ。

これで、OpenPNEベースのSNSに絵文字を入力するためのプラグインをつくって見ました。普通のケータイなら、ブラウザのフォームに直接絵文字を入力できますが、PCやAndroid、Windows Mobile、そして知らないけれど多分 iPhoneもそれはできません。

絵文字を、絵文字非対応の環境から入力するための記法は定義されています。例えば i-mode 絵文字の1なら"[i:1]"という風に入力すれば、OpenPNE側で、絵文字に変換されるようになっています。他にezweb絵文字とかも、記法的にはサポートされていますが、ライセンスの関係上、i-mode絵文字にマッピングできるモノだけが実際には表示されます。

とはいえ、こんな絵文字と数字との対応を、252文字もある i-mode絵文字の全てについて覚えているなんて現実的ではありませんから、絵文字の一覧の中から、入力したいものを選んだら、然るべきコードを返してくれるツールがあれば便利です。それが、直接、入力までカバーしてくれればいうことなしです。つまり、それが、このマッシュルームの目的です。

m02

本当は、i-mode絵文字が使えれば良かったのですが、ドコモのサイトをがさがさ探ってみたモノの、二次利用についての説明や問い合わせ先が見つからなかったので、ライセンスがちゃんとしている TypeCastの絵文字を利用させてもらうことにします。i-mode絵文字とはビットマップは違いますが、まあ、表現しているモノはほぼ同じなので、とりあえずは充分でしょう。

とりあえず、ビットマップの取り込みやマッピングをのぞいて、ひな形だけなら、30分くらいでできてしまうところが、Androidのフレームワークの良いところです。何しろ、画面上にImageButtonウィジェットが並んでいて、クリックされたら対応する文字列を、インテント経由でIMEに返すだけですので。

これで、Androidから、OpenPNEベースのSNSに絵文字を簡単に入力できるようになりました。嬉しい副作用として、メールでの投稿に普通に絵文字をつかうとOpenPNEでは全部〓になってしまうのですが、このマッシュルームで挿入された、"[i:123]"のようなものは、ちゃんと絵文字として変換されて投稿されます。

絵文字の利用に、ガラケーにくらべて制約が多かった Androidが、絵文字の利用について、ガラケーより便利になったのは、ちょっと嬉しい。こんなツール公開したら、欲しい人っていますかね?