絵文字とかケータイ対応を調べてみた。想定は Apache + PHP
まぁこれも今さらなネタですが。
一つのアプリ、コンテンツから PC/ケータイ両対応したいことってよくありますな。そのための変換ツールを調べてみた。
ただし、最初に断っておくと以下のどれも採用していない。
Apache モジュールタイプ
Apache モジュールで画像を変換したり絵文字対応したりというアプローチはアプリの開発言語を選ばないので魅力的。
mod_ktai
- yumemi
- Apache License 2.0 と言っているがソースが公開されていないという指摘多数。
- 企業開発なのでリソースが十分投入されていそうだけどとにかく評価できない
その後、なんでソース公開されていないの?という疑問に答えるようなアクションもないし、実はもう使ってないんじゃないか疑惑。
mod_chxj
- 基本的に個人開発(確認時点ではメンバー3人)
- ちゃんとオープンソース(Apache License 2.0)
- 残念ながら参加も開発も活発な感じはしない
こういうツールって地味なので一人だとモチベーションを維持するのが大変だし、実際開発の停滞した時期もある。もしかすると github に置いたらもう少し盛り上がるかもしれないなーなんてことを思いながら見送りの方向で。
結局 Apache module タイプのツールはなんかちょっと不安が拭えないので今回はスルーで。
あと参考までに
Typepad Mobile
正式名称は結局 TypeCast でしたっけ。イマイチよく分かっていない。
これは HTML を変換するタイプではなく Atom から変換するタイプ、のはず。Atom の出力に対応しているアプリからなら簡単に使えるかもしれない。
公開時にニュースになって以降はそんなに話題になってないっぽく、移転に次ぐ移転でどこに行ったかよく分からなかったけど今は github に落ち着いてるみたい。たぶん。
今回は既存のサイトの絵文字対応で Atom は使えなかったので見送った。
PHP ライブラリタイプ
PHP では差し当たって絵文字のライブラリだけ調べた。
予想通りたくさん見つかった。でも現役でメンテされてそうなものは少ない。そして結論から言うと今回自分は何も採用はしなかった。そう、つまり自作。その理由は以下の通り。
- mb_convert_encoding をすでに使っているコードがある
- mb_output_handler をすでに使っているサイトがある
最近は output_handler による自動エンコーディング変換は行わないのがセオリーになっている。はず。そのためもあってか最近の絵文字ライブラリは自動変換が走ると絵文字部分は壊れてしまうものが多いみたい。
HTML_Emoji
速いらしい。
れぶろぐ - [PHP] 絵文字変換ライブラリの処理速度の比較
確かに速い。でも上に書いたように自分の要求とは合わなかった。
また、名前の通り変換ライブラリであり、例えば絵文字入りの HTML 作成を支援してくれるわけではない。UTF-8 でバイナリを直接埋め込んでいかなくちゃいけないとなると、制作現場的には厳しい。あくまで携帯から絵文字を投稿できてそれのハンドリングがちゃんとできるよっていう話のように見える。
emj
こちらは作った方がデザイン業務も行っているということで、さすがに制作現場で使いやすそうな機能を持っている。
絵文字を名前で入力できるというのは実は重要で、この方式は文字コード変換に強く、分業時にトラブルになりにくい。例えばなにがしかのテンプレートシステムと併せて使いたいとなったとき、テンプレート周りでエンコーディングの変換に気を使う必要がない。HTML_Emoji は確かに速いけれど、エンコーディング変換時には独自のメソッドの利用を要求するので「新規開発ですべて UTF-8 に統一できている」などの条件が整っていないと安心して利用することは少し難しいのだ。
そんないいことずくめそうな emj だけど、
- ライセンスが不明
- グローバル汚染しまくりで気持ちよくない
という辺りがネック。
Perl 使ってりゃこの辺は日本にはかなり強力なコミュニティがあるから楽できそうなんだけどね。