カテゴリー別アーカイブ: 開発

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アプリ以外の開発は可能ですので、「早速最新環境で開発を!」という方はぜひ導入してください。

Windows10で「Universal Windows Platform」

Microsoftによる開発者イベント「Build2015」と日本マイクロソフト主催の「de:code2015」が終了しました。

そこでたびたび出てきたWindows10における開発に関する言葉は、「Universal Windows Platform(以下 UWP)」でした。

「Universal」といえば、Windows8.1とWindowsPhone8.1用ストアアプリ開発として「Universal Application」という言葉が生まれ、両環境共通のコード(一部は専用)で開発が行われ、連携もするというのがあります。

「UWP」はこれをもっと踏み込み、「One Windows、One Store」を実現するための開発定義のようです。

Windows10とVisualStudio2015を使用して、Windows10、Windows10 Mobile(WindowsPhone)、Xbox、Windows IoT、これらに一括で提供できるように、さらに、Android、iOSのアプリケーションを「UWP」としてリコンパイルする機能がVS2015に搭載され、デモの限りではObject-CがVS上でコンパイルされ、「UWP」アプリとしてパッケージされる、Androidは「NDK」だとおもいますが、同じようにコンパイル、パックされていました。

もちろん、ストアアプリだけがVS2015の機能ではなく、制限はあるような気がしますが、Win32ベースのアプリも「UWP」にできるような部分もありました。

当然XamarinやApache Cordova等を利用したマルチデバイスへの開発も力が入っていました。

また、マイクロソフトのVR「Holo lens」も着々と開発が進んでいるように見受けられました。
いつごろ出てくるのかは大変楽しみなVRデバイスです。

さて、国内に目を向けると先だって「de:code2015」が行われ、「Build2015」での発表を受けた技術解説などが行われたようです。

自分は参加できなかったためTLを追いかけていたかぎりでは、大きなサプライズはなかったようですが、MouseComputerがこの夏発売予定の「MADOSUMA」に「Windows10 Mobile」をインストールしたものを展示していたようです。

発売時はWindowsPhone8.1のようですが、検証を重ねて「Windows10 Mobile」を判断するようです。

間もなくWindows10が走り出すと思われます、そして「Universal Windows Platform」により、10億デバイスへのリーチが可能になるかもしれないです。

「Windows10 Mobile」は少し後になるようですが、そろったときに面白い相乗効果が生まれることを期待していますし、当然自分は開発へ踏み込んでいきます。

まずはストアアプリの開発を通じて開拓してみませんか?