windows phone 7 用の 2ch ブラウザーを c# で作ってみた
DESCRIPTION
プログラミング生放送勉強会 第9回@大阪のセッション資料です。TRANSCRIPT
Windows Phone 7 用の2ch ブラウザーをC# で作ってみた
青柳 臣一
プログラミング生放送勉強会 第 9 回 @大阪
2011/06/11
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
自己紹介• 職業– ソフトウエア開発 @ 大阪 淀屋橋
WPF 、 Silverlight 、 C# 、 VB 、 Windows( Android 、 iOS )
• 連絡先– @ShinichiAoyagi などなど– ネット上でも本名なので ggr
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
生態• 自転車
ロードバイク最近ぜんぜん乗れてない orz
• ニコニコ動画「アイドルマスター」タグ「中村繪里子」タグ
の 1 日 1 回の新着チェックは欠かせない
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
Windows Phone 7
• Microsoft のスマートフォン– 2010 年 9 月 1 日 欧米でリリース– 2011 年 3 月後半から NoDo– 2011 年秋? Mango
• 特徴Windows Mobile とは別物ぬるぬる
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
開発環境• Windows Phone Developer Tools– Visual Studio 2010 Express for Windows Phone– Expression Blend for Windows Phone– エミュレーター
などなど
必要なものはひと通り揃う!無料!(でも今は英語版のみ)
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
App Hub
• http://create.msdn.com/– 実機への配置・デバッグ– Marketplace での配布(有料・無料)
9,800 円 / 年!
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
WP7 アプリ• Silverlight です!
• C# 、 VB など
• まぁ、けど、デスクトップ版とまったく同じってことはありません
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
HTC 7 Trophy ゲットだぜ!• うれしかった
• なにか作ってみたくなった
• スマフォの使用目的の 1 位、 2 位がTwitter と 2ch だったので、とりあえず 2chブラウザ作ってみることにした
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
作り始めてみたら• WPF/Silverlight の知識は使える!
• 標準機能は結構貧弱
• とりあえず Silverlight for Windows Phone Toolkit は入れとけ– http://silverlight.codeplex.com/
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
細々とした違い• スプラッシュスクリーンが勝手に表示さ
れたり
• ChildWindow が無かったり– Popup か非表示要素で– PopupView を作った– 戻るボタンに注意
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
いろいろ足りないものも• 文字コード変換– Silverlight / WP7 は utf-8 、 utf-16 だけ– Shift_JIS とかは自分で何とかする必要あり
• HttpWebRequest– Referer は書き換えられない– If-Modified-Since は使えない
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
なんか ListBox ばっかり• ItemsPanel– 縦スクロールだけじゃない!
• イマイチぬるぬる感が足りない
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
ScrollViewer で作ってみた• でかい Canvas を ScrollViewer でスクロール– それなりにうまくいく
– スクロール位置を取るには VerticalOffset に添付プロパティをアタッチする必要あり
• 欠点– でかい Canvas に描画するのに時間がかかる– そもそも ListBox とやってることは同じ
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
Canvas で作ってみた• Canvas に自前で描画– 全部自分で描く– それなりにうまくいく
• 欠点– コード量多し– そもそも ListBox とやってること同じでは?
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
WriteableBitmap で...• ビットマップにお絵かき– XAML の内容を Render– CodePlex の WriteableBitmapEx
• 欠点– 巨大な WriteableBitmap を作ると落ちる– そこそこの WriteableBitmap を複数作ると落
ちる• 用途によってはおもしろい– 本気でやるなら XNA でいいんじゃね?
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
結局のところ...• 普通に ListBox 使うのとあまり変わらない– 仮想化など気にしてあげた方がいいところは
ある
• Mango では ListBox 、 ScrollViewer のパフォーマンスが向上するらしい
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
デザインガイドライン• 戻るボタン– 検索ボタンは取れない?
• Execution Model– Deactivated 、 Activated イベント
プログラミング生放送勉強会 第 9 回 @ 大阪 2011/06/11
さいごに• さぁ、がんばって完成させようw
ご清聴ありがとうございました