本当は怖いsilverlight for windows phone toolkit
TRANSCRIPT
Silverlight for Windows Phone Toolkit
伊勢 シン
Microsoft MVP for Windows Phone
(Sep 2010 – Oct 2011)
本当は怖い
Silverlight for Windows Phone toolkit
• Windows Phone 7 アプリを作るなら 必須ともいうべきライブラリ
–標準ライブラリに入っていない、 いろいろなUI部品が収録されている
–みんな大好き
しかしその実態は・・・
• 何も考えずに使うと謎のバグを撒き散らす! –遅い
–消える
–落ちる
–動かなくなる
– etc...
• 今回は、夏の夜にぴったり?な、 February 2011 で起こったお話です。
消えるバインディング
• ListPicker に大量のデータを追加 – 100個とか入れるとパフォーマンス低下
• 60個くらい入れたところで、開いたり 閉じたりを繰り返すと、 突然選択項目が真っ白に!!
• 大量にデータを出す場面では ListPicker のような違うもの (別ページに ListBox)を使って回避
落ちるトランジション
• ページが切り替わってるときに、 Windows Phone 7っぽい感じの アニメーションをしてくれる。
• トランジション中にBackキーを押すと落ちる。
• トランジション完了のイベントを 見るようにして、イベントが完了するまでは 遷移系イベントを発生させないようにする。
動かなくなるスライダ
• フリックとかタップとかのめんどくさい計算をうまいことしてくれるGestureListener
• しかし、タッチのイベントを
監視しまくっているせいか、
ほかのドラッグを使う処理と干渉する
• スライダのつまみが動かなくなる!
GestureListenerその他の問題
• ピボットの上に置くと
イベントが発生しづらくなる
• MouseLeftButtonイベントを処理しているものがあると干渉して落ちる場合がある
August 2011 でいくつか解決
• 今週出たAugust 2011のアップデートで いくつかの問題は解決されたみたい。 – 消えるバインディング
• 追加されたアニメーションのおかげで 発現しにくくなった
– 落ちるトランジション • トランジション中はBackキーが ブロッキングされるようになってばっちり改善
• トランジション中に NavigationService.Navigateした場合の挙動は未検証
– 動かなくなるスライダ • 今も問題継続中…
まとめ
• Silverlight for Windows Phone Toolkitは 便利だけど、問題もちょこちょこあるよ。
• 何はともあれ August 2011 への アップデートおすすめ
– Mango対応
–パフォーマンス向上、バグ修正
• GestureListener はいらない子
–紹介した以外にも問題いろいろある
–標準のイベントでも簡単にできる