Windows 10 Mobile によるリモートワークの可能性

この記事は「Windows 10 Mobile Advent Calendar 2017」に参加しています

さてさて、まずは下準備ということで、AzureでVMを作成しました。

これで、Windows 10 MobileのContinuumからつなごうという趣旨なわけです。

で、有線Continuumでやる予定だったのですが、ちょいとうまくつながらなくなったので、Windows10PCの接続アプリを使用して、Wi-Fiによる無線Continuumで作業しました。

準備ができたらW10M側のContinuumアプリで接続をかけます。

接続すると、普通にContinuumモードになります。

リモートデスクトップアプリに準備済みの接続実行!

証明書忘れてた(;’∀’)

サクッとWindowsが起動します。

というわけでVisualStudio2017搭載VMなので、起動して作成してみましょうかね。
……しまった、英語だったなこれ、まあ、設定で日本語にするなり、そのままでも問題なく使えると思いますが。

あ、OSがWindows10じゃないからUWPアプリ駄目じゃないか。

えーVMでWindows10のVMを選択の上で、VisualStudioをインストールしたほうがリモート開発環境としては良いということでw

リモートワークの可能性ということで、とりあえずW10M上のPowerPointを


有線Continuum&有線LANであれば、十分なVMを用意し、環境を整えればプログラム開発をリモートワークとして、セキュリティを保って行うことも可能ではないかと思います。

また、通常のofficeアプリでの作業はマクロをゴリゴリ使うということでなければ、十分使用可能であり、無線ContinuumまたはUSB-C to HDMI機器でのプレゼンなど業務も行えることでしょう。

これだけのことができる Windows 10 Mobile がという思いはありますね、、、
ただ、Windows 10 On ARMが正式に発表されたこともあるので、ひっくり返す何かが起きればうれしいですね。

Windows Phoneはいいぞーー!

de:code 2017 所感

Alex氏をはじめとしたMS本社の皆さん、日本MSの皆さん、スピーカーとして登壇された皆さん、そして、参加者の皆さんお疲れ様でした。

今年はde:codeに久しぶりに参加できた事もあり、わくわくしながら参加できました。

有償イベントという事で、なかなか参加しにくいという方々もいらっしゃるかもしれませんが、これからどういった技術の方向性に向かっていこうとしているのか、普段お話しする機会の少ないMSの方や、他社技術者の皆さんとお会いし、忌憚のない意見交換をすることもできることを考えれば、ぜひ参加してほしいと思います。

全体的に個人的にはもう少し技術よりでもいいかなという気がしましたが、そうなると一コマ当たりの時間が足りないのが余計に気にかかることになるかもしれません。

詰め込みになるのは仕方がないのですが、一コマを70分にして、大幅に混雑が予測されるセッションを2~3部屋つなげた形にし、3日間位に期間を取っていただけると、もう少しセッションの内容の濃さや、受講者の余裕につながるのではないかなと思います。

また、現在の会場ではどうしても導線の問題もあり、もう少し広い会場にできればとも思いますが、東京近郊ではなかなか難しいのかもしれません。

さて、HoloLensをはじめとしたAR/VR/MR技術、IoTを広げるためにCloud、セキュリティ確保、UWPを基本としたAll Windows Device One Core 、マルチデバイス等非常に速い速度で、新しいことがいっぱい出てきますが、基本を押さえて学びを続けて行くしかないなと実感する二日間でした。

そして、自分はUWPアプリでちょっとひねったことを考えていこうと思います。

UWPとWindows 10 Mobileはいいぞ!

de:code 2017 Day2 ちょっと遅くなった報告

・HoloLens – 真のエンジニアが知るべき実装
最初のセッションはHoloLensで
HoloLensのアプリは前日のセッションでもあったのですが9割がUnity製……ですが、DirectXを使用し、HoloLensというテクノロジーを理解というセッション
DirectX – Windows Mixes Reality – UWP を連携して行える
Unityと比べた際の利点は、制御をこちらで行えるので、制御をきちんとすれば、Unityよりも省電力でよい表現が可能とのこと。

・ホログラフィック アプリテンプレート(Holographic DirectX 11 App)
ベースとなるテンプレートはHolographic SDKインストールで使用できる
見ていてDirectX12ではなくDirectX11なので、今後アップデートで変わるのかなと

テンプレートを使用した処理の流れが説明されました。

DirectXでのシェーダーはテンプレートで提供されているものを参考に
・CreateDeviceDependentResource
・GeometryShader.hlsl
・PixelShader.hlsl
・VertexShader.hlsl
・VRRTVertexShader.hlsl

座標の追従、ボイス入力、サウンド(SpatialSound UWPサンプル)

空間マッピングを利用するには、「package.appmanifest」に「spatialPerception」を追記する必要があります。
(HolographicSpatialMapping UWPサンプル)

カメラはMedia Foundationを利用してトラッキングなどを行う
(HolographicFaceTracking UWP サンプル)

入力反応はBluetoothによるイベントハンドラーになります

CPUベンチマークを取るとCore i7 6600Uを1として比較すると、HoloLensは0.15、Lumia830で0.048程のスペックであることを認識しておくべき。

HoloLensアプリを作成する際のパフォーマンスの検討

HoloLensが認識する空間データは穴が開いていたり、幻(存在しない)の面が出たり、偏りが発生する。
また、ほぼ平面なのにメッシュが細かく、パフォーマンスなどに影響が出る

「ポアソンサーフスリコンストラクション」を使用するなど、データを整える必要がある。

HoloLensだけではなく、いくつかのテクノロジーを組み合わせることで、空間と時間を超えることができる!

・IoTのセキュリティアーキテクチャと実装モデル
 2セッション目はIoTに関して
 現在IoTが増えているが、乗っ取り、漏洩、破壊の脅威が増えてきている
 セキュリティを確保するには分断されたセクションで考えるのではなく、全体を通してセキュリティを確保する必要がある。
 どこからどこに引き渡しが存在するのか、その引き渡し元/先は本当に意図した引き渡し先なのか

 今後、AIとセンサーが融合することで、デバイスの相互作用に関するリスクが顕在化するはず、今から包括的にセキュリティを確保しましょう。

・GTC2017直送! NVIDIA GPU技術最前線
 ランチセッションです
 しょっぱなから「謎の企業」ネタで沸いていました。
 また、NVIDIAは全部大文字で読みは「エヌビディア」ですとアピール
 新たなNVIDIAのGPU Volta を搭載したTesla V100やスパコンDGX
 そして、NVIDIAが提供するGPGPUCloudサービスは他のクラウドサービスにも接続可能など、まさにGTC2017直送でした

・知っておくべき UWP アプリ開発の A to Z
 いまUWPといった場合は、Windows10用アプリプラットフォーム
 Desktop、Mobile、Xbox、IoT、IoT headless HoloLensがデバイスファイミリー
 クロスプラットフォームも作る場合はXamarinで
 Win32アプリはDesktop Bridge でUWP化する(Desktop App Converter)
 Windows Template StudioでUWPアプリ開発の効率化
 HockryAppでクラッシュレポートを収取
 UWPはいいぞー(個人の感想です)

・C#の現状と今後を徹底解説!「この素晴らしいC#に祝福を!」
 C#は7.0に到達
 6.0が出るまでに時間がかかり、機能更新も少ないように見える
 Roslyn、オープンソース化、C#による再実装で時間がかかったが、これは次の10年、20年に向け末永く戦える環境のため!
 .NET Frameworkも同じように再実装による停滞期に
 .Net Coreへの移植もあり、C#にも影響が出ている
 今を抜ければ.NETも次の10年、20年を戦える体制に
 IDE(VisualStudio、VisualStudio Code、VisualStudio for Mac)もクロスプラットフォーム化を進めているので、しばらく大変かも
 C#はdata、performanceを強化していくことになる
 今後も楽しみ

ちょっと休憩でEXPO会場に
 
Alex氏のサイン

・Build 2017 Updates ~ Application UI Design
 Build 2017で発表された、今後Application UI Designとして導入されるデザインガイド「Fluent Design」に関して
 今後Windowsはデスクトップだけではなく、マウスやタッチパネルだけではなくなる
 音声入力、ジェスチャー入力など幅が広がる事に対応しよう


これらの新しいデザインは勝手に適用されるという事はない、新しくアプリを作成する際に新しいコントロール、または新しいスタイルを適用しない限りそのまま

このスタイルは「Fall Creators Update SDK」から可能
Fluent Design System
Fluent Designのページ

de:code 2017 Day1 ちょっと遅くなった報告

まずは「KeyNote」……福島から向かったので、20分ほど遅れたためサテライト部屋で中継を見ていました。
一番盛り上がったのは、やはりHoloLens開発者「Alex Kipman」の登壇でした。

KipmanはKinectの開発者でもあり、MicroSoftデバイス開発のイノベーターという、ガジェット好きに限らず、開発者からも注目される方です。

当然、HoloLensに関する講演だったわけですが、「日本で開発されたHoloLensアプリで刺激を受けるものが多い」とありがたい発言があったり、
Kipmanの後のHoloLens活用事例で凄かったのが、小柳建設さんが業務トレーサビリティやお客様との確認に建築3Dモデルとともに活用している事例が公開されたのですが、
その中で凄いと思ったのが、事案終了後にそれまでのデータを保存したHoloLensをお客様へと引き渡していました。
小柳建設と日本マイクロソフトが、「Microsoft HoloLens」を活用したプロジェクト「Holostruction」の推進で連携

KeyNote全般で語られたのは、Cloud、AI、Mixed Reality、全ての環境へといった、
これまでのCloud Fast Mobile Fastからさらに進んで「Intelligence Cloud Intelligence Edge」でいくという意思表示でした。

さて、KeyNote以降は各セッションです。

・「こんなに違う!Unityアプリケーション講座」
現在HoloLensアプリの9割がUnityで作成されているとのことです。
Unityで作成する際の基本的なお話でした。

・「開発者もクリエーター。アプリ開発に捧ぐ新テクノロジ~Windows最新情報~」
Windows Creators Updateで追加された機能やWindows上でLinux(Dockerコンテナ)やiOS開発(Xamarin Live Player)を行えます。
Xamarin Live Playerは、今まではMac本体がないと開発できなかったiOS開発がMac本体なしでiOS開発が可能になるそうです。
appleに確認しており、この方法での開発は問題ないとのこと、ただし、appleストアへの登録や開発者登録にはMac本体が必要だそうです。
Cortana SKill Kitを使用すると、Bot Frameworkなどが使用できる。
など、少々駆け足で Creators Update から使用可能なAPIの紹介などでした。

・3セッション目はちょっと休憩もしたかったのでEXPO会場を巡っていました。
会場には各社のMR端末が展示されていました。
その中に3Glasses社のMR端末(S1 Blubur)も展示されていました。
今後もしかしたら開発端末の一つになるかもという事です。
Acerの端末を眼鏡を付けたままかぶらせてもらいましたが、眼鏡の蔓が当たるものの、そのまま装着可能です。
ただ、画面表示なしでの装着のため画面表示された際にどう見えるかまではわかりませんでした。
持った感じで一番軽かったのはAcer、重かったのは3Glasses、カッコよさ的にはHPかな?

・「Windows 10 Mobile 端末の展開と活用のキモ」
さて、個人的に一番気になっているWindows 10 Mobileのセッション
Lumiaの製造は終了しているが、MSとしては今後もMobileへの注力はやめないとのこと。
IoT,Mobile,PC,XBox,Surface HUB,HoloLensと全方位開発できる、OSも対応していく
Windows 10 Mobileはコンシューマというよりは企業向けの引き合いが多い。
統一されたUI、O365などとの連携相性の良さ、セキュリティの高さが評価されているとのこと。
企業で展開する際に、Windows 10 Mobileのプライマリアカウントは、途中で変えれないのでAzureADに設定しないと端末管理が大変。
ちょっと気になったスライドが、Creators Updateになった際にW10Mで「イーサーネット接続の設定」というのがあり、もしかして有線接続もできるのか?と気になりました。
企業向け管理で必要なMDMやミラキャストやミラーリングとは違い、ContinuumでPCのように作業も可能
プロビジョニングを使用して端末の設定を作成して配ることも可能
ログの収集昨日もUWPアプリで提供しているので、端末管理には便利
開発向けというよりはアーキテクト、管理者向けではありましたが、今後を期待したいです。

・「やっぱり”What’s New”も知りたい! 進化を続けるUWPの最新Update情報」
今後Windows10のアップデートは年2回のメジャーアップデートになる。
UWPリリース当初は、サイドバイサイドが難しいやWin32はなかったが、現在はApp InstallerやDesktop Bridgeを利用したWin32アプリのUWP化がああるので、範囲が広くなっている。
もちろんDesktop BridgeのアプリはPC専用ですが。
開発者モードにもデバイスポータルが追加され、ネットワーク経由でデバイスに接続し診断などができるようになった。
(接続の際、証明書エラーが出るけど、そのまま無視して表示すること)
VS2017に関しては、必要な機能、コンポーネントを選んでのインストールがしやすくなった。
VS2017でまずは抑えてほしいライブラリ
・Template 10
・UWP Community Toolkit
・Windows Template Studio
Creators Updateで強化されたAPI
・Windows Ink
・XAMLコントロール
・Windows Mixed Reality
・Bluetooth LE
等多数
Creators Updateでアプリインストールに関してストリーミングインストールやコンポーネント化インストールに対応、ただし、ストアでの公開は現在限定されている。
次のWindows10アップデートではeffect等のAPIが強化される、これは現在MSが提案している新しいUIを実現するための強化
さらに先では「.NET Standard」により、Windows,Android,iOS,Cloud,Linuxも共通コードで行けるようになるんではないか

というDay1でした、Day2に関しては別記事で。

Windows 10 Mobileで色々繋いでみる

この記事はWindows 10 Mobile / Windows Phone Advent Calendar 2016 10日目の記事です。

Windows 10 Mobile で GamePad

さて、最初はGamePadです。
Windows 10 Mobile アプリを開発する際に外部入力機器を使用したいという時があります。
入力機器を制御するUWP用APIとしては、Windows.Gaming.Input または Windows.UI.Core.CoreWindow を使用することとなります。
Windows.Gaming.Input
Windows.Gaming.Inputは内部的にはDirectXに含まれるAPI、XInputをラップしたUWP用APIです。
XInputに対応したGamePadであれば使えるのですが、困ったことに一般的に販売されているモバイル向けGamePadは非対応なため、USB HID 機器として個別に機器IDをアプリ内に登録して、Windows.UI.Core.CoreWindow でキーボード等のように個別にコードを搭載することになります。
モバイル向けでなければUSB接続でXInput対応のGamePadはあるのですが、せっかくContinuum機能もあり、大きな画面に出しながらプレイするならBluetooth接続で使いたいところ。
Bluetooth接続での利点はもう一つあって、最新のW10M端末であればUSB OTG(USB機器どうしを直接接続する規格)に対応していますが、対応していないものや、USBのポート数が足りないなどに縛られません。

Xbox ワイヤレス コントローラー

自分は日本マイクロソフトのWEBstoreで購入しましたが、Amazon等でも取り扱いがあります。

XBox One用のBluetooth接続にも対応したXInputゲームコントローラーです。
動作確認にはUsing your Xbox One controller in a UWP appを使用させていただいて、動作を確認しました。

・Bluetooth接続でつながっています。

そして、動作することを確認しています。

ELECOM U3HC-DC03B

HP Elite x3で有線Continuumで接続できることを報告していますが、この機器はUSB HUB機能も持っているので、複数の機器を接続するのに便利です。
購入最初にテストした際はFullHDで表示されていたのですが、次の週にテストしようとしたところ720P表示に解像度が下がってしまいました。

ThinkPad トラックポイント・キーボード

こちらはBluetooth版ではなくUSB接続版ですが、しっかりトラックポイントも使用できるので、キーボード&マウスとして使用できます。

ContinuumでGamePad確認

きちんと動くので、今後Continuumに対応したUWPゲームでは対応しておくのがいいと思います。

CENTURY CBTTR-AV2


音声送受信専用Bluetooth機器ですが、aptXにも対応しているのでAnniversary UpdateされたW10M端末でもaptX使えるかなと思うのですが、機器側でもW10M端末側でも使用しているのか判断つかないので、通勤時に使用する際に好きなヘッドフォンを使うのに便利くらいでいいかもしれません。

このほかにもUSBマウス、USBメモリなど接続しましたが、問題なく接続できました。

Windows 10 Mobile 端末は個人でも法人でも使用して不足を感じることは少ないのではないかと思います。
もちろんゲーム関連に関してはまだまだ少なく、これからという部分はありますが、Windowsとの親和性は高く、セキュリティも高い端末ですので、ぜひ次の買い替えの際には選択肢に考えていただければいいなと思います。

そして開発者としてはUWPを進めることで、PC/Mobileともに連携の高いアプリが作れますので、ぜひUWPアプリを作りましょう!
UWPなら今話題のVRもマイクロソフトのHoloLensにも対応できるうえにXBoxにも対応できますよ。

UWPはいいぞ!