0

ガジェットのファイル保存方法

3大ガジェットで、もっとも気に入ってるがyahooウィジェットです。
vistaやgoogleのガジェットにはない機能としてファイルと保存と読み込みができます。
値を保持しておくだけならSystem.Gadget.Settings.read(“hoge”)等で問題ないのですが、特定のファイルに書き込んで保存というのがyahoo以外のガジェットではできません。
しかもコモンダイアログまでyahooではでてきます。

Webのエンジニア街道をつっぱしてきた私にはローカルファイルをこの様に簡単に扱えるのは驚きでした。
ちょっと頑張ればテキストエディターなんかも作れてしまいます。

ちなみに値を保持しておくのも三種三様。
yahoo widget
これでオプション画面で設定した値を取得できます。
オプション画面でOKをクリックするだけで値が保存されます。
preferences.hoge.value;

vista sidebar gadget
前者で値を保存することができます。
後者で値を取得しています。
致命的なのが一度ガジェットを削除すると保存されたデータが消えてしまいます。
System.Gadget.Settings.write("hoge", "値");

System.Gadget.Settings.read("hoge")

google desktop gadget
vistaと似てます。
options.putValue("hoge", "値")

options.getValue("hoge")

0

yahooウィジェット基本の覚書

yahooウィジェットの制作のポイントを何点かメモ。
同時にvista sidevar gadgetも作って混乱することもあったので。

基本的にyahoo, vista, google, AIRの中では一番初心者向きの気がします。
言語はXMLとjavascriptとすこーしのCSSです。

■デザイン
cssでレイアウトを組むのでなくXMLに左から○○px上から○○pxにテキストやイメージを置くといった感じです。
下記の例だと左から100px上から200pxにlogo.gifの左上がくるように配置します。
css脳になってしまってる人には少しやりにくいかもです。
<image>
<name>demo</name>
<src>Resources/logo.gif</src>
<hOffset>100</hOffset>
<vOffset>200</vOffset>
</image>

cssで下記のように書くのと同じです。
hoge {
position:absolute;
background-image:url(Resources/logo.gif);
left: 100px;
top: 200px;
}

■XMLの動的書き換え
javascriptを使ってXMLの要素の中を変更することができます。
さっきのXMLに少し手を加えます。
下記の例では、この画像をクリックすると画像がlogo2.gifに変更されます。
<image>
<name>demo</name>
<src>Resources/logo.gif</src>
<hOffset>100</hOffset>
<vOffset>200</vOffset>
<onclick>
demo.src = "Resources/logo2.gif";
</onclick>
</image>

javascriptだとこんな感じでしょうか。
document.getElementById("demo").src="logo2.gif" mce_src="logo2.gif";
yahooウィジェットではこの「name」がHTMLがIDのような役割を果たします。
ですので、同じkonファイルで同じnameは使えません。

■デバッグ
XMLでデバッグモードをonにしておけばコンソール画面がでます。
<debug>on</debug>

javascript内で下記のように入力すると変数や配列の中身を表示してくれます。
もちろんシンタックスエラーも表示します。
print(hoge);
log(hoge);

■設定画面
他のガジェット同様あらかじめ設定画面を使った設定の保存がし易くなってます。
XMLではこんな感じ。
これだけ保存ボタンも生成され自動できに保存されます。
明示的に保存するスクリプトを書かなくて良いわけです。

<preference name="color">
<title>色変更</title>
<type>popup</type>
<option>青</option>
<optionValue>青</optionValue>
<option>赤</option>
<optionValue>赤</optionValue>
</preference>

popupはHTMLのプルダウンと同じ意味です。

呼び出しも簡単。
保存されたデータはjavascript内でこのようにして取り出します。
foo = preferences.color.value;

■配布用ファイル作成
.konファイルとwidget.xmlと他ファイルをcontentsフォルダに入れる。
それを任意のフォルダ(sample)に入れる。

ウィジェットコンバーターにそのフォルダをドラッグ&ドロップするとsample.widgetが生成されます。

ちなみにこのウィジェットコンバーターは逆にwidgetファイルをフォルダに戻すことも可能です。
これでほかの人が作ったスクリプトをみて勉強できるというわけ。

0

iPod Touchがよく落ちる件

先日買ったばっかりのTouchだが、よく落ちる。
落ちるタイミングとしてはカバーフロー(アルバムのジャケットをスライドさせるやつ)を激しくスライドさせる時。
そして一度落ちると、普通に音楽を聴いていても落ちる。
少し調べてみると、safariをいじりながら音楽を聴いててもよく落ちるみたい。

とりあえず、場当たり的な解決方法としては「再起動」。
再起動すると、とりあえず直ります。
いつかipodの更新でなおったりするのかな。

そのせいかわからないけど、落ちると再生回数がリセットされるのは俺だけ?

追記:
やはり落ちたときに再生回数がリセットされてるみたい。
前回の同期から一度もtouchが落ちなかったら、再生回数も保持されitunes側と同期がどれる。
ただ一度落ちるとそれまでの再生は無効になる。

0

iPod Touch用サイト制作

iPod Touchでは付属のsafariでサイトが閲覧できます。
指を使ってサイトをズームアップしたりできますが、iPod Touch専用にサイトを作ることもできます。
つくりかたは意外と簡単。
jsもcookieも使えます。
appleからでてる仕様書をみれば、ほとんどのことが理解できるはずです。
Apple Developer Connection – iPhone for Web Developers – iPhone向けWebアプリケーションとコンテンツの最適化

上記を読んでUI作成面倒そうだなーと思った人はこのjavascriptライブラリを使えば簡単に作成できます。
iUI

ajax動きじたいはjsをかじった人には理解できるのだけど、やはりすごいのはajaxっぽいのにブラウザの「戻る」が使えることとcss3を駆使したインターフェースですね。
まだコードを熟読してないけど、読み応えのありそうなコードっぽいです。