Widgetの開発

[MacOSX]Widgetをとりあえず作ってみよう!!
今日は結局一日休みをであった予定が朝から仕事をするはめになった・・
夜には終わったので早速Widget開発!!
いきなりtugboatWidgetを作るには知らない部分が多いため、
基本的な動作部分、ネットワークへのアクセス方法、XMLのデータ読み込み、
環境設定の読み込み、書き込みを中心に調べるついでにRSSリーダを作成してみた。
要件としては

  • RSSのURLを元にWidgetで表示。
  • URLは動的に変更を行える様にする為に環境ファイルから取得
  • 環境ファイルは裏画面から変更を行える様にする
  • RSSはリスト表示を行う。

この4点のみ!!簡単・・・だよね。
前回の基礎をふまえてRSSと言う名前のWidgetのひな形を作成する、
と全部を書きたいところだがはしょりにはしょって要点だけw

function loadXML(event) {
	// XMLHttpRequestオブジェクトを作成
	req = new XMLHttpRequest();
	// イベントハンドラの設定
	req.onreadystatechange = stateChange;
	// リクエストにMIMEタイプを"text/xml"に設定
	req.overrideMimeType("text/xml");
	// 環境設定ファイルから"url_text"というキー情報で取得
	var urlText = widget.preferenceForKey("url_text");
	// メソッドとURLの設定
	req.open("GET", urlText);
	// リクエストを送信
	req.send(null);
}

XMLの読み込みは以上の様な方法で行える。stateChangeは
別のfunctionで作成しています。
環境設定ファイルはWidgetをインストール(登録)時点で
~/Library/Preferencesの中に自動的に保存されており
info.plistファイルの中のCFBundleIdentifier
で設定した値.plistと言うファイルになっております。
また環境設定ファイルへの設定は

var value = "http://d.hatena.ne.jp/jaraman/rss";
widget.setPreferenceForKey(value, "url_text");

の様な書き方で設定を行うことができる。
この場合自分のブログのアドレスを設定しています。
この部分をtextエリアで書き込込む様に作れば動的に変更できますね!
リストの作成方法と裏画面の設定など説明できていませんが、
3時間ぐらいでとりあえず使えるレベルのものができました。
できたイメージは貼付けときます。

明日から本格的にtugboatWidgetを作っていきます。