windows 10 mobile uwpアプリの始め方~continuum編~ (公開用)
TRANSCRIPT
今日の内容Continuum for Phone• Continuum とは?• Continuum for Phone とは?• Continuum for Phone の形態
Continuum 対応アプリの開発• Continuum 対応アプリの要件• Continuum 対応アプリ開発のポイント
Continuum for Phone の活用方法
Windows 10 の Continuum
デバイスの物理形態に応じて、アプリと Windows シェルの外観と動作を最適化する• デバイスを変えたときのユーザ体験の連
続性Windows 10 での Continuum• タブレットモードとデスクトップモード
の切り替え
Continuum for Phone とは?Windows 10 Mobile 端末(電話)にContinuum 対応のアクセサリを付けて、モニターだけでなくマウスやキーボードを接続して、その電話をノート PC のように使い、さまざまな処理を実行するユーザ体験
アプリを表示するディスプレイに基づいてそのユーザーインターフェースを最適化する
Continuum for Phone の形態
https://msdn.microsoft.com/en-us/library/windows/hardware/mt608594
① ワイヤレスドングル
② 無線ドック ③ 有線ドック
① ワイヤレスドングルでの無線 Continuum
https://www.microsoft.com/hardware/ja-jp/p/wireless-display-adapter
ワイヤレスドングル
キーボード・マウスはBluetooth など無線で接続
無線 Continuum の拡張Miracast User Input Back Channel (UIBC) 拡張
Actiontec ScreenBeam Mini2 Continuum
Miracast アダプタに USB でキーボード、マウスを接続できる
キーボード、マウスの情報は UIBC で電話に送信される
ハードウェア要件Snapdragon 617(MS8952)・ NuAns NEO・ VAIO Phone Biz・ MADOSMA Q601
Snapdragon 808(MS8992)・ Lumia 950・ Lumia 950XL・ Acer Jade Primo
Snapdragon 810(MS8994)・?
Continuum for Phone
無線 Continuum• 端末がタッチパッドに• Continuum でのスタートメニュー• 大画面での表示• 2 画面対応したアプリの例
PowerPoint のプレゼンテーションモード
デモ
①Continuum 利用の検知Continuum の判別• SizeChanged イベントが発生
public MainPage(){ this.InitializeComponent(); Window.Current.SizeChanged += Current_SizeChanged;}
private void Current_SizeChanged( object sender, Windows.UI.Core.WindowSizeChangedEventArgs e){} デスクトップでウィンドウサイズが変更した場合と同じ
② 端末・外部ディスプレイの判別UserInteractionMode で判別• 端末画面 Touch• 外部モニタ Mouse
http://blogs.msdn.com/b/shintak/archive/2016/02/07/10668404.aspx
Continuum でアプリが対応すべきことサイズ変更イベントで Continuum 開始を検知
外部モニタへの表示は OS によって行われる
アプリがすること=サイズ変更イベントを検知して、解像度に応じて UI を変更する UWP アプリが複数の解像度に対応する場合と同じ
解像度に応じた UI 変更 – Adaptive UI
再配置 – Reposition
リサイズ – Resize
再流し込み – Reflow
再表示 - Reveal
置き換え - Replace
再構成 - Re-architect
置き換え - Replace
・デバイスの表示領域によって、表示される UI 要素を置き換える (例)小型のデバイスでは必要に応じて展開されるハンバーガースタイルメニュー、大型のデバイスでは常時表示されるタブやコマンドバーを使う
外部ディスプレイ表示への適応VisualState• AdaptiveTrigger
MinWindowWidth もしくは MinWindowHeightVisualState.Setters• x:Name=“name” を付けた他要素のプロパティを変更可能
例: RelativePanel の位置関係例: Grid の Column の幅( Grid.ColumnDefinition )
<VisualStateGroup x:Name="WindowSizeStates"> <VisualState x:Name="WideState"> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth=“720” /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="name.RelativePanel.Below" Value="img" /> <Setter Target="name.RelativePanel.AlignLeftWith" Value="img" /> </VisualState.Setters> </VisualState></VisualStateGroup>
AdaptiveTrigger での切り替えポイント
UI のレイアウトの切り替えは、デバイスの画面解像度を踏まえると、320 ・ 720 ・ 1024 がよい
電話 デスクトップタブレットファブレット
端末と外部ディスプレイの活用ProjectionManager で外部ディスプレイの表示を制御できる• 外部ディスプレイへの表示 ON• 端末と外部ディスプレイの表示入れ替え• 外部ディスプレイへの表示 OFF
【補足】 Continuum 非対応どうしても対応させたくない場合• Package.appxanifest
mobile:MobileMultiScreenProperties のRestrictToInternalScreen 属性を true に
<Applications> <Application ...> <Extensions> <mobile:Extension Category="windows.mobileMultiScreenProperties"> <mobile:MobileMultiScreenProperties RestrictToInternalScreen="true"/> </mobile:Extension> </Extensions> </Application> </Applications>
Continuum を何に使えるか?単なる大画面表示として• 端末と外部ディスプレイのそれぞれの操作性を考えて、 Adaptive UI でアプリを設計する。
電話端末と外部ディスプレイの 2 画面表示• 電話端末と外部ディスプレイの主・補助の関係によるパターンが考えられる。
単なる大画面表示として
・電話端末の画面よりは操作しやすい・必ずしもデスクトップと同じ機能が使えるわけではないので、あくまでデスクトップ PC の補完的位置づけ?
Excel
・この利用方法だけではアプリをアピールしづらいのでは?
電話端末と外部ディスプレイの 2 画面表示
PowerPoint のプレゼンモードのように電話と外部ディスプレイを補完的に使うことで、 PC のサブという位置付けとは違った方向で Continuum を活用できるのでは?
電話端末と外部ディスプレイの 2 画面表示案①カメラ• ディスプレイ⇒画像の確認用ビューア、画像情報の詳細表示、(タッチ対応であれば)シャッター/フォーカス操作• 端末 ⇒カメラ本体
商談での電子カタログ• ディスプレイ⇒顧客向けのカタログ画面• 端末 ⇒商品の在庫、価格などの担当者向け情報
家計簿・会計ソフト• ディスプレイ⇒帳簿• 端末 ⇒入力補助(電卓、科目の入力用リストなど)
まとめContinuum 対応は特別なことではない• UWP アプリとして複数解像度に対応しておく。• サイズ変更イベントを受けて、 Visual State&
Adaptive UI で適切な UI に変更する。
端末と外部ディスプレイの活用• 大画面での表示だけでなく、端末と外部ディスプレイの2画面を活用したアプリも考えたい。
Continuum for Phone の課題
デスクトップの代替には厳しい• 有線 Dock とモニタ、キーボードを用意するか?• デバイスの連続性よりも、 UWP アプリのマルチデバイス対応とクラウドによる同期で間に合いそう
参考資料MSDN• Continuum for Phone
• https://msdn.microsoft.com/en-us/library/windows/hardware/mt608594(v=vs.85).aspx
• ユニバーサル Windows プラットフォーム (UWP) アプリ用レスポンシブ デザイン 101• https://msdn.microsoft.com/ja-jp/library/windows/apps/dn958435.aspx
• プロジェクション マネージャーのガイドライン• https://msdn.microsoft.com/ja-jp/library/windows/apps/dn495078.aspx
参考資料MSDN ブログ (JP)
• Continuum for Phone ( 電話用の Continuum) に対応したアプリを作成する• http://blogs.msdn.com/b/naokis/archive/2016/02/04/continuum-for-pho
ne-continuum.aspx• スマートフォン用 Continuum について
• http://blogs.msdn.com/b/shintak/archive/2016/01/05/10662939.aspx• UWP を Continuum に完全対応させるには?
• http://blogs.msdn.com/b/shintak/archive/2016/02/07/10668366.aspx
参考資料MSDN ブログ (EN)
• Optimizing apps for Continuum for phone• https://blogs.windows.com/buildingapps/2015/12/07/optimizing
-apps-for-continuum-for-phone/• Make your app look great on any size screen or window (10 by 10)
• https://blogs.windows.com/buildingapps/2015/09/01/make-your-app-look-great-on-any-size-screen-or-window-10-by-10/
GitHub
• Hands on Workshop for Windows 10 Developer Training• https://github.com/Windows-Readiness/WinDevWorkshop
• 02. Adaptive UI