2009-03-07
Social IMEクライアントのオープンソース化を検討中
サポート掲示板で質問があったので、クライアントのオープンソース化を検討しています。このエントリへの反応を参考にするため、オープンソース化を検討している経緯とかを書いてみます。
Social IMEは、はじめはひとりで開発していました。当初はAPIの公開なども考えておらず、クライアントとサーバーはセットで開発することを想定していました。通信の仕様が決まっていなかったため、迅速に開発を進めるためには仕様を試行錯誤で決めながら開発する必要があったからです。
さて、Social IMEは1年ほど前に独自プロトコルから標準的なHTTPプロトコルへ移行し、半年ほど前にWeb APIという形でサーバーの機能を公開しました。それによって(というか公開前に)ATOKでSocial IMEを使えるプラグインが開発されました。最近になってSocial IMEがニュースになると、APIを活用したMac版の開発者の方も現れました。他にもAndroid向け日本語入力simejiなど、たくさんの方がAPIを活用したサービスやソフトウェアを開発してくださいました。
そして、これだけ多くの方が非公式クライアントを開発しているのに、一番利用者の多い公式クライアントは一人の開発者によって開発され、そのためバグの改善も(自分で思ったより)遅いという困った状況にあります。そのため、掲示板へ書き込んでいただいた方も、オープンソース化によって開発に参加する人が増えれば、バグの解決スピードが上がるのではないか、と書き込んでいます。
実は、クライアントのオープンソース化は当初から検討していました。ただ、IMEという特殊なソフトウェアであるため、簡単には開発者が集まらないことが想定されたため、しばらくはソースの公開は行わないことにしていました。しかし、最近になってSocial IMEのユーザーが増えて、潜在的に開発者になるかもしれない人も増えてきました。こうした経緯と、私は就職して開発の時間が取れなくなるかもしれないため、このタイミングでのクライアントのオープンソース化を検討することにしました。
Social IMEのクライアントはC++とVisual Studioで開発され、Text Services Frameworkというフレームワークを利用しています。詳しくはこちらのエントリにあります。これらの技術を扱える方で、Social IMEのWindowsクライアント開発に興味のある方がいらっしゃったら、コメントまたはメールしていただけるとありがたいです。また、ライセンスや開発体制の整え方について詳しくないため、アドバイスをいただければと思います。
#グローバルフックを使ったMS-IMEの上にかぶせる形の実装も考えたのですが、テキストのインライン編集のUIが再現できなさそうなので微妙