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はいいぞ!

HP Elite x3で有線Continuum

HP Elite x3って?

HP社から発売されたWindows 10 Mobile(以下W10M)端末、所謂スマホです。
ほかにも何社からか日本で使用可能なW10M端末は出ているんですが、現在出ている中で最新高スペック端末です。

Continuumとは

TVやモニターを外部ディスプレイとして画面を表示して、デスクトップPCのように大画面で操作することができます。
もちろん以前からのWindowsソフトが動かせるという事ではなく、Windowsストアで提供されているW10M対応ソフトでUWP化されているアプリという条件があります。

有線Continuum?

実はContinuumは有線と無線の二通りの方法で、接続が可能になります。
無線はケーブルに煩わせられない代わりに、遅延などが発生し、有線はその心配がない代わりに、W10M端末にスペックが必要になります。
無線はMiracastを利用した出力で、有線はUSB-TypeC-Display 変換出力機能により出力となるため、USB3以上のスペックが必要です。

ELECOM U3HC-DC03B

HP Elite x3向けにはHP社がアクセサリとしてデスクドック(V5H01AA#ABJ)とディスプレイ一体型でノートPCのようなノートドック(Y4T08AA#ABJ)を出しています。
デスクドック(V5H01AA#ABJ)なんですが、ディスプレイ出力部分がDisplayPortなため、私の環境では使えないためどうしようかと思っていたのですが、ちょうど発見した「ELECOM U3HC-DC03B」が使えるのではないかと思い購入しました。

早速つないだところ、無事に有線Continuumが出力されました!

USB PD

U3HC-DC03Bは電源接続部分にUSB PD(Power Delivery)が使われているため、普通のUSB Type-C電源アダプターでは有効になりません。

なので、今回充電ケーブルをまとめたいというのもあったのでAnker PowerPort+ 5 USB-C Power Deliveryを導入しました。
もちろんUSB PD接続にはUSB PD対応ケーブルが必要になります。


このケーブ購入したのですが、USB2.0でした。
ただ、充電機能は問題なく機能します。

USB3.1対応にする場合下記ケーブが良いと思います。

充電しながら使えない

充電機能を利用した場合、有線Continuumが解除されてしまいます。
これが「HP Elite x3」と「ELECOM U3HC-DC03B」どちらに起因するのかが自分ではわかりません。
HPのデスクドック(V5H01AA#ABJ)を購入した方が試されて、充電しながら使用可能なら「ELECOM U3HC-DC03B」の制限なのではないかと思うのですが、どちらの制限なのか不明です。

UWPはいいぞ!

さて、有線Continuumを使用して思うことは、UWPを進めるべきだなという事です。
オフィス向けアプリにせよコンシューマー向けアプリにしろUWP化してContinuum対応にすることで、ユーザーの利便性が上がり、よりよい使い方が増えていくので、UWPアプリ開発に力を入れていきたいです。

マルチデバイス対応したいんだけど

Xmarin等を使用したマルチデバイス開発が増えていくと思います、Xamarin等では共通部分と個別部分の作りこみが可能なので、基本的には同じアプリとしながらもこういった部分で対応することで、少し違うアプリを提供できると思うので、ぜひ対応してほしいと思います。

Windowsストアでのマネタイズ入門

#Surface チャレンジモニター で借りた機体で開発してみた

壁紙だけとなると何なので、開発系な自分としては当然のように #VisualStudio で #UWP アプリの開発を試すわけでして

・まずはインストール!
WP_20160519_13_00_45_Pro

・インストール後のアカウント認証でHiDPI非対応なのかずれが、、、
WP_20160519_13_30_14_Pro

・開発中だったネタをVisual Studio Team Servicesで引っ張ってきてこつこつ
WP_20160521_20_18_38_Pro
Windows 10 Mobile Emulatorもきちんと動いています。

重い3Dの開発ということでなければ、UWPでもAndroidでもXamarinでも遠隔開発でもなんでも行けると思います。

ただし、デスクトップと違って内臓SSDが256GBまたは512GB(今回お借りした機体は256GB)ですので、あまりアプリケーションを大量に入れたり、大きなデータを中に持つという開発には少々向きません。

MicroSDカードスロットはありますので、128GBなどの大容量SDカードを使用することで、データ領域は増やせるとは思いますが、あまり頻繁な書き換えには速度的にも向きませんので、NAS を用意するなど工夫は必要でしょうか。

Syncfusion Essential Studio に COMMUNITY LICENSE が!

Syncfusion 社の「ESSENTIAL STUDIO」に≪COMMUNITY LICENSE≫が追加されました!

ESSENTIAL STUDIOって?

ESSENTIAL STUDIOはアプリを開発する際に使用可能なコンポーネントライブラリです。
android、iOS、Xamarin(Android,iOS,Forms)、JavaScript、ASP.NET、ASP.NET MVC、Windows Forms、WPF、WinRT、UWP、Windows Phoneの各種プラットフォームに対応しています。

何ができるの?

自作しようとすると面倒になりがちな「チャート」や「カレンダー」、「ダイアグラム」、「PDF」などをコンポーネント提供してくれています。

COMMUNITY LICENSEって結局なに?

・個人開発者
・年間売り上げ100万$(約1億円)以下の企業
・使用可能な開発ユーザー5人まで
上記の条件を満たしていれば「無償」で使用可能なライセンスになっています!
しかも、「商用アプリも可」というすごいライセンスです。

なんでそんなすごいライセンスが提供されたの?

マイクロソフト社が「Visual Studio Community」という開発ソフトの無償ライセンスの拡充を行ったことに触発されて、Syncfusion 社が提供に踏み切ったそうです。

使うにはどうするの?

COMMUNITY LICENSEのページ≫からユーザー登録をしてダウンロード後、インストールしてください。
専用のアンロックキーが提供されますので、キーの入力で使用可能になります。

さて、さらにありがたいことにSyncfusion 社は≪METRO STUDIO≫というフリーのアイコンツールも提供していただけています。
アプリの作成時に必要な各種アイコンはこれでほぼ事足りますので、ぜひ一緒に使用しましょう。

そして最後にVisual StudioXamarinを利用して、ぜひアプリを作りませんか?

Windows Phone/Windows 10 Mobile に関するゲームパッド考察

ゲームパッドを使用することができるのか?

さて、「Windows Phone/Windows 10 MobileでGamePadは使用できるのか?」ですが、結論から先に言っておきます、条件付きで可能、ふつうは無理です。

WindowsPhone8/8.1用として実は「MOGA Game On Anywhere(以下 MOGA)」が出したコントローラーがBTを利用した(おそらく)シリアル通信的な方法で、使用できるようにしていました。
ただこれは専用SDKが提供されない限り使用できないという形で、更新をしていない状況から今後使用できることはないだろうと思います。

次に目を付けたのは「Windows8.1 UpDate2(以下 WP8.1UP2)」から解禁された「Bluetooth HID Profile」の存在です。
HID(Human Interface Device)、USBにもありますが所謂入力機器の受け取りができる機能です。

さてこれを実験だと思ったのですが、残念ながら手持ちの端末には「WP8.1UP2」が降りてこないという状況でしたが、この機能は「Windows 10 Mobile(以下W10M)」でも使用可能になりました。

これはやるしかないということで、いろいろ仕込んでいたのですが、まずは先だって開催された「Microsoft MVP Asia Meet Up」イベントに参加した際にMADOSMAをW10Mにアップされた方が持ってきているよなと思い、接続を試させていただくことにしました。

結果

BT機器があるということは認識するもののペアリングは却下されるという状況でした。
もちろんイベントの隙間を利用した短時間での確認のため、これだけで出来ないということは確定できないですが、正直どうしようと思いました(汗

次の一手

wp_ss_20150411_0003
あきらめるわけにもいかないので、1320にInsider Programでアップデートをかけて実験という形にしました。

wp_ss_20151211_0003
こちらでも認識(SS取れなかったですがキーボードHID認識のようです)はしました。

wp_ss_20151211_0004
そして、ペアリングも完了!

なら使うぞ!

UWP向けにAPIが追加されているのですが、その中に「Windows.Gaming.Input」というそのものずばりなAPIがあります。
で、APIを確認している限りではMobileに対する縛りはないようなので、「これは使える!」と実験開始

いきなりモバイルというわけにもいかないのでまずはDesktopUWPで実験、、、困ったことにWindows上では認識しているもののUWPのAPI上では存在しないというのが返ってきました。
とりあえずAPIの確認のためDevice転送でチェックしたところAPIはそのまま通りました。
機能宣言は「AllJoin」「Bluetooth」にはチェックを入れたものの、HIDに関する項目ないなこれ(汗
API条件に宣言しなければいけないようなことは記載されていないので、API自体はチェックなしでもエラーなく動きます。

さて、「Windows.Gaming.Input」ですが、内部的には「XInput」ではなかろうかと思います。
となるとMoga2では認識しないですよねこれ、、、
手持ちにXInput対応機器がないので、自分には検証しきれませんでした。

というわけで最初に書いた通りなのですが、「条件付きで可能 / ふつうは無理」が今のところの結論です。
もちろんもっと深く探っていけば可能になるんではと思ってはいます。
もう少しさっくり対応できるようになっていると「A端末とかi端末で出来るのに、WP出来ないから~」とは言われなくて済むかなーと

まあ、解放できない理由は、セキュリティーとか考えるとわからないでもないので………

というわけで、「ゲームコントローラー周りの対応状況をぼそっと公開してくれないかなー>MS様」等と書くためだけのネタ記事でした。

「Windows 10 Mobile」は良い端末ですし、まだまだこれからさらに良くなっていくことでしょう。

おまけ

さて、これだけで何なのでちょっとおまけを

WP_20151212_10_16_39_Pro
こんなのを入手したわけですよ。
ええ、ご想像の通りです…………「1320はUSB OTG非対応
何をつなごうが全く認識しません(;´Д`)

Windows Phone / Windows 10 Mobile Advent Calendar 2015」に参加しています。

裏ではいろいろ仕込んでるんですが、公開レベルに持っていけなくてこんな記事になりましたが、ほかの方の記事には良いものがあるので、是非一読を!

※追記(2015/12/12/21:30)

DirectInputじゃダメなの?

もちろんこうなれば「DirectInput」をラップ実装してというのは頭の片隅にあったのですが、XInputをストアアプリ荷を調べていた際に「XInput and DirectInput」というMicrosoftの公式ページを見つけましてそこに

Note Use of legacy DirectInput is not recommended, and DirectInput is not available for Windows Store apps.

レガシーでストアアプリには対応していないと書かれていました。

VS2015でUniversal Windows Platform アプリを作成する際の注意点

Visual Studio 2015でUniversal Windows Platform アプリを作成する際にWindowsの「設定」で「開発者モード」を有効にしていないとXAMLを編集する際にデザイナのExtensionが登録できないためエラーを起こします。

System.Exception
パッケージを登録できませんでした。
エラー 0x80070005: 要求を処理しているときに次のエラーが発生したため、windows.capability 拡張を登録できませんでした: アクセスが拒否されました。

このエラーですが、「開発者モード」を「有効にしていない」という形ではエラー表示されないため、非常にわかりにくいエラーです。
Windows8.1用のXAMLデザインはエラーが出ず編集可能なので混乱のもとになりそうです。

開発者向け設定

WindowsPhone8.1アプリをリリースしました

Ama買取サービス非公式バーコード検索アプリ

Amazon買取サービス非公式バーコード検索アプリ

バーコードデータを手入力では面倒なので、バーコード読み取りを利用して検索できるようにしたアプリ
検索を実行するとWebブラウザが起動して買い取りURLを開きますが、ブラウザの設定を「モバイル用サイト」ではなく「デスクトップ用サイト」に変更する必要があります。

このアプリはAmazon社とは一切関係がない検索お助けツールアプリです。
Amazon Japanの検索にのみ対応しています。

wp_ss_20150712_0002

wp_ss_20150712_0003

MADOSMAもリリースされたことだし、何かアプリをと思い構想2日、WindowsPhone 8.1 SilverLight & C#で制作実質2日でした。

※追記 2015/07/16
 MADOSMAとLumia930で正常に動作しない可能性があるようです。
 カメラがデバッグに使用したLumia1320とは違いがあるようで、フォーカスと配置に対する処理に差があるようでMADOSMAを手に入れないと何が違うのかが判別できない状態です。
 使用できるように変更を考えてみます。

Visual Studio 2015 RTM は7/20にリリース(条件付き)

さて、最新の開発環境「Visual Studio 2015 RTM(最終リリース版)」のリリース日が2015/7/20に決定しました。

Visual Studio 2015 RTM のリリースが 7 月 20 日に決定! 記念イベントも同日開催

VS2015はクロスプラットフォーム開発への起爆剤になるかもしれません。

また「Visual Studio Code」というLinuxやMac上でVSスタイルでASP.NET5やNode.jsの開発ができるアプリもプレビューながら公開されています。

さて、タイトルに「(条件付き)」としましたが、これは「UWP(Universal Windows Platform)」用のアプリ、つまりはWindows10専用ストアアプリ開発SDKがWindows10リリース日の7/29に正規版になるためです。
このためWindows10専用ストアアプリ開発は九日間とはいえお預けになります。

もちろん、UWPアプリ以外の開発は可能ですので、「早速最新環境で開発を!」という方はぜひ導入してください。