myb design

blog

widgetpluginからのframeworkの利用

In the Moodの新バージョンをリリースしたわけでもないのにアクセス数が伸びてると思ったら、HMDTさんからリンクしていただいていました。
やはりこの、widgetpluginからframeworkを使用するときの問題は皆さん引っかかるようですね。

僕も色々検索してインストールパスを変更すればいいというのはすぐに分かったんですが、実際のやり方が、検索しても英文ドキュメントしか出てこないこともあり、なかなか分かりませんでした。

HMDTさんが書かれていますが、install_name_toolでインストールパスを変更できるのは短い名前にする場合だけだそうです。やはり、コンパイル済みのバイナリに対してコマンドを実行するのでそうなっているんでしょうね。

In the Mood 0.5.0

仮運用中のためしばらくトラックバックなどはできませんが、開発記録としてブログを始めてみようと思います。

早速ですが、In the Mood 0.5.0をリリースしました。
今回一番大きい変更点は、最も見た目には分からない、今までAppleScriptとPHP(とwidgetplugin)で行っていた内部処理をwidgetpluginに一本化したというところです。
widgetpluginで処理をするようになった0.2.4のころからずっとそのつもりだったんですが、widgetpluginでSkype.frameworkを使用するために@executable_pathを@loader_pathに変更するやり方が分からず、しばらく放置していました。
今回、Growlの通知に対応するためにGrowl.frameworkを使用する必要が出てきて、改めて検索などしていたら実は簡単な方法だったんですね。

/usr/bin/install_name_tool -change 
"@executable_path/../Frameworks/Skype.framework/Versions/A/Skype"
"@loader_path/../Frameworks/Skype.framework/Versions/A/Skype"
itm.widgetplugin/Contents/MacOS/itm
改行はなしで、frameworkやwidgetpluginの名前は適宜読み替えてください。

さて、そのGrowlの通知ですが、iTunesで再生中の曲が変わったときに通知してくれるアプリケーションは結構あるんですが(Growlに付属のGrowlTunesやiScrobblerなど)、それだけのためにアプリケーションを起動しておくのが何となく気になっていたので、In the Moodの機能とすることにしました。
メニューバーやDockの領域ももったいないですし。

ところで、0.4.0のころからDashcodeのベータ版を試験的に導入しています。
widgetpluginの部分には使えませんが、JavaScript部分のデバッグが格段に楽になりました。Dashboardを表示しなくてもテスト実行できるのがいいですね。