2016年9月21日水曜日

UWP App の Xbox One 対応でやったこと

今回、F10 Image bbs browser をXbox One に対応させる機会がありました。
やった事を忘れないうちにメモしておこう、という記事です。

この記事で触れない所


  • UWP 「ゲーム」アプリのXbox One対応 … ご承知とは思いますが、UWPゲームだけは別扱い、ID@XBOX でゲームのコンセプト確認プロセスがあるので全く別ルートです。今回は扱いません。
  • Xbox One 実機を使ったテスト・デバッグ … 私はXbox One 実機を持っていないのでこのあたりの経験が全くありません。PC+ゲームパッドでなるべく頑張り、後は持っている人に助けを仰ぐスタイルです。


参考になるドキュメント


今回、UWP App をXbox One 対応するにあたって、こなれたかなり良い文書(英語・日本語共に)が出ています。
これらを読みながら作業すればほぼ間違いないはずです。

Xbox およびテレビ向け設計 / Designing for Xbox and TV
日本語 https://msdn.microsoft.com/ja-jp/windows/uwp/input-and-devices/designing-for-tv
英語 https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/designing-for-tv

Xbox の ベストプラクティス / Xbox best practices
日本語 https://msdn.microsoft.com/ja-jp/windows/uwp/xbox-apps/tailoring-for-xbox
英語 https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/tailoring-for-xbox

※日本語情報は二か月ほど古く、いくつか間違いもあるようなので適宜英語版も参照するのがお勧めです。

この記事では、(基本的過ぎて)上の文書にあまり出てこない所を中心に、作業順に書いてみます。

xInput 対応ゲームパッドを入手する


PC上で作業するには、何は無くともまずこのxInput 対応ゲームパッドを用意するのがお勧めです。

UWP App とそのUI Controlは、既定でxInput ゲームパッドである程度操作可能になっています。
そして、ゲームパッドでの操作・フォーカス移動等重要な部分はPC+ゲームパッド と、Xbox One+ゲームパッドでほぼ同じです(※1)。
Xbox One 実機をお持ちであっても、まずPC上でゲームパッドでの操作を詰めてからXbox One 実機に転送・デバッグを行うことで、かなりの手間を省くことが可能です。

(Xbox One 実機をお持ちの場合、そのゲームパッドがそのままPCで使えます)


Amazonで「Xbox ゲームパッド」で検索した結果
どれでもOKです
私が使ってるのはエレコムの安いの


※1 完全に互換、では無いです。今回F10 のXbox One 対応では1件、Xbox Oneで発生するがPC上で再現しない、という問題がありました。この件は後でもう一度触れます。

※2 xInput ... UWP App が対応しているのはこの形式です。今お店で買えるXbox 360 以降用のパッドは全て xInput に対応しています。「大昔の」Windows用ゲームパッド…Microsoft Sidewinder 等、Win9xの頃のものはDirect Input 形式で、UWP Appでは使えません。


UWP App のターゲットバージョンを Anniversary Update (14393) に変更する


そもそも UWP App が Xbox One に対応できるのは AU SDK 以降なので、必須の作業です。

ここではTarget/Min両方を14393に設定しています。


マウスモードを無効にする


マウスモードを無効にする / How to disable mouse mode
日本語 https://msdn.microsoft.com/ja-jp/windows/uwp/xbox-apps/how-to-disable-mouse-mode
英語 https://msdn.microsoft.com/en-us/windows/uwp/xbox-apps/how-to-disable-mouse-mode


最低限これはやらないとXbox One 対応とは言いづらいと思います。
Xbox Best Practice でもいの一番に「マウスモードを切れ」と載っています(既定にすればいいのに)。

これを切らない(既定)場合、UWP App のコントロールは画面上に表示される「ポインタ」を方向キーで自由な位置に(マウスのように)移動させ、押したいところでAを押すというシステムになります。
マウスモードを無効にすることで、方向パッドでフォーカスを素早く移動する一般的なXbox のスタイルになります。

※ただしこの設定、PCでは入れても切っても全く変わらず、方向パッドで操作可能です。
これが微妙に罠なので、まず最初にばっすり切っておくのがお勧めです


◇◇◇


このあたりで下準備は大体終わりです。
ここからは、上で紹介した「Xbox および テレビ向け設計」を足掛かりに、

  • ゲームパッドで無理なく操作できるUI

を作り込んでいく作業になります。

今回のF10 の作業では、UI をXbox One に合わせて大きく変更するのは避け、基本的にはゲームパッド対応のみで済ませています。
(ゲームパッド対応は PC + ゲームパッドのみでも可能ですが、他の作業… TV セーフサイズへの対応や TV セーフカラー対応等は細かい作業が必要で、実機が無いと厳しいというのもあります。)

以下は、ゲームパッド対応を入れていて気が付いた点です。

フォーカストラップ・アクセスできないUI を地道に潰す


ガイドに従って XYFocus* や CodeBehind 等でフォーカスを調整し、ゲームパッドで無理のない操作ができるようにする作業が続きます。
その中で、以下の現象が何度も何度も現れました。これを潰すのがメインの作業と言ってもいいくらいでした。

  • フォーカストラップ ... フォーカスがあるコントロールにはまり込んでしまい抜けられない!!
  • アクセスできないUI … あるコントロールにフォーカスを合わせられない!!

どちらもPC 上ではマウスやキーボードで簡単に回避できるのですが、ゲームパッド「だけ」のXbox One の場合…ほぼ脱出手段が無く、一旦アプリを終了するしかなくなります。これはまずいです。

潰しきるためにはゲームパッドでひたすら色々操作を行い、見失う事が無いかを確認する必要があるでしょう。
今回の作業では、以下のような所に引っ掛かりました。

  • AutoSuggestBox から候補リストを開いて→閉じて戻って来る所は大体見失うので、CodeBehindやXYFocus*で明示的に設定する必要がありました。
  • Microsoft Store Services SDK に同梱のMS AdControl、フォーカスをゲームパッドで移動すると抜けられなくなります。isTabStop等も無いため困ります。私は汚い方法…AdControlのChildrenからWebViewを探し、そこにGotFocused でフォーカスが飛んで来たら別のコントロールに飛ばす、で対処しました。
  • ContentDialog 内に置かれたコントロール間でのフォーカス移動は注意したほうが良いようです。上で挙げた「Xbox Oneで発生するがPCのゲームパッドでは再現しなかった」問題がこれで、明示的にXYFocus*で指定する必要がありました。

このあたりのケーススタディは、MSさんガイド文書にも詳しく書いてありますので参考にして下さい。

また、MSさん文書にある「現在のフォーカス位置をDebugMessageに出力するCode Snippet」、あれはフォーカストラップ・アクセスできないUIの原因を探すには最強の武器です。是非使いましょう。

Focus Debug用Snippet



ContextFlyout をマウス・タッチ・ゲームパッド全対応にする


作業を始めてみるとわかる所ですが、操作の多くをContextFlyoutに頼る事になると思います。

このContextFlyout、
  • マウスの右クリック
  • タッチのタッチ&ホールド(いわゆる長押し)
  • ゲームパッドのメニューボタン
それぞれの操作に既定でマップされるので、今までRightTapped等で作っていた右クリックメニューを全部これに統一して、綺麗な実装にできそうです。

ただ同時に判るのが、GridView/ListView等、ListViewBase系での使い勝手が微妙な所です。

今迄のRightTappedでは、argument の RightTappedRoutedEventArgs の OriginalSource が RightTap されたアイテムのViewItemになっており、そのDataContext が Mapされている自前のDataItem、であるため、RightTap されたアイテムに対する操作を簡単に記述することができました。

ところがContextFlyoutでは…Opening・Opened 共、「Tapされたアイテム」の情報が入っていません。えー。困る。

仕方ないので、今回は小汚い手を使っています。
Eventの発生順は、
ContextFlyout の Opening
ContextFlyout の Opened
ListViewBase の RightTapped
です。
…なので、RightTapped が発生した時点で、Menuが開いていたらそのMenuを弄って目的のアイテムに対する操作にすりかえる、という。汚い。


ContextFlyout にアイコンを出す


この件Xbox One 特有では無く MenuFlyout一般にあてはまる話なのですが、MenuFlyout は既定だとアイコンが出なくて寂しいです。
私は以下の記事のテンプレートを丸々使っています。AppBarButton のように名前でSegoe MDL2 Assets を指定できて便利です。

[UWP]How to add an icon to a MenuFlyout in UWP?
https://social.msdn.microsoft.com/Forums/en-US/ef37ee55-0c73-4ca7-9946-f4c70bf095f5/



リリース


普通のUWP App と特に変わるところは無いです。対象とするDeviceFamily でXbox Oneにチェックを入れるくらいです。

ただ、一応Xbox One用のCompliance Testは回しているようです。F10 では一件、Xbox One特有のTestで引っ掛かったところがありました。


謝辞


今回の移植では、Xbox One 実機をお持ちのOssan50 さん、Parupo1467 さんに動作確認・テストの御協力を頂きました。有難うございました。




2016年9月19日月曜日

Location Timeline (仮称)というアプリを作っています

Location Timeline (仮称)というWindows 10 用 UWP アプリを作っています。

  • 移動履歴をバックグラウンドで取得します。
  • 移動履歴からおおよその滞在地点・移動経路をタイムライン表示します。
  • タイムラインは蓄積されます。何月何日に何処にいたか、また何処に何月何日に行ったかがわかります。

また、移動履歴は自動的にOneDrive にアップロードすることが出来ます。
同じアプリをWindows 10 PC で動作させることで、タイムラインをPC上で確認することが可能です。

以下は制作中アプリのスクリーンショットです。
※地点の情報…画像やURL等…はFoursquare APIで取得しています。
本来ならその旨アプリの上に出さないといけないのですが、以下は試作版のためまだ入っていません。

タイムライン画面。移動速度等から滞在地点を識別します。


移動履歴のある日はカレンダー上で太字表示になります。


滞在地点情報と履歴。情報はFoursquare APIのものを表示しています。

滞在したことのある地点の表示。滞在回数で色が変わります。
ここでマーカーをクリックすると上の地点情報に飛びます。




※こういうアプリではありません。

  • 現在地を表示する。
  • ナビゲーションを行う。
  • モンスターをゲットする。

現状…
5月くらいからポチポチ作っているのですが、最近やっとフィルタ…生データからそれらしい軌跡を得る処理の実装が終わり、これから見た目をそれっぽく何とかしようか、というところです。年内出せればいいかなくらいの状態です。
フィルタ入れてはいますが、それでも地下区間は厳しいです。




2016年9月18日日曜日

Desktop App Converter で多くみられる誤解について


Desktop App Converter、動作可能なPreviewが出て数ヶ月経ちましたが、未だに残念な誤解と共に語られる事が多いように思います。また、そのせいで本来の利点が見えにくくなっているように思われます。

  1. これで変換したアプリは、Windows スマホでもすぐに使えるようになる!
  2. これで変換したアプリは、Desktop専用のUWP Appと大体同じ!
  3. 変換はMSIから行います!

全て誤解です。個人的には…「Desktop App Converter」という名前自体がミスリードを企図した、筋の悪い名前であると思っています。また最近はMSも「UWPに変換」とは言わなくなってきています(代わりに新語「Universal Windows Package」を使ったり、ステージングを行ってUWPに「自分で」移行しましょう、という話をするようになってきました)。正確を期して名で体を表すならば、「AppX Packager for Win32 Apps」あたりではないかと思います。


最近MSさんが使っている説明図 「Universal Windows Package」(新語)の中で、
Desktop App を順にUWP App に移行するイメージです
Desktop App Converterを通した直後が左上「Convert」に当たります
後は自分で移植して右下を目指そうぜ、という話



誤解1 「変換すればWindows スマホで使える」について



Desktop App Converter では、旧来のWin32 Desktop AppをAppX にパッケージングします。AppX であるので、Windows Store 経由でのユーザーへの配布が可能になります。
が、上のMSさんの図にもあるように、アプリケーションそのものはWin32 Appのままです。Win32 App 自体に何か変換が行われてUWP Appになる、というものでは無いです。

ユーザーのWin32 Appが動くOSは、Windows 10 Family の中では

  • Desktop ... PC, Notebook, Tablet

のみです。このため、それ以外…
  • Mobile ... Smartphone
  • Console ... Xbox One
  • Holographic ... HoloLens
  • Team ... Surface Hub(80インチくらいの巨大Surface)
  • IoT
上では動作しません。

上に貼ったMSさんの説明画像にもあるように、これら Desktop 以外のWindows 10 Family でアプリを動かすには、既存のWin32 App から Universal Windows Platform App、つまりWinRT ベースの新しいコードに「自分で」移植する必要があります。

Desktop App Converter は、この「移植」作業を行ってくれるわけではありません。UWP App への移植の最初の一歩、パッケージングを手伝ってくれるだけです。
また、

  • 変換時、何かコンパイル的な事が行われる
  • 動作時に何か動的にエミュレーション的な事が行われる
類のものでもありません。


誤解2 「変換すればUWP App」について


1で説明したように、Deployの終わったAppはWin32 Appのままです。このため、WinRT を基盤とする UWP Appと「大体同じ」とはとても言えないのですが…

ここでは、Win32 App と UWP Appは「何が」違うのか、実行時権限から考えてみます。
近年のWindows OSでは、プロセスの実行時権限は全て「IL」…Integrity Level、で分類されます。

  • ユーザーがインストールするDesktop アプリケーションはIL Medium
  • Webブラウザ等は既定ではIL Low

(Integrity Level 、良い文書が少ないのですが…下のは比較的判りやすいです。後、Win8 が出たころのメディア記事にもAppContainer絡みの説明記事が拾えます)
Desiging Applications to Run at a Low Integrity Level
https://msdn.microsoft.com/en-us/library/bb625960.aspx

IL Mediumは、所謂普通のWin32アプリです。ACLの許す範囲で、ユーザーがそうするのと同じようにシステム上のファイルにアクセスすることが可能です。

IL Lowはぐっと権限が制限されており、例えばファイルについてもアクセスできる範囲が狭くなっています。近年のブラウザは既定では大体はIL Lowで動くため、昔のように…Webを見てたらファイルを弄られた!スタートアップで女の悲鳴が!!!みたいな話はそうそう起こらなくなっています。

Windows 8の「StoreApp」では、このILに「App Container」という新しい分類が追加になりました。これは中々面白い定義で、「既定はIL Lowより低いが、インストール時に宣言することで追加の権限を有効にする」ことが可能です。この「宣言」とは、StoreApp / UWP App 開発者ならお馴染みの、Package.AppxManifest で定義するCapabilityの宣言です。UWP Appもこの点は共通です。


Process Explorer で各プロセスのIntegrity Levelを表示している様子
StoreApp / UWP App は「AppContainer」になります
画像では拙作のF10 imagebbs browser, PICT8 がAppContainerで動作しています


◇◇◇

一般に、StoreApp / UWP Appは安全であると言われています。不自由だがセキュアであると。これはMSが自分で言っていることですが…開発者側としてもここはあまり文句は無く、同意できるところだと思っています。

何故か?それは、上で説明したAppContainer により、StoreApp / UWP Appは制限されたSandboxの外に出られない仕組みになっているからです。
例えば、StoreApp / UWP App は、PC上のファイルを自由に触ることは実はできません。触れるのは、アプリインストールと同時に作成されるアプリ専用フォルダ「のみ」です。これはAppContainerによって権利が制限されているからで、ここを破るのは大変に困難です。(※1)

このため、実行時にこっそりとユーザーのHDDから大事なファイルを探して送信する、というような動作は本質的に不可能になっています。
こういった意味で、StoreApp / UWP Appは「安全」です。Storeからある程度適当にホイホイインストールしても、危ない目に合う事は少ないです。開発者が変な事をしづらい仕組みがApp Containerにより担保されているからです。


◇◇◇

では今回追加になった「Desktop App Converterで変換されたWin32 App」はどのILに属するのかというと… これはIL Medium で動作します。つまり、StoreApp / UWP Appを縛っていたAppContainerのSandbox制限が全く掛かりません。今迄のWin32 Appと同じ権限で動作します。(※2)

Desktop App Converterを使用しているアプリ「Evernote Touch」
Integrity Levelが通常のWin32App同様「Medium」になっているのが判ります。



従って、Anniversary Update では「権利を制限されたStoreApp / UWP App」と「これまでのWin32と同じ権限で動くConverted App」が同じストアに並ぶ事になります。
今迄培ってきた「ストアから入れるアプリは大体安全」という評判をこれからも維持できるのか、個人的には危惧している所です。(※3)



※1 ドキュメント・ピクチャライブラリ等は、事前に「Capability」として宣言することで、AppContainerの権限が拡張され、アクセス可能になります。また、それ以外のフォルダ・ファイルについては、「ユーザーがファイルダイアログで指定したら」以降はアクセス可能になります。重要なのは、ユーザーの許可・または操作が無い限りはアクセスできない、という点です。

※2 レジストリアクセスは仮想化され、DLL等のロードはApp-V型のIsolatedなFolderから行われますが、プロセスからのファイルアクセス自体は通常のIL Midで行われます。また、Desktop App Converterで作成されたPackageはWin32と同時にUWP Appも含むことが可能で、こちらはもちろんApp Container で動作します。

※3 匿名でのアプリ配布が行いにくく、また何時でもMSにより配布を止められるストア経由の配布である、という担保はあります。


誤解3 「MSIから変換」について


Desktop App Converter では、概ね以下のようにAppXパッケージを作ります。
  1. まず、素の仮想OSイメージがあります。OSインストール直後のまっさら環境です。
  2. この環境に対して、既存のインストーラでWin32 Appをインストールします。この作業は仮想環境上で行われます。
  3. インストーラが終了コード0を吐く等して終了します。それを受け、Desktop App Converter はインストーラが終わったな、判断して記録が終わります。インストール前後での変更差分がAppXとしてパッケージングされます。
ここで重要なのは、2と3において「インストーラの形式」は全く気にされていない所です。インストーラ自体はMSIだろうがWIXだろうがInstall Shield 6.3系だろうがNull Softだろうがバッチファイルだろうがどうでもよく、最後に終了コードを吐いてインストール終了が判ればそれでよい、です。
また、この仕組み…仮想のOSイメージに対して展開したアプリ、を差分としてパッケージングして配布…により、普通のインストーラとはまた違った注意が必要になります。

例えば…インストーラの中で、MSIならCustom Action、Install ShieldならScript…等により「システムの状態」…空き容量、ファイル、あるDLLがインストールされているか、レジストリフラグが立っているか…を見てインストールの動作を変える、インストールするパッケージを変更する、という仕組みを使っている場合は多いかと思います。

 ですが、このDesktop App Converter では、この「インストーラの独自ロジック」が走るのはユーザーのシステム上ではなく、あくまで変換時の「素の仮想OSイメージ」に対してのみです。このため、「インストール先の状態を見て何かするロジック」は成立しないと考えるべきです。

◇◇◇

…長い。読んでくれる人おられるのだろうか。Centennialは面白いのでつい話が長くなります。Desktop App Converterの利点、長所についてはまた機会がありましたら。

2016年9月14日水曜日

F10 - updates for xbox one

F10 for Xbox one, 早速問題が見つかっています。試して頂いたおかげです。有難うございます。

F10 versions: 9/28/2016


Published
Certification in progress
Public Release
1.3.320
none
F10 Test Group
1.3.320
none

  • 1.3.320 - Change - Revert back Microsoft.NETCore.UniversalWindowsPlatform to 5.1.0
  • 1.3.318 - Change - Revert back System.Encoding.CodePages to 4.0.0 / Enable 'Launch Feedback' button / Fix 'Soudane' parsing issue
  • 1.3.316 - Add - 'View' button is assigned for open/close catalog pane
  • 1.3.314 - Fix - Misc fix for mouse and touch operation
  • 1.3.312 - Fix - Lost focus issue : 'Add/Remove Favorite boards' dialog
  • 1.3.310 - Fix - Lost focus issue : Between Catalog view and Microsoft Ads / Change - pivot focus visualization is changed to show White-Box style focus
  • 1.3.308 - Fix - Fail to add favorite boards
  • 1.3.306 - Initial support for Xbox one

To join our F10 Test group, let me know your Microsoft Account mail address via tickets @ ddlg.uservoice.com. I'll add you to the group asap. You can get the latest build, and you can submit bug report to me :) .

F10 TestGroup に入って頂いている場合、特に操作をせずともストア経由で自動更新されます(ストアから手動更新でもOK)。

F10 TestGroupに入ってやってもいいよ、という場合は、メール tickets @ ddlg.uservoice.com 宛に、お使いのMicrosoft アカウント のメールアドレスを記載してお送りください。グループはMSアカウント単位でOn/Offされる仕組みです。

0. 使い方(画像つき)


F10 on Xbox One, Gamepad のXYボタンとMenuボタンを駆使して使う形なのですが…初見だと中々わかりにくいのではと思います。

そこで、画像付きの説明を作りました。
それぞれの画像の下に、その画像の説明が書いてあります。


1. 板を開いた
1. 板を開いた状態です。
ここで、画面右のカタログ…の廻りに、白い大きな四角でフォーカスが表示されています。
これはこの画面右のカタログと、画面左のスレッド表示で使われている形式です。

この状態でAボタンを押すと、このグループの「中の」アイテムにフォーカスが移動します。



2. カタログ内にフォーカスが移動した
 2. カタログ内にフォーカスが移動しました。
この状態でBボタンを押すと、1. のカタログ全体にフォーカスが当たっている状態に戻ります。

ここでXYボタンで見たいスレッドを選択しAボタンを押すと、左画面にスレが開き、フォーカスも左に移動します。

3. スレを開いた
3. スレが開きました。
XYの上下で移動できます。また、トリガーボタン…LT・RTで高速スクロールができます。

ここで大事な操作…メニューボタンを押してみます。メニューボタンは、この左のスレ画面と、右のカタログ画面で使うことができます。

左のスレ画面でメニューボタンを押してみましょう。



4. スレのメニューボタンを押した
4. メニューが開きました。
このメニューには、
  • 今選択されているレスに対する操作 が上半分に
  • スレ全体に対する操作 が下半分に
並んでいます。 このメニューから、この状態でのほぼ全ての操作が可能です。
ここでは、Open Image を選択してみます。



5. 画像ページが開いた

5. 画像ページが開きました。
XYの左右ボタンで、スレ内の画像を順次切り替えることができます。
Bボタンで元の画面に戻ります。



6. カタログのメニュー
 6. カタログにも同様にメニューがあります。
選択されているスレに対する動作と、
カタログ全体に対する動作です。

ここでは、「About」を選択してみます。


7. About を開いた

7. About が開きました。
ここでは、F10 と OSのバージョン情報を確認できます。
OKにフォーカスを移動してAボタン、またはBボタンで元の画面に戻ります。

この「About」以外にも、画面上にポップアップするダイアログ・また画面右にスライドしてくる設定画面も、Bボタンで閉じることができます。

以上、F10 on Xbox One の操作方法解説でした。
お疲れ様です。

以降、v1.3.308 の修正点です。

1. 板の追加が出来ない


AutoSuggestBoxを閉じた後特にフォーカスを設定していなかったためフォーカスが迷子になり、操作不能になっていることが判りました。明示的にフォーカスをGridViewに設定するよう変更しました。

また、GridViewについてはIsFocusEngagementをTrueに設定しました。メインページのスレッドカタログでは既に設定してあるのですが、フォーカスが

  • GridViewそのものの大枠のフォーカス
  • GridView内のアイテムのフォーカス

の二段階になっている形です。アイテムから大枠のフォーカスに移動するにはBボタンで戻ります。
この設定、Grid/ListView内にアイテムを多数抱え込む際にはとても便利です(設定しないと、アイテムを下まで全部スクロールしないと次のフォーカスに移動できなくなってしまう)

この板設定パネルの場合、「All」でふたば・4chanの板を一気に全部見せる場合があるので、設定することにしました。

※ 余談ですが、板名入力ボックスで「All」と入れると全部出てくるので便利です。


2. 広告にフォーカスを吸われる


広告にフォーカスが移動しないよう修正しました。…AdMediatorでは発生しなかった問題ですね :(ウェー


3. 起動時のフォーカス位置

お気に入り板のタイルにフォーカスが入るよう変更。その他フォーカス迷子系の問題をいくつか修正しました。




2016年9月7日水曜日

F10 Versions と XBOX One 対応

画像掲示板ブラウザ F10 ですが、現在ストアには大きく分けて「三種類」のバージョンが上がっています。お使いのWindows 10 のバージョンによって自動的に選択されます。

また、OSを更新した場合はそれに伴ってアプリケーションも更新されます。

F10 image bbs browser
https://www.microsoft.com/store/apps/9nblggh1ntrd


1.1.x 系 ... Windows 10 10240 (1507)


去年のWindows 10 発売以降、OSを全く更新していない…場合、こちらのバージョンがインストールされます。
ただ、F10の使用データを見ると、このバージョンは現在殆ど使われていないのが判っているため、今後更新の予定はありません。

1.2.x 系 ... Windows 10 10586 (1511)


昨年11月のWindows 10 November Update をインストールしている場合、こちらが入ります。
現在はこのバージョンをメインに更新作業を行っています。
9月10日追記...1.2.302 がストアに掲載されており、ダウンロード・インストール可能です。


1.3.x 系 ... Windows 10 14393 (1607) 


今年8月の Windows 10 Anniversary Update をインストールしている場合、こちらが入ります。
XBOX One で使うためのゲームパッド対応等も入っています(PCにゲームパッドを繋いでいる場合でも使えます)。

9月13日追記…1.3.306 がストアに掲載されており、ダウンロード・インストール可能です。

一旦 1.3.306が審査を通った後、テスト用にサイクルの速い更新が行われるテストグループへのリリースが始まります。

テストグループに参加してみたいという方は、tickets @ ddlg.uservoice.com まで、お使いのMicrosoft Account のメールアドレスをお伝え下さい。登録します。

Gamepad での操作について


基本

  • 上下左右キー...フォーカス移動
  • Aボタン...選択
  • Bボタン...戻る
  • メニューボタン...メニュー

左のスレッドビュー、右のカタログビュー

  • メニューボタン...コンテキストメニュー(右クリックメニュー) PC・Mobile のアプリバーで行う操作は、大体このコンテキストメニューから操作できるように作っています。
  • LT・RT...上下スクロール
  • (レス又はスレッドを一つ選択時に)Bボタン...スレッドまたはカタログ全体を選択 この状態でLB・RBでタブ移動

画像表示画面・板設定画面・設定などのPopup系から

  • 戻る...Bボタン

未実装

  • 画像表示画面でのズーム・スクロール


※まれにしばしば、フォーカスが行方不明になるかもしれません。



◇◇◇




ただ、実際試してみると…PC・Mobile 用に作ったUIを、XBOX One のゲームパッドで操作するのは…対応はできるのですが、使いやすいか?と言われると難しいです。
F10のようにListView / GridView を二つ横に並べている場合、フォーカスを切り替える動作がいちいち挟まるのがあまり宜しく無い感じです。





2016年9月5日月曜日

F10 - 最近のふたば仕様変更への対応について

昨今のDDoS攻撃の影響で、ふたばに何度か仕様変更が入っています。

これに伴い、最新の「9月4日仕様」…mayのみ画像が//以下の相対参照... に対応した画像掲示板ブラウザ F10 v1.2.302 をストアに提出済みです。
9月5日現在はストアにて審査中で、上手く行けば数日でストアに掲載・自動更新されます。
今しばらくお待ちください。


また、同じF10 v1.2.302 はストア上にテスト用のFlight Packageとしても載せており、F10 テストグループに入っている方は現在ダウンロード・テストすることが可能になっています。

テストグループに入ってやってもいいよ、という方は  tickets @ ddlg.uservoice.com まで「お使いのMicrosoft Account のメールアドレス」 をお伝え下さい。(TwitterのDMでもいいですよ)
こちらで(手動で)登録作業が完了すると、自動更新でF10 v1.2.302が落ちてくるようになります。

宜しくお願いします。