デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

68
グレープシティ株式会社 八巻 雄哉 デスクトップアプリ開発者が 押さえておくべき Windows 8 時代の変革 VSUG DAY 2012 Summer Twitter: @yamaki00 blog: d.hatena.ne.jp/Yamaki/

description

 

Transcript of デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

Page 1: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

グレープシティ株式会社 八巻 雄哉

デスクトップアプリ開発者が押さえておくべき Windows 8 時代の変革

VSUG DAY 2012 Summer

Twitter: @yamaki00 blog: d.hatena.ne.jp/Yamaki/

Page 2: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

Page 3: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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

Page 4: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

BUILD2011 基調講演より

• Windows 7よりさらによくなる

Windows 8では、Windows 7で動作していたものがすべて動く

• Windowsをチップセットからエクスペリエンスまで再考する

新しく幅広い「可能性、シナリオ、フォームファクター」

www.buildwindows.com

Windows 8

4

Page 5: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

BUILD2011 基調講演より

• Windows 7よりさらによくなる

Windows 8では、Windows 7で動作していたものがすべて動く

• Windowsをチップセットからエクスペリエンスまで再考する

新しく幅広い「可能性、シナリオ、フォームファクター」

www.buildwindows.com

Windows 8

5

Page 6: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

BUILD2011 基調講演より

• Windows 7よりさらによくなる

Windows 8では、Windows 7で動作していたものがすべて動く

• Windowsをチップセットからエクスペリエンスまで再考する

新しく幅広い「可能性、シナリオ、フォームファクター」

www.buildwindows.com

Windows 8

6

Page 7: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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 についても受けられると考えていただいてかまいません。

Page 8: デスクトップアプリ開発者が押さえておくべき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

Page 9: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

サポート問い合わせ件数の比率

9

0%

20%

40%

60%

80%

100%

2002年

2003年

2004年

2005年

2006年

2007年

2008年

2009年

2010年

2011年

ActiveX

.NET

Page 10: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

出荷ライセンス数の比率

10

0%

20%

40%

60%

80%

100%

2002年

2003年

2004年

2005年

2006年

2007年

2008年

2009年

2010年

2011年

ActiveX

.NET

Page 11: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

出荷ライセンス数の比率

11

0%

20%

40%

60%

80%

100%

2002年

2003年

2004年

2005年

2006年

2007年

2008年

2009年

2010年

2011年

ActiveX

.NET

Page 12: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

デスクトップで変わること

12

① スタート***

• メニュー ⇒ スクリーン

② デスクトップテーマ

• Aero ⇒ ???(名称不明)

Page 13: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

スタート メニュー/スクリーン

Windows 7 Windows 8 Release Preview

13

Page 14: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

Windows 7 Windows 8 Release Preview

14

デスクトップテーマ

※Release Previewの外観は最終的なものではない

Page 15: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

15

ソフトウェアは 変わらずとも ハードウェアが 変わる

Page 16: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

ハイブリッド型PC

16

Page 17: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

世界市場全体

61%

米国コンシューマ市場

17

パソコン = ノートPC

76%

Page 18: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

どちらを購入しますか?

スレートとしてもノートとしても 使えるPC

ノートとしてしか 使えないPC

ハードウェアメーカーはタッチ対応を迫られる

18

Page 19: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

19

でもお高いんでしょう?

Page 20: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

大量生産されると安くなる例

20

Page 21: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

ハードウェアの変革

21

① タッチ可能なデバイスの普及

② ディスプレイの高精細化

Page 22: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

22

タッチ

Page 23: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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 日)

Page 24: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

Building Windows 8の記事より

24

数十年後 (おそらくはもっと早く)、 私たちはこの過渡期を振り返り、

「ねえ、PC の画面がタッチ操作に 対応していなかったころを覚えてる?

今考えると変だよね」

などと言い合うことになるでしょう。

Page 25: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

スティーブン・シノフスキー氏インタビュー

25

開発責任者に聞くWindows 8の世界「2年後、タッチできないPCは欠陥品に思われる」 http://plusd.itmedia.co.jp/pcuser/articles/1204/26/news090_2.html

そして2年後、もしその時点でもタッチ機能を搭載しないPCが店頭にあったならば、

消費者は画面を触ってみて、 「これは壊れているのではないか?」と

訝(いぶか)しむようになると思います。

Page 26: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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

Page 27: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

異なる操作方法の共存

27

Webブラウザの「前のページに戻る」

キーボード

マウス

+

Page 28: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

28

デスクトップアプリの タッチ対応

Page 29: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

デスクトップにタッチは必要?

29

デスクトップアプリが タッチに対応する必要あるの?

本当は必要ないはず(タッチ対応は Metroスタイルアプリが理想)

でも不可抗力的に タッチされてしまうのでは?

Page 30: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

レガシーサポート

ジェスチャ マップ先 生成されるメッセージ

タッチ マウスの左クリック WM_LBUTTONDOWN WM_LBUTTONUP

パン スクロールホイールの使用 WM_VSCROLL WM_HSCROLL

プレスアンドホールド マウスの右クリック WM_RBUTTONDOWN WM_RBUTTONUP

ズーム

Ctrlキーを押しながら マウス ホイールを 回転させて スクロールする操作

lParam で MK_CONTROLが 設定された WM_MOUSEWHEEL

30

Page 31: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

31

DEMO

レガシーサポート

31

VSUG DAY 2012 Summer

Page 32: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

対応が必要となる操作

① マウスカーソルの位置に依存した操作

例:マウスホバーでドロップダウン

② BUTTONDOWNとBUTTONUPを 分けて処理する必要がある操作

例:マウスボタン押しっぱなし操作

③ マウス用の寸法でタッチ不能

例:スライダーのつまみをドラッグ

32

Page 33: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

小さすぎてタッチ不能の例

33

Page 34: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

小さすぎてタッチ不能の例

34

Page 35: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

35

DEMO

レイアウトを保ったまま サイズを確保する例

35

VSUG DAY 2012 Summer

Page 36: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

ご期待ください

グレープシティでは、

Windowsフォーム と

ASP.NET Webフォーム の主力製品において、Windows 8における

タッチ操作への対応を

予定しています

36

Page 37: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

37

高精細化

Page 38: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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

Page 39: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

画面の回転

39

Page 40: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

ウィンドウサイズの固定

1024ピクセル

768ピ

クセ

最大化/最小化ボタンは非表示

40

Page 41: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

17インチ、SXGA(1,280×1,024)

41

Page 42: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

23インチ、FHD(1,920×1,080)

42

Page 43: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

画面サイズに対応させる2つの手法

43

画面に合わせたスケーリングの ガイドライン (Metro スタイル アプリ) http://msdn.microsoft.com/ja-jp/library/windows/apps/hh780612.aspx

固定レイアウト

アダプティブレイアウト

Page 44: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

固定レイアウト

44

Page 45: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

45

DEMO

固定レイアウト

45

VSUG DAY 2012 Summer

Page 46: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

アダプティブレイアウト

46

Page 47: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

47

DEMO

アダプティブレイアウト

47

VSUG DAY 2012 Summer

Page 48: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

アダプティブレイアウトにする際のポイント

固定レイアウトにする領域とアダプティブレイアウトにする領域を決める

固定レイアウトの領域であっても、 可能な限り相対配置とする

アダプティブレイアウトにする領域の 下限値と上限値を設定する

第6回 .NET中心会議『XAMLで学ぶレイアウトスキル』 http://www.atmarkit.co.jp/fdotnet/chushin/chushinmeeting_06/chushinmeeting_06_01.html

48

Page 49: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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

Page 50: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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

Page 51: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

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

Page 52: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

約96PPI

52

23インチ、FHD(1,920×1,080)

Page 53: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

約128PPI

53

23インチ、WQHD(2,560×1,440)

Page 54: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

約192PPI

54

23インチ、???(3,840×2,160)

Page 55: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

Windows 7

55

15.6インチ 340×190mm 1920×1080 約143PPI

Page 56: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

Windows 8 Release Preview

56

15.6インチ 340×190mm 1920×1080 約143PPI

Page 57: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

Windows 8 Release Preview

57

11.6インチ 260×160mm 1366×768 約133PPI

Page 58: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

125%以下 126%以上

58

カスタムサイズ変更オプション

XP形式のスケーリング:Onが既定 XP形式のスケーリング:Offが既定

Page 59: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

XP形式のスケーリングを使用しない

59

DPI仮想化によるスケーリング

一度96DPI相当で画面表示領域外に描画し、それをDWMがシステムのDPIに合わせて ビットマップ的に拡大して表示

スケーリングに全く対応していないアプリ でも、レイアウトはくずれない

ビットマップ的な拡大のため、 ぼやけた印象の表示となる

Page 60: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

60

DPIスケーリングが 変わるとどうなるのか?

Windowsフォームの場合

Page 61: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

XP形式のスケーリング:On XP形式のスケーリング:Off

61

XP形式のスケーリングか否か

Page 62: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

AutoScaleModeプロパティ

62

None 自動スケーリングが無効です。

Font (プロジェクトテンプレートにおけるフォームの既定値)

クラスで使用されているフォント (通常はシステムのフォント) の大きさを基準としてスケールを制御します。

Dpi ディスプレイの解像度を基準としてスケールを制御します。 一般的な解像度は 96 dpi と 120 dpi です。

Inherit (本来の既定値)

クラスの親のスケーリング モードに従ってスケールを制御します。 親が存在しない場合は、自動スケーリングが無効になります。

Page 63: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

スケーリングの動作

63

設計時のシステムフォントサイズ/DPIをAutoScaleDimensionsプロパティに保存

実行時にCurrentAutoScaleDimensionsプロパティから比率を計算し、スケール処理を行う

Page 64: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

注意点

64

異なるシステムフォントサイズ/DPI設定の 環境でプロジェクトを共有できない

あくまでもフォームが読み込まれる時に 一度だけスケール処理が行われるため、 実行時にピクセルサイズを設定する場合には、 DPIの比率を乗算してやる必要がある

スケール結果は 各コントロールのScaleメソッドの処理に依存

Page 65: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

65

DEMO

Windowsフォームのスケーリング

65

VSUG DAY 2012 Summer

Page 66: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

ご期待ください

グレープシティでは、

Windowsフォーム と

ASP.NET Webフォーム の主力製品において、Windows 8における

高DPIへの対応を

予定しています

66

Page 67: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革

VSUG DAY 2012 Summer

まとめ

67

デスクトップにおける Windows 8時代の変革

タッチ可能なデバイスの普及

ディスプレイの高精細化

Page 68: デスクトップアプリ開発者が押さえておくべきWindows 8時代の変革