デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革
-
Upload
yuya-yamaki -
Category
Technology
-
view
16 -
download
3
description
Transcript of デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革
グレープシティ株式会社 八巻 雄哉
デスクトップアプリ開発者が押さえておくべき Windows 8 時代の変革
VSUG DAY 2012 Summer
Twitter: @yamaki00 blog: d.hatena.ne.jp/Yamaki/
VSUG DAY 2012 Summer
VSUG DAY 2012 Summer
BUILD2011 基調講演より
• Makes Windows 7 even better
Everything that runs on Windows 7 runs on Windows 8
• Reimagines Windows from the chipset to experience
New range of capabilities, scenarios, form factors
www.buildwindows.com
Windows 8
3
VSUG DAY 2012 Summer
BUILD2011 基調講演より
• Windows 7よりさらによくなる
Windows 8では、Windows 7で動作していたものがすべて動く
• Windowsをチップセットからエクスペリエンスまで再考する
新しく幅広い「可能性、シナリオ、フォームファクター」
www.buildwindows.com
Windows 8
4
VSUG DAY 2012 Summer
BUILD2011 基調講演より
• Windows 7よりさらによくなる
Windows 8では、Windows 7で動作していたものがすべて動く
• Windowsをチップセットからエクスペリエンスまで再考する
新しく幅広い「可能性、シナリオ、フォームファクター」
www.buildwindows.com
Windows 8
5
VSUG DAY 2012 Summer
BUILD2011 基調講演より
• Windows 7よりさらによくなる
Windows 8では、Windows 7で動作していたものがすべて動く
• Windowsをチップセットからエクスペリエンスまで再考する
新しく幅広い「可能性、シナリオ、フォームファクター」
www.buildwindows.com
Windows 8
6
VSUG DAY 2012 Summer
VB6 on Windows 8
7
Windows Vista、Windows Server 2008、Windows 7、および Windows 8 に対する Visual Basic 6.0 のサポートに関する声明 http://msdn.microsoft.com/ja-jp/vstudio/ms788708.aspx
VB6 ランタイムは Windows 8 のサポート有効期間中はOSに同梱される形で出荷され、サポートされます。 Visual Basic 6.0 ランタイム ファイルは今後も 32 ビットのみであり、すべてのコンポーネントは 32 ビット アプリケーション プロセスでホストされている必要があります。 開発者の方は、Windows 7 の場合と同様のサポートが Windows 8 についても受けられると考えていただいてかまいません。
VSUG DAY 2012 Summer
サポート問い合わせ件数の比率
8
0%
20%
40%
60%
80%
100%
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
ActiveX
.NET
VSUG DAY 2012 Summer
サポート問い合わせ件数の比率
9
0%
20%
40%
60%
80%
100%
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
ActiveX
.NET
VSUG DAY 2012 Summer
出荷ライセンス数の比率
10
0%
20%
40%
60%
80%
100%
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
ActiveX
.NET
VSUG DAY 2012 Summer
出荷ライセンス数の比率
11
0%
20%
40%
60%
80%
100%
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
ActiveX
.NET
VSUG DAY 2012 Summer
デスクトップで変わること
12
① スタート***
• メニュー ⇒ スクリーン
② デスクトップテーマ
• Aero ⇒ ???(名称不明)
VSUG DAY 2012 Summer
スタート メニュー/スクリーン
Windows 7 Windows 8 Release Preview
13
VSUG DAY 2012 Summer
Windows 7 Windows 8 Release Preview
14
デスクトップテーマ
※Release Previewの外観は最終的なものではない
VSUG DAY 2012 Summer
15
ソフトウェアは 変わらずとも ハードウェアが 変わる
VSUG DAY 2012 Summer
ハイブリッド型PC
16
VSUG DAY 2012 Summer
世界市場全体
61%
米国コンシューマ市場
17
パソコン = ノートPC
76%
VSUG DAY 2012 Summer
どちらを購入しますか?
スレートとしてもノートとしても 使えるPC
ノートとしてしか 使えないPC
ハードウェアメーカーはタッチ対応を迫られる
18
VSUG DAY 2012 Summer
19
でもお高いんでしょう?
VSUG DAY 2012 Summer
大量生産されると安くなる例
20
VSUG DAY 2012 Summer
ハードウェアの変革
21
① タッチ可能なデバイスの普及
② ディスプレイの高精細化
VSUG DAY 2012 Summer
22
タッチ
VSUG DAY 2012 Summer
Building Windows 8の記事より
23
「マウスは良いアイデアだが、ビジネス ユーザーの 役に立つかどうかは疑わしい」 (George Vinall、PC Week、1984 年 4 月 24 日)
「使うのはとても楽しかったが、ビジネスの視点から 考えると生産性に疑問を持たざるを得ない」 (George Vinall、PC Week、1984 年 4 月 24 日)
「会社役員のような特定のターゲット層にとって、 マウスはコンピューターを使いやすく馴染みやすい ものにしてくれるのだろうか。答えはノーだ」 (Computerworld、1983 年 10 月 31 日)
VSUG DAY 2012 Summer
Building Windows 8の記事より
24
数十年後 (おそらくはもっと早く)、 私たちはこの過渡期を振り返り、
「ねえ、PC の画面がタッチ操作に 対応していなかったころを覚えてる?
今考えると変だよね」
などと言い合うことになるでしょう。
VSUG DAY 2012 Summer
スティーブン・シノフスキー氏インタビュー
25
開発責任者に聞くWindows 8の世界「2年後、タッチできないPCは欠陥品に思われる」 http://plusd.itmedia.co.jp/pcuser/articles/1204/26/news090_2.html
そして2年後、もしその時点でもタッチ機能を搭載しないPCが店頭にあったならば、
消費者は画面を触ってみて、 「これは壊れているのではないか?」と
訝(いぶか)しむようになると思います。
VSUG DAY 2012 Summer
第三次ユーザインターフェース革命
CUI(Character User Interface)
GUI(Graphical User Interface)
NUI(Natural User Interface)
Touch User Interface
Tangible User Interface
Perceptual User Interface
26
VSUG DAY 2012 Summer
異なる操作方法の共存
27
Webブラウザの「前のページに戻る」
キーボード
マウス
+
VSUG DAY 2012 Summer
28
デスクトップアプリの タッチ対応
VSUG DAY 2012 Summer
デスクトップにタッチは必要?
29
デスクトップアプリが タッチに対応する必要あるの?
本当は必要ないはず(タッチ対応は Metroスタイルアプリが理想)
でも不可抗力的に タッチされてしまうのでは?
VSUG DAY 2012 Summer
レガシーサポート
ジェスチャ マップ先 生成されるメッセージ
タッチ マウスの左クリック WM_LBUTTONDOWN WM_LBUTTONUP
パン スクロールホイールの使用 WM_VSCROLL WM_HSCROLL
プレスアンドホールド マウスの右クリック WM_RBUTTONDOWN WM_RBUTTONUP
ズーム
Ctrlキーを押しながら マウス ホイールを 回転させて スクロールする操作
lParam で MK_CONTROLが 設定された WM_MOUSEWHEEL
30
VSUG DAY 2012 Summer
31
DEMO
レガシーサポート
31
VSUG DAY 2012 Summer
VSUG DAY 2012 Summer
対応が必要となる操作
① マウスカーソルの位置に依存した操作
例:マウスホバーでドロップダウン
② BUTTONDOWNとBUTTONUPを 分けて処理する必要がある操作
例:マウスボタン押しっぱなし操作
③ マウス用の寸法でタッチ不能
例:スライダーのつまみをドラッグ
32
VSUG DAY 2012 Summer
小さすぎてタッチ不能の例
33
VSUG DAY 2012 Summer
小さすぎてタッチ不能の例
34
VSUG DAY 2012 Summer
35
DEMO
レイアウトを保ったまま サイズを確保する例
35
VSUG DAY 2012 Summer
VSUG DAY 2012 Summer
ご期待ください
グレープシティでは、
Windowsフォーム と
ASP.NET Webフォーム の主力製品において、Windows 8における
タッチ操作への対応を
予定しています
36
VSUG DAY 2012 Summer
37
高精細化
VSUG DAY 2012 Summer
画面解像度の多様化
2006年7月
1280x
1024
1024x
768
1600x
1200
1400x
1050
その他
2012年5月
訪問者における画面解像度の内訳 Yuya Yamaki’s blog(http://d.hatena.ne.jp/Yamaki/)
1280x
1024
1920x
1080
1366x
768
1680x
1050
1280x
800
1920x
1200
その他
38
VSUG DAY 2012 Summer
画面の回転
39
VSUG DAY 2012 Summer
ウィンドウサイズの固定
1024ピクセル
768ピ
クセ
ル
最大化/最小化ボタンは非表示
40
VSUG DAY 2012 Summer
17インチ、SXGA(1,280×1,024)
41
VSUG DAY 2012 Summer
23インチ、FHD(1,920×1,080)
42
VSUG DAY 2012 Summer
画面サイズに対応させる2つの手法
43
画面に合わせたスケーリングの ガイドライン (Metro スタイル アプリ) http://msdn.microsoft.com/ja-jp/library/windows/apps/hh780612.aspx
固定レイアウト
アダプティブレイアウト
VSUG DAY 2012 Summer
固定レイアウト
44
VSUG DAY 2012 Summer
45
DEMO
固定レイアウト
45
VSUG DAY 2012 Summer
VSUG DAY 2012 Summer
アダプティブレイアウト
46
VSUG DAY 2012 Summer
47
DEMO
アダプティブレイアウト
47
VSUG DAY 2012 Summer
VSUG DAY 2012 Summer
アダプティブレイアウトにする際のポイント
固定レイアウトにする領域とアダプティブレイアウトにする領域を決める
固定レイアウトの領域であっても、 可能な限り相対配置とする
アダプティブレイアウトにする領域の 下限値と上限値を設定する
第6回 .NET中心会議『XAMLで学ぶレイアウトスキル』 http://www.atmarkit.co.jp/fdotnet/chushin/chushinmeeting_06/chushinmeeting_06_01.html
48
VSUG DAY 2012 Summer
ディスプレイの高精細化
3.5インチ、960×640(DoubleVGA)、326PPI
iPhone 4S
9.7インチ、2,048×1,536、264PPI
新しいiPad
10.1インチ、1,920×1,200(WUXGA)、224PPI
Asus Eee Pad Transformer Prime TF700T
Acer ICONIA TAB A700
15インチ、2,880×1,800、220PPI
MacBook Pro(Retinaディスプレイモデル)
49
VSUG DAY 2012 Summer
Intel: Retina laptop, desktop displays coming in 2013
50
http://liliputing.com/2012/04/intel-retina-laptop-desktop-displays-coming-in-2013.html
VSUG DAY 2012 Summer
Intel-Prognose:PC’s Leading the Race to 4K
51
http://www.3dcenter.org/news/intel-prognose-4k-monitore-ab-2013-im-premium-segment-ab-2015-im-mainstream-segment
VSUG DAY 2012 Summer
約96PPI
52
23インチ、FHD(1,920×1,080)
VSUG DAY 2012 Summer
約128PPI
53
23インチ、WQHD(2,560×1,440)
VSUG DAY 2012 Summer
約192PPI
54
23インチ、???(3,840×2,160)
VSUG DAY 2012 Summer
Windows 7
55
15.6インチ 340×190mm 1920×1080 約143PPI
VSUG DAY 2012 Summer
Windows 8 Release Preview
56
15.6インチ 340×190mm 1920×1080 約143PPI
VSUG DAY 2012 Summer
Windows 8 Release Preview
57
11.6インチ 260×160mm 1366×768 約133PPI
VSUG DAY 2012 Summer
125%以下 126%以上
58
カスタムサイズ変更オプション
XP形式のスケーリング:Onが既定 XP形式のスケーリング:Offが既定
VSUG DAY 2012 Summer
XP形式のスケーリングを使用しない
59
DPI仮想化によるスケーリング
一度96DPI相当で画面表示領域外に描画し、それをDWMがシステムのDPIに合わせて ビットマップ的に拡大して表示
スケーリングに全く対応していないアプリ でも、レイアウトはくずれない
ビットマップ的な拡大のため、 ぼやけた印象の表示となる
VSUG DAY 2012 Summer
60
DPIスケーリングが 変わるとどうなるのか?
Windowsフォームの場合
VSUG DAY 2012 Summer
XP形式のスケーリング:On XP形式のスケーリング:Off
61
XP形式のスケーリングか否か
VSUG DAY 2012 Summer
AutoScaleModeプロパティ
62
None 自動スケーリングが無効です。
Font (プロジェクトテンプレートにおけるフォームの既定値)
クラスで使用されているフォント (通常はシステムのフォント) の大きさを基準としてスケールを制御します。
Dpi ディスプレイの解像度を基準としてスケールを制御します。 一般的な解像度は 96 dpi と 120 dpi です。
Inherit (本来の既定値)
クラスの親のスケーリング モードに従ってスケールを制御します。 親が存在しない場合は、自動スケーリングが無効になります。
VSUG DAY 2012 Summer
スケーリングの動作
63
設計時のシステムフォントサイズ/DPIをAutoScaleDimensionsプロパティに保存
実行時にCurrentAutoScaleDimensionsプロパティから比率を計算し、スケール処理を行う
VSUG DAY 2012 Summer
注意点
64
異なるシステムフォントサイズ/DPI設定の 環境でプロジェクトを共有できない
あくまでもフォームが読み込まれる時に 一度だけスケール処理が行われるため、 実行時にピクセルサイズを設定する場合には、 DPIの比率を乗算してやる必要がある
スケール結果は 各コントロールのScaleメソッドの処理に依存
VSUG DAY 2012 Summer
65
DEMO
Windowsフォームのスケーリング
65
VSUG DAY 2012 Summer
VSUG DAY 2012 Summer
ご期待ください
グレープシティでは、
Windowsフォーム と
ASP.NET Webフォーム の主力製品において、Windows 8における
高DPIへの対応を
予定しています
66
VSUG DAY 2012 Summer
まとめ
67
デスクトップにおける Windows 8時代の変革
タッチ可能なデバイスの普及
ディスプレイの高精細化