月別アーカイブ: 2017年6月

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に関しては別記事で。