SlideShare a Scribd company logo
Webサービスにおける

Surface Pro 3 対応とは
...about

Surface Pro 3
...about Surface Pro 3
OS Windows 8.1 Pro
ディスプレイサイズ 12 インチ
解像度 2,160 x 1,440
デバイスピクセル比 IE : 1 / IE以外 : 1.5
CSSピクセル IE : 2,160 x 1,440 / IE以外 : 1,440 x 960
標準ブラウザ Internet Explorer 11
入力デバイス Surfaceペン、指、マウス、キーボード
センサー 光センサー、加速度センサー、ジャイロスコープ、電子コンパス
サイズ 292mm 201.3mm 9.1mm、 800g
vendor Microsoft
※ 2014年11月現在
Surface Pro 3
対応
Surface Pro 3の特性を活かし
最適なユーザ体験を提供すること
Surface Pro 3 対応
Surface Pro 3

Web Browser
Internet Explorer 11
Surface Pro 3 Web Browser
User Agent
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0;
Touch; rv:11.0) like Gecko
※ 他のデバイスのUser Agent
iPhone
(SP)
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X)
AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/
11D201 Safari/9537.53
iPad
(Tablet)
Mozilla/5.0 (iPad; CPU OS 8_1_1 like Mac OS X) AppleWebKit/
600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B435 Safari/
600.1.4
GALAXY S4
(SP)
Mozilla/5.0 (Linux; Android 4.2.2; ja-jp; SC-04E Build/JDQ39)
AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/
18.0.1025.308 Mobile Safari/535.19
Nexus 10
(Tablet)
Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72
Safari/537.36
Windows
Phone
Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/
5.0; IEMobile/9.0)
Surface Pro 3 Web Browser
Internet Explorer 11
Surface Pro 3 Web Browser
User Agent
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0;
Touch; rv:11.0) like Gecko
↓ 再度凝視... ↓
Internet Explorer 11
Surface Pro 3 Web Browser
Surface Pro 3
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0;
Touch; rv:11.0) like Gecko
PC

(Touchless)
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:
11.0) like Gecko
↓ PC IEと比較... ↓
Internet Explorer 11
Surface Pro 3 Web Browser
Surface Pro 3を特定する情報は
含まれていない
Internet Explorer 11
Surface Pro 3 Web Browser
Touch PCであることだけは
特定できる
Touch PC
Touch PC
Touch PC
多様なディスプレイサイズと
多様な入力方法が用意された

Windows PC
・・・
タブレットの枠に

おさまらない
他のタブレット実装との比較
他のタブレット実装との比較
Apple 製品における Safari の例
Mac OS

(PC)
iOS
iPhone (SP)
iPad

(Tablet)
上記すべて、特定可能 & 専用ページ提供可能
※ 専用ページを提供することの是非はまた別の議論
他のタブレット実装との比較
Android 標準ブラウザの例
Android OS
上記すべて、特定可能 & 専用ページ提供可能
※ 専用ページを提供することの是非はまた別の議論
Mobile Safari (SP)
Safari

(Tablet)
ここまでのまとめ
ここまでのまとめ
• サービス側から特定できない
• 専用コンテンツの提供はできない
• Win 8 Touch PCの1機種
• Touch端末であることの特定はできる
• Windows PCとしてのコンテンツ提供が必要
• PC用 IE11としてのコンテンツ提供が必要
Surface Pro 3 は
以上を踏まえた上で

あえて...
今後、もしも

Surfaceのシェアが拡大した場合に、

無視できなくなるかもしれない

現実のひとつとして...
Surface Pro 3

(Touch PC)
最適化
Surface Pro 3 (Touch PC) 最適化
前提 1
Surface Pro 3 ユーザーは
PCページに導かれる
前提 2
Win 8 PCにおいて、コンテンツは

常にタッチされる可能性を

含んでいる
Surface Pro 3 (Touch PC) 最適化
Surface Pro 3

(Touch PC)
最適化
UI
UI
• マウスやペンによるクリック、ドラグ操作
• 指によるタッチやムーブ、スワイプ操作
両立したUIを提供する
Surface Pro 3 (Touch PC) 最適化
UI
つまり
iPadで閲覧されることを想定して
PC UIをデザインする場合
と同様
Surface Pro 3 (Touch PC) 最適化
UI - サイズ
Surface Pro 3 (Touch PC) 最適化
リンクサイズ(タップエリア)は
なるべく大きく、

理想は44px角(※)以上
※ 押し間違いが1%未満になるサイズ = 44px以上
⃝ better
UI - 操作 1
Surface Pro 3 (Touch PC) 最適化
Click

Tap
Swipe
Click

Tap
操作系においては

マウス操作とタッチ操作を両立する
UI - 操作 2
Surface Pro 3 (Touch PC) 最適化
Click

Tap
Pinch
操作系においては

マウス操作とタッチ操作を両立する
Surface Pro 3

(Touch PC)
最適化
Rotate
Rotate
Surface Pro 3 (Touch PC) 最適化
Surfaceのタブレットらしさの1つ
SurfaceはRotateできる
Rotate
Surface Pro 3 (Touch PC) 最適化
SurfaceのIE以外のCSSピクセル
1,440 x 960
Rotate
Surface Pro 3 (Touch PC) 最適化
たとえば
横幅1,000pxのコンテンツにおいて
40px欠ける
これを防ぐためには
リキッドレイアウトなどの
対応が求められる
Surface Pro 3

(Touch PC)
最適化
JavaScript - Event
JavaScript - Event
Surface Pro 3 (Touch PC) 最適化
非 Touch PC mousedown、mousemove、mouseup
Touch PC IE pointerdown、pointermove、pointerup
Touch PC webkit系
touchstart、touchmove、touchend => タッチ
mousedown、mousemove、mouseup => マウスなど
※ すべて設定する
Touch PC mozilla mousedown、mousemove、mouseup
JavaScript - Event 1
Surface Pro 3 (Touch PC) 最適化
var eventConf = {
// touch
touch: {
start: 'touchstart',
move: 'touchmove',
end: 'touchend'
},
!
// pointer
pointer: {
start: 'pointerdown',
move: 'pointermove',
end: 'pointerup'
},
!
// mouse
mouse: {
start: 'mousedown',
move: 'mousemove',
end: 'mouseup'
}
};
JavaScript - Event 1
Surface Pro 3 (Touch PC) 最適化
var eventTouch = {
start: (conf.isTouch)? eventConf.touch.start: (conf.isPointer)? eventConf.pointer.start:
eventConf.mouse.start,
move: (conf.isTouch)? eventConf.touch.move: (conf.isPointer)? eventConf.pointer.move:
eventConf.mouse.move,
end: (conf.isTouch)? eventConf.touch.end: (conf.isPointer)? eventConf.pointer.end: eventConf.mouse.end
};
JavaScript - Event 1
Surface Pro 3 (Touch PC) 最適化
// start
TARGET.addEventListener(eventTouch.start, dragStart);
TARGET.addEventListener(eventConf.mouse.start, dragStart); // for Touch PC Chrome
!
// move and end
function setEvent() {
// move
TARGET.addEventListener(eventTouch.move, drag);
TARGET.addEventListener(eventConf.mouse.move, drag); // for Touch PC Chrome
!
// end
TARGET.addEventListener(eventTouch.end, dragEnd);
TARGET.addEventListener(eventConf.mouse.end, dragEnd); // for Touch PC Chrome
}
!
// remove
function removeEvent() {
TARGET.removeEventListener(eventTouch.move, drag);
TARGET.removeEventListener(eventConf.mouse.move, drag); // for Touch PC Chrome
TARGET.removeEventListener(eventTouch.end, dragEnd);
TARGET.removeEventListener(eventConf.mouse.end, dragEnd); // for Touch PC Chrome
}
JavaScript - Event 1
Surface Pro 3 (Touch PC) 最適化
Demo
http://codepen.io/sekiyaeiji/pen/dPoJyz?editors=001
JavaScript - Event 2
Surface Pro 3 (Touch PC) 最適化
var eventConf = {
// touch
touch: {
start: 'touchstart mousedown', // Touch PC webkit対応を併記できる
move: 'touchmove mousemove', // Touch PC webkit対応を併記できる
end: 'touchend mouseup' // Touch PC webkit対応を併記できる
},
!
// pointer
pointer: {
start: 'pointerdown',
move: 'pointermove',
end: 'pointerup'
},
!
// mouse
mouse: {
start: 'mousedown',
move: 'mousemove',
end: 'mouseup'
}
};
jQueryだと...
JavaScript - Event 2
Surface Pro 3 (Touch PC) 最適化
var eventTouch = {
start: (conf.isTouch)? eventConf.touch.start: (conf.isPointer)? eventConf.pointer.start:
eventConf.mouse.start,
move: (conf.isTouch)? eventConf.touch.move: (conf.isPointer)? eventConf.pointer.move:
eventConf.mouse.move,
end: (conf.isTouch)? eventConf.touch.end: (conf.isPointer)? eventConf.pointer.end: eventConf.mouse.end
};
jQueryだと...
JavaScript - Event 2
Surface Pro 3 (Touch PC) 最適化
// start
$(document).on(eventTouch.start, $TARGET, dragStart);
!
// move and end
function setEvent() {
// move
$(document).on(eventTouch.move, $TARGET, drag);
!
// end
$(document).on(eventTouch.end, $TARGET, dragEnd);
}
!
// remove
function removeEvent() {
$(document).off(eventTouch.move, $TARGET);
$(document).off(eventTouch.end, $TARGET);
}
jQueryだと...
最後に
2014年7月に発売以来、

売れ行きは爆発的とはいかず
じわじわと売れているらしい
Surface Pro 3
PCコンテンツをそのまま
表示するだけでも十分
ただし
Touch操作可能でPC的なデバイスが
さらに普及することになると
前述のようなケアが
より重要になることでしょう
関家栄治
!
!
フロントエンドエンジニア
!


https://twitter.com/sekiyaeiji

More Related Content

Similar to Webサービスにおける
Surface Pro 3 対応とは

Windows 10 Developer Readiness [Japan]
Windows 10 Developer Readiness [Japan]Windows 10 Developer Readiness [Japan]
Windows 10 Developer Readiness [Japan]
Akira Hatsune
 
【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏
【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏
【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏Developers Summit
 
Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作
Osamu Monoe
 
Surface SDK オリエンテーション
Surface SDK オリエンテーションSurface SDK オリエンテーション
Surface SDK オリエンテーション
株式会社セカンドファクトリー
 
第8回 業開中心会議 LT 「User Agent の 変遷」
第8回業開中心会議 LT 「User Agent の 変遷」第8回業開中心会議 LT 「User Agent の 変遷」
第8回 業開中心会議 LT 「User Agent の 変遷」
Akinari Tsugo
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Pathdynamis
 
Appsheet基礎講座.pptx
Appsheet基礎講座.pptxAppsheet基礎講座.pptx
Appsheet基礎講座.pptx
ssuser5f5987
 
GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社
GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社
GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社
Game Tools & Middleware Forum
 
Microsoft Edgeで サポートされる 新しい API について
Microsoft Edgeでサポートされる新しい API についてMicrosoft Edgeでサポートされる新しい API について
Microsoft Edgeで サポートされる 新しい API について
Osamu Monoe
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
Masahiro Hidaka
 
Firefox FAQ
Firefox FAQFirefox FAQ
Firefox FAQ
dynamis
 
デスクトップ アプリがこの先生きのこるには
デスクトップ アプリがこの先生きのこるにはデスクトップ アプリがこの先生きのこるには
デスクトップ アプリがこの先生きのこるには
Manato KAMEYA
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
c-mitsuba
 
デスクトップ アプリがこの先生きのこるには (2)
デスクトップ アプリがこの先生きのこるには (2)デスクトップ アプリがこの先生きのこるには (2)
デスクトップ アプリがこの先生きのこるには (2)
Manato KAMEYA
 
Unite 2014 Seattle を踏まえて Unityゲーム開発 on Windows
Unite 2014 Seattle を踏まえて Unityゲーム開発 on WindowsUnite 2014 Seattle を踏まえて Unityゲーム開発 on Windows
Unite 2014 Seattle を踏まえて Unityゲーム開発 on Windows
Akira Onishi
 
スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)
スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)
スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)Taiichirou Shibuya
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability SeminarVisso株式会社
 
tvOS tips
tvOS tipstvOS tips
tvOS tips
Tomoya Hirano
 

Similar to Webサービスにおける
Surface Pro 3 対応とは (20)

Windows 10 Developer Readiness [Japan]
Windows 10 Developer Readiness [Japan]Windows 10 Developer Readiness [Japan]
Windows 10 Developer Readiness [Japan]
 
【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏
【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏
【B-1】スマートデバイスとクラウドが実現するソフトウェアの革新~上陸した Windows Phone7 と Kinect による AR世界の実現~ 西脇資哲氏
 
Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作
 
Surface SDK オリエンテーション
Surface SDK オリエンテーションSurface SDK オリエンテーション
Surface SDK オリエンテーション
 
第8回 業開中心会議 LT 「User Agent の 変遷」
第8回業開中心会議 LT 「User Agent の 変遷」第8回業開中心会議 LT 「User Agent の 変遷」
第8回 業開中心会議 LT 「User Agent の 変遷」
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
Appsheet基礎講座.pptx
Appsheet基礎講座.pptxAppsheet基礎講座.pptx
Appsheet基礎講座.pptx
 
GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社
GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社
GTMF 2015: ゲームプラットフォームとしての Windows 10 | 日本マイクロソフト株式会社
 
Microsoft Edgeで サポートされる 新しい API について
Microsoft Edgeでサポートされる新しい API についてMicrosoft Edgeでサポートされる新しい API について
Microsoft Edgeで サポートされる 新しい API について
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
 
Firefox FAQ
Firefox FAQFirefox FAQ
Firefox FAQ
 
Report01 access speed
Report01 access speedReport01 access speed
Report01 access speed
 
デスクトップ アプリがこの先生きのこるには
デスクトップ アプリがこの先生きのこるにはデスクトップ アプリがこの先生きのこるには
デスクトップ アプリがこの先生きのこるには
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
デスクトップ アプリがこの先生きのこるには (2)
デスクトップ アプリがこの先生きのこるには (2)デスクトップ アプリがこの先生きのこるには (2)
デスクトップ アプリがこの先生きのこるには (2)
 
Unite 2014 Seattle を踏まえて Unityゲーム開発 on Windows
Unite 2014 Seattle を踏まえて Unityゲーム開発 on WindowsUnite 2014 Seattle を踏まえて Unityゲーム開発 on Windows
Unite 2014 Seattle を踏まえて Unityゲーム開発 on Windows
 
スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)
スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)
スマートフォンマルチデバイス時代のwebサイト戦略セミナー資料(2013/2/5)
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 
tvOS tips
tvOS tipstvOS tips
tvOS tips
 

More from eiji sekiya

ぐるなびあるあるLt2017
ぐるなびあるあるLt2017ぐるなびあるあるLt2017
ぐるなびあるあるLt2017
eiji sekiya
 
Q&Aで振り返る「Back to Basics」 CSS 2015.08.30
Q&Aで振り返る「Back to Basics」 CSS 2015.08.30Q&Aで振り返る「Back to Basics」 CSS 2015.08.30
Q&Aで振り返る「Back to Basics」 CSS 2015.08.30
eiji sekiya
 
フロントエンド実装 グロースのポイント
フロントエンド実装 グロースのポイントフロントエンド実装 グロースのポイント
フロントエンド実装 グロースのポイント
eiji sekiya
 
マークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScriptマークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScript
eiji sekiya
 
マークアップ講座 03 スマートフォン・デバイス最適化
マークアップ講座 03 スマートフォン・デバイス最適化マークアップ講座 03 スマートフォン・デバイス最適化
マークアップ講座 03 スマートフォン・デバイス最適化
eiji sekiya
 
マークアップ講座 02 CSS
マークアップ講座 02 CSSマークアップ講座 02 CSS
マークアップ講座 02 CSS
eiji sekiya
 
マークアップ講座 01b HTML
マークアップ講座 01b HTMLマークアップ講座 01b HTML
マークアップ講座 01b HTML
eiji sekiya
 
マークアップ講座 01a プロローグ
マークアップ講座 01a プロローグマークアップ講座 01a プロローグ
マークアップ講座 01a プロローグ
eiji sekiya
 

More from eiji sekiya (8)

ぐるなびあるあるLt2017
ぐるなびあるあるLt2017ぐるなびあるあるLt2017
ぐるなびあるあるLt2017
 
Q&Aで振り返る「Back to Basics」 CSS 2015.08.30
Q&Aで振り返る「Back to Basics」 CSS 2015.08.30Q&Aで振り返る「Back to Basics」 CSS 2015.08.30
Q&Aで振り返る「Back to Basics」 CSS 2015.08.30
 
フロントエンド実装 グロースのポイント
フロントエンド実装 グロースのポイントフロントエンド実装 グロースのポイント
フロントエンド実装 グロースのポイント
 
マークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScriptマークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScript
 
マークアップ講座 03 スマートフォン・デバイス最適化
マークアップ講座 03 スマートフォン・デバイス最適化マークアップ講座 03 スマートフォン・デバイス最適化
マークアップ講座 03 スマートフォン・デバイス最適化
 
マークアップ講座 02 CSS
マークアップ講座 02 CSSマークアップ講座 02 CSS
マークアップ講座 02 CSS
 
マークアップ講座 01b HTML
マークアップ講座 01b HTMLマークアップ講座 01b HTML
マークアップ講座 01b HTML
 
マークアップ講座 01a プロローグ
マークアップ講座 01a プロローグマークアップ講座 01a プロローグ
マークアップ講座 01a プロローグ
 

Webサービスにおける
Surface Pro 3 対応とは