BLOG::はるかさん

はるかさん のブログです。近況情報や技術的な話題など。

Butter v0.1.1リリースとButterの仕組みについて

f:id:harukasan:20140324233541p:plain

バグフィックス版であるButter v0.1.1をリリースした。OS X 10.8対応(ただしOS X 10.8で検証していない)と、Hookからのメッセージが通知されないバグをなおした。

昨日も少し書いたけど、ButterはRubyMotionで書かれている。ソースコードはMIT Licenseで公開しているので、下記リポジトリを参照して欲しい。

Butterの仕組みはとてもシンプルで1枚のWebViewを貼り付けているだけである。では、どうやってNotification Centerへの通知を実現するかというと、WebView.windowScriptObjectを使用して、JavaScriptコードを注入している。注入したJavaScriptでIdobataのpusher APIをbindし、そこからnativeコードのメソッドを呼び出すことにより通知を実現している。

実際のところIdobataクライアントというよりはIdobata専用ブラウザに近い。コードの行数としても300行くらいしかない。

基本的に1つのウインドウに複数の機能が備わってるのは嫌いで、ブラウザの拡張としてではなく単一アプリケーションとして実装したかった。UXとしてもブラウザの1ページよりもDock上で分離していた方が、チャットに集中できて良い。こういうhackは比較的手軽で満足度も高いのでさくさくとやっていきたい。