2017年7月24日月曜日

WiFiSD8 の公開を終了しました / The distribution of WiFiSD8 was ended.

首記の通り、WiFi SDカードクライアントアプリ WiFiSD8 の公開を終了しました。

  • Windows 10 Creators Update で多数の不具合報告がある事
  • しかし既に問題再現・修正に必要な機器類(FlashAirカード等)を所持していない事

これらが終了の主たる理由になります。
これまでのご利用有難うございました。

We ended the distribution and development of the WiFi SD Card client app 'WiFiSD8'.
Here is a mainly reason of discontinuation:
  • There are some critical issues on WiFiSD8 with Windows 10 Creators updates.
  • We already have no devices to reproduce and fix the issues - FlashAir cards, etc.
Thank you for using WiFiSD8.

2017年7月20日木曜日

UWP App 開発で頼りになるコミュニティ・サービス一覧

UWP App 等、Microsoft のプラットフォーム上で開発する上で助かる・頼りになるのが各種オンライン フォーラム・コミュニティです。
ただ、Microsoft はご存知の通り太陽系で最大のソフト屋さんですので…こういうフォーラム・窓口もやたら多いですし、目的・使い方もまた色々です。

そこで、私が出入りしている所を中心に「役割別に」整理してみようというのがこの記事です。基本MSのものですが、一部MSとは関係の無い運営主体も含んでいます。

  • 質問…こういうコード書いたけど動かないです助けて、と的を絞った質問
  • 相談…こういう機能を実現するにはどうしたもんだろう、どんなライブラリがいいだろう的なふんわりした相談
  • 報告…こんな問題があります、これが動いていません、と責任者(MS)に伝える
  • 提案…こんな機能、APIが欲しいです、と伝える

質問
質問・相談
質問・相談
提案
報告
提案(一般)・報告(開発)


※なお、今回の記事は基本的にUWP App 開発 を行う上での対象である

  • UWP(WinRT) API
  • OS
  • Visual Studio

に主眼を置いています。その他の分野…Xamarin, Desktop App, Azure, Office, また一般向けサイト(Microsoft Answers) 等は考慮に入れていません。
また今回のカテゴリ分けは基本私が今迄見てきたベースで勝手にやっているので、運営者の意図とは異なる部分もあるかと思います。ご了承下さい。


StackOverflow

https://stackoverflow.com/questions/tagged/uwp

運営
StackOverflow
対象
よろず UWPの場合はタグ「UWP」が使われます
カテゴリ
質問
レポート形式
Markdown形式 コード貼り付け・画像添付可能 ファイル添付不可
通知
有り
言語
英語 日本語版のja.StackOverflow もあります(UWPの話題は少ないです)

  • Responseはここが一番早いかもしれないです。
  • MSの人が数名面倒見ているようでマメに回答しています。
  • ふわっとした相談、挨拶、自己紹介、その他質問と関係のないものは基本歓迎されません。他のフォーラムでも基本同じですが、SOの場合はHi, Hello, best regardsだの書くと自動的にその部分だけ削除されるという徹底ぶりです。
  • どんなライブラリがお勧め?とかも実はSOでは御法度なのでDownvote不可避です。
  • 聞きたいことを絞って、具体的なソースを貼って聞くのがコツです。
  • UWPの質問に、WPFやWinForm時代の知識で答えちゃう人がわりといるのが残念。


MSDN forum

英語
https://social.msdn.microsoft.com/Forums/windowsapps/en-US/home?forum=wpdevelop
日本語
https://social.msdn.microsoft.com/Forums/ja-JP/home?forum=winstoreapp

運営
Microsoft
対象
Microsoft 製品・サービス一般
カテゴリ
質問・相談
レポート形式
リッチテキスト コード貼り付け・画像添付可能 ファイル添付不可コードサンプルを上げたい場合はZipを自分のOneDriveに置いて公開設定にする人が多いようです
通知
有り 投稿時に「アラートを送信する」チェックボックスをオンにすると、投稿にコメントがつく・評価される等のタイミングでメールが来る
言語
英語・日本語別にフォーラムが設置されています


  • Moderatorがおり、ジャンル違いの質問については適切なForumに移動されます。
  • やりとりの過程でOSの不具合だねとなった場合は開発に回してくれる(こともある)又はFeedback Hubに送れと言われる(こともある)
  • MS側・ユーザー側回答者共に層は厚いです。
  • 放置気味のForumもあるので注意が必要です。返答0の質問が多数放置されている所は用心したほうがいいです。


Reddit - Windows Platform Development

https://www.reddit.com/r/WPDev/

運営
Reddit
対象
UWP App 開発の話題が中心
カテゴリ
質問・相談
レポート形式
Markdown形式  コード貼り付け可能 画像・ファイル添付不可
通知
有り
言語
英語のみ



  • 単に仕様やAPI に詳しい人というよりは、実際にStore にApp 出している人が多い気がします。例えばStackOverflow だと、UWP Appの質問にWinFormやWPF時代の知識で答えてしまっている人をそこそこ見かけるのですが、Reddit WPDevではまずありません。そういう意味で専門性はSOより高い印象があります。
  • 流量は比較的少なめ…週に数通程度ですが、Postがあると反応は早いです。
  • SOでは聞きづらいライブラリ話等も許容されるので、実は貴重な場所かもしれません。
  • 質問・相談以外にも、自分のBlogにこんな技術系Postを書いたよという通知記事もあります。面白い。



Windows Developer Feedback

https://wpdev.uservoice.com/

運営
Microsoft
対象
Edge, UWP, Dev Center, Windows Store
カテゴリ
提案
レポート形式
プレーンテキストのみ 画像貼り付け・コード添付等は無し 画像を貼りたい人は各自imgur等の画像アップロードサービスを使う場合が多いようです
通知
有り
言語
メインは英語 日本語はたまに見かける程度 ただやり取りは回っているようなので自動翻訳等使っているのかもしれません
その他
仕組み自体はUservoice社のサービスを使用




  • 開発者から製品・API等への機能追加等の提案・要望を出すのはこちら、とガイドされています。
  • 製品・サービスについてここで要望を聞き、選択・プライオリティ付け、プランニングの参考にするという位置づけのようです。ここで提案されたものが最終的に製品に反映されることもありますし、投票を多数集めても全く一顧だにされない事もまた多いです。
  • 参加者には投票権が与えられ、「自分もそう思う」という提案については賛成票を投じることができるUservoiceのシステムです。
  • Windows 以外にも、VisualStudio等他のMS製品でも同様のUservoiceを使ったフィードバックサイトが存在しています。



Developer Community

https://developercommunity.visualstudio.com/spaces/8/index.html

運営
Microsoft
対象
Visual Studio, Visual Studio for Mac, Team Foundation Server, Team Services 
カテゴリ
報告
レポート形式
リッチテキスト コード貼り付け・画像添付可能 ファイル添付可能 公開範囲を指定可能(レポートは全員、ファイルはMSのみ等)
投稿後の編集可能
通知
有り 既定の設定で、投稿した問題にコメントが付いた・トリアージされた等のタイミングでメールが来る
言語
メインは英語 日本語はたまに見かける程度 ただやり取りは回っているようなので自動翻訳等使っているのかもしれません
その他
トリアージ(問題の重要性の評価)・同じ問題のグルーピング等は管理側でマメに行われている



  • VSのインストールが途中で止まる、IDEが固まる、コンパイラのオプションおかしくねえか、ライブラリ変、Store向けbuildの度に毎回毎回ObjDirectoryを手動削除しないとエラーが出て死にたくなる、MobileにDeploy出来ない、Win10 IP何某で動きが変、その他諸々VS開発環境系の話は全てここです。
  • 逆に、OSやAPIのような「VSの外」の世界はお門違いになります。
  • 開発系でねっとりと濃い為、詳しいユーザーさんが回避策を教えてくれる事も多いです。
  • 最近のVisual Studio では必ずウィンドウ右上についている Feedback Buttonを押すと飛ばされるのがここです。
  • Triage等のTag付け、Duplicate処理等はMS側でかなり手間をかけて運用されているようで、システム・運用共にこの記事で紹介している中では一番良く出来ていると思います。…次に紹介するフィードバックHubがこのシステムだったらいいのになと思う事しばしばです。
  • 開発系の問題報告サービスとしては、長い間使われている「Microsoft Connect」というサービスもあります。性格はこちらと似ているのですが、特にどちらかに一本化という訳でもないようでConnect 側もまだ活発に問題がPostされています。


Feedback Hub

Windows 10 アプリ 「Win+F」で起動します

運営
Microsoft
対象
Windows
カテゴリ
提案・報告(一般)、報告(開発)
レポート形式
プレーンテキストのみ 画像・フィードバックHubアプリが取得するデバッグ情報の添付は可能だが、閲覧できるのはMSの人のみ
投稿後の編集不可
通知
無し
言語
OSの設定言語
その他
Webブラウザでの閲覧は不可能 専用のフィードバックHub アプリでのみ投稿・閲覧可能  またWin10 Mobileでの問題はWin10 MobileのフィードバックHub アプリで報告する必要がある



(一般向けの「フィードバック」機能、アプリ開発者が自アプリ向けのフィードバックを受け付ける機能については本稿では省き、問題報告についてのみ述べます)

  • OSの機能に問題があるのでMSに伝えたい (ここバグってません?等)
  • Insider Previewを入れたらここが動かなくなったのでMSに伝えたい (IPビルド何某にあげたら今迄動いてたAPI の動作が変!等)

等がこちらになります。カテゴリの「開発者向けプラットフォーム」を選びます。


現状、OSの機能についての問題報告窓口はここだけであるようです。
窓口自体はMSDN Forum、VisualStudioCommunity、またMicrosoft Support 等ありますが、各所で「これはOSの問題だね」となったところで「じゃあFeedback Hubに入れてね」という扱いになる事が多いです(そういう共通運用がされているように見えます)。

使い方のコツ


問題報告はできるのですが、それを受けて問題が直ったかどうか教えてくれる…という事は開発者向けプラットフォーム カテゴリでは少ないです。基本意味のある返答は無いと思ったほうがいいようです。やりがいの無い場ではあります。
ただ、ここで報告しないことには何も始まらないのもまた事実です。
ここは堪えて問題を粛々と報告しましょう。

書き方ですが、


  • タイトルには問題を簡潔に1行で 個人的には、フィードバックハブのユーザーに伝わりやすいようにIPの場合はビルド番号を入れるようにしています。ただ、MS側にはOSのバージョン情報等はデータとして送信された物が見えるので、そこまで詳しく書かなくてもいいようです。
  • 再現手順を箇条書きで順に示す こつは、読む相手が「Windowsの事はすべて知っているが、あなたのアプリ・問題は全く知らない人」と仮定し、その人が「こう順に手を動かせば何が見え、そして最後にあなたの見ている問題が現れる」ように書くことです。ここが一番重要です。一般に、開発側で再現できない問題は直らないです。
  • どれが問題なのかを明確にする 「この返り値が問題」「この表示が問題」と明示します。
  • その問題があなたのアプリに及ぼす影響を明確にする 先ほど仮定したように、相手はあなたのアプリを全く知らないので、この問題があなたのアプリに与える影響が全く分かりません。説明が必要です。全く起動しない?アプリの価値にかかわる重要な機能が動作しない?それほどではない?回避策がある?無い?
  • 機械翻訳されるので、難しい言い回しは使わない あれを何したらどうなった、これが動かないのが問題、式の子供のような文章を心がけると翻訳の通りが良くなります。仮定、時制の変化、比喩、感想、その他諸々は翻訳の品質を下げます。

📱📱📱


一般に…社内開発等のバグ報告のプロセスですと、開発側が報告を読み、分からないところがあればテスト側…PA Group等に問い合わせる、意味を聞く等が可能です。

ですが、このFeedback Hubはそういう優しいプロセスがほぼ無いです。一発勝負のプレゼンみたいなものです。相手は他にも見るべきFeedback Itemを山ほど抱えています。簡潔に必要な事だけを並べ、あなたの問題が修正されるべき重要なものである事を納得してもらうために出来る事をする必要があるでしょう。
問題への投票数も重要な要素です。あなたの問題が一般的、他のアプリにも関わる問題でしたら、Twitter等で短縮URLを貼って共有するのも充分に意味があります。

逆に…Feedbackのコメント中でグチる、不愉快さを表明する、怒る、同じフィードバックを何度も提出するなどは…それをMSの担当者が見たところで…問題が取り上げられる助けになるとは考えにくいですよね。

ただ、こういった不毛なコメントはシステム・運用上のこなれていない部分があるが故の裏返しなのかもしれません。この記事でフィードバックHubだけ記述量が多いのも、それだけ使う側が気にしないといけない部分が多いという事でもあります。ここまで各種コミュニティサービスを並べてきましたが、このフィードバックHubはマイルドに言ってもシステム・運用共に問題が多いと感じます。US本社でのReddit AMA、日本支社でのInsiders Meeting 開催等、改善への取り組みは始まっているようなので今後に期待したいです。


今回紹介していない所


  • Teratail あまり見れていないです。
  • 2ch ウチのプロバイダから書き込みできないので見てないです。コメントできない掲示板ほど空しいものも無いので。
  • Microsoft Support   コミュニティ要素が一切無いので今回紹介していませんが、Dashboard でのアプリ公開にまつわるトラブル等、明らかにMS側の問題であり、対応してくれないとどうにもならないものも多いです。この場合はオンラインコミュニティで相談するよりはさっさとサポートに連絡して直してもらったほうが話が早いです。ダッシュボード 右上の「?」アイコンから手続きに進みます。
  • GitHub  最近はProject RomeWindows Template Studio のように、開発中のプロダクトもGitHub上で全公開で進められるものが増えています。この場合、GitHub のissue で問題や要望について直で送ることが可能で、話がとても早いです。






2017年7月18日火曜日

フィードバックHub Reddit AMA

Reddit のAMA .. Ask Me Anything「何でも聞いて?」企画について、MS担当氏がフィードバックHub への質問に答えるAMA が7月18日にありました。


I'm Devin from the Feedback Hub app! Ask me anything about the Feedback Hub! 
https://www.reddit.com/r/Windows10/comments/6nvsja/

Redditのフローティングスレッド形式で
質問と回答がばんばん続いていく形です
答える方も体力が要る(一人でやってる訳でも無いとは思いますが)

大変興味深い内容でしたので、(ものすごく雑に)まとめたのがこの記事です。

(実際の所、今後の改善予定についてAMA中に確約できるという物でもないので…当たり障りのないというか、そうですね頑張りますね今後検討しますね、位の解答が多くなってしまうのは仕方のない所だろうと思います。どちらかというと要望を吸い上げるのが目的という面もあるかもしれません。)

※ フィードバックHubについては、このBlogのこちらの記事でも詳しく触れています。

UWP App 開発で頼りになるコミュニティ・サービス一覧
https://ddlgjp.blogspot.jp/2017/07/community-serivices-for-uwp-dev.html



🍙🍙🍙


Q 他言語のフィードバックの内容をユーザー側でも見たい、特に英語のフィードバックを見たい(同じ質問が多い)
A 翻訳はされているのでエンジニア側は全言語のを読んでいる ただユーザー側が見たいという要望はわかっているので今後検討

Q 本当にMSはフィードバック見てるの?反応が全然無いんだけど どうなってんの?あ?(多い)
A 答えたいけどもFeedbackは量多いから全部に反応はしづらい ごめん DuplicateのCleanupもまだ完全ではない

Q なしてWebから見られないの Android、iOSのような携帯端末から見られないのが面倒(多い)
A 現状はWindows 優先 予定は未定

Q 検索フィルタを強化してほしい 解けた問題、AppVersion, 色々の条件でリスティングしたい(多い)
A そうだね

Q モバイルのフィードバックをPCからポストしたい モバイルでフィードバックの文字入力は面倒(複数)
A ポスト時にシステムの診断データを同時に送信するので、Mobile上での処理が必要になっている

Q 遅い!!!(複数)
A そうだね、がんばる

Q ロードマップ的なのがあればいいのに このフィードバックはバージョン何までに処理、みたいな (複数)
A そうだね

Q コレクションの管理が良くない 自分でコレクションから外すとかやりたい(複数)
A そうだね

Q いちいち「このビルドをお勧めする?」って聞いてくるのうざくね?
A 毎回の更新で聞かないようなロジックは入ってるんだけども Insiderの場合は更新の回数自体が多いから…

Q 恐竜サイズのNinjaCat一匹とNinjaCatサイズの恐竜百匹、襲われるならどっち?
A 恐竜サイズのNinjaCatとハグしたいですな

Q Feedback見てる時何飲んでるの?
A ドクペ


(僕の感想)
「遅い」はピンと来ない 速くは無いけど、使っててイラつく遅さは経験したことが無いですね。
その他は全くその通りと思います。


2017年6月30日金曜日

Microsoft MVP for Windows Development を受賞しました

Microsoft MVP for Windows Development を頂きました(*´▽`*)ウラー
2017年6月1日付でした。


頂けるガラスのトロフィー
その他認定証、シール等がもらえます




 Microsoft MVPって何? 何か良い事あるの?といった話は… Alan Mendelevich さんが最近書かれたBlog記事が大変良くまとまっているのでそちらをご参照頂くのが良いです。

Why would I want to be a Microsoft MVP and how do I become one? Part 1.
https://blog.ailon.org/why-would-i-want-to-be-a-microsoft-mvp-and-how-do-i-become-one-part-1-529d34123117

…とリンク貼るだけも何なので、その記事を真似て自分の場合どうだったかを書いてみようと思います。


1. Microsoft MVPとは



日本MSのMVP 紹介からそのまま引用しますと、
https://www.microsoft.com/ja-jp/communities/mvp/


「マイクロソフトの製品やテクノロジーに関する豊富な知識と経験を持ち、オンラインまたはオフラインのコミュニティや、メディアなどを通して、その優れた能力を幅広いユーザーと共有している個人を表彰するものです。」


受賞カテゴリはMSのサービス・製品に対応した以下10種類です。

Azure, Windows, Office, Visual Studio and Development Technologies, Data Platform, Cloud and Datacenter, Enterprise Mobility, Windows and Device for IT, Office Servers and Services, Business Solution

 …もう少し生っぽい話をしますと、自薦又は他薦で地域会社(ここでは日本マイクロソフト)に申請します。申請書類には、上の説明にあるような「コミュニティへの貢献活動」を書きます。活動は以下のカテゴリに分けられています。

オンライン活動・イベント等での講演・出版・イベントの運営・オンラインフォーラムのモデレート・ソーシャルメディアでの活動・ポッドキャスト・サンプルの公開…

 それぞれのカテゴリでの活動は、PV幾ら稼いだか・本なら何部・講演なら聴衆何人…など評価可能な数字込みで記載します。…別に全部やってないとダメという話ではないです。後でまた触れます。
ここは日本人の慎みを一旦忘れ、ポジティブなアメリカじんに成り切って、嘘の無い範囲で自分をアピールします。雰囲気的には…外資の会社に出す職務経歴書のノリに近いです。
これら申請を上に挙げたサービス・製品の(US本社の)プロダクトグループが審査し、Youいいね!となったら合格、という流れであるようです。正確なところはわからない部分も多いですが。

 このように、MCSA, MCSEMCP のような「試験」を伴う「資格」とは根本的に別のものです。受験料のようなものもありません。

 審査は2017年2月より「毎月審査」に変更になっています。私は以前、年4回の頃には書類出そうと思っていてもまだ大分先だな…でもまぁ騒ぐほどでもないか…と毎回出しそびれていました。
なお今回、私は応募書類を2017年3月に提出し、審査の結果は5月1日に連絡されますという話だったのですが、期日を過ぎても受賞・落選どちらの連絡も無く、アルェー…これが今話題のサイレント…と忘れかけていた所6月1日に受賞Mailが届き大変驚いたという経緯がありました。こういうこともあるようです。



2. 得られる便益


即物的なもの


 まず分かりやすい所では、Visual Studio Enterprise Subscription 相当のものが一年間使えます。Visual Studio, Office 365, その他MS製品、Azure 月15,000円相当の使用権など。普通に買うと3,000USD/Yearです。
加えて、Partner企業の開発製品等が使えるOfferもあります。

大きな声で言う事でも無い動機としては、以前別件で頂いたbizSpark の権利が今年で切れるため、後釜としてMSDN Subscription タダで使える手は何かないかしら…という下心がありました。


コミュニティサービス


 MVP Distribution List 、いわゆるMailing Listやその他コミュニティサービスが用意されています。 NDAなので内容はご紹介できないのですが…

私はUWP App を中心に活動していますが、日本・それ以外でも活発なコミュニティというのをあまり見たことが無く(フォーラムやSO等は別にして)、詳しい人の寄り合いみたいなものがあれば参加したいと思っていました。MVP DL は、そういう私にはかなり嬉しいサービスで満足度は高いです。結構な流量のMLを毎日読んだりたまに書いたりしています。
まだ参加できてはいないのですが日本でのイベント、またMSの本社シアトルでの Global Summit等もあるようです。後者はおぜぜ、お足的に厳しい部分もあるのですが…ウウ


3 どうやってなるのん


 受賞された方のお話をBlog 等で読むと、開発者イベントや勉強会等で活動していると地域のCoordinatorに応募してみないかと誘われた、知人のMVPに推薦された的な話が多いようです。

私の場合で言うと、特に地域会社の方々と御縁があるわけでもなく、イベントや勉強会にも殆ど出ていませんし講演経験もありません。このため、上の1で列挙した「活動」のカテゴリで見ると…講演・コミュニティ等の対人活動的な点数はおそらく極小、0だったろうと思われます。

このため稼げた(であろう)部分は専らオンライン方面で、

 Stack OverflowやMSDN Forum については、投稿数こそ多くは無いのですが、質問者の助けになりそうな部分を重めに…こってり書いてきたとは思っています。サンプルのUWP App をストアに載せたりソースをOneDriveやGithubに置いたりと。

Dev Center Insiderですが、Dashboard には言いたいことが色々あったためBuild2016でInsider Programがアナウンスされた時に即応募し、Feedback・ProblemReport・Suggestion等結構送っていました。

Blog については、F10 や WWC の開発中に新規技術を試し実装した記事…Windows Hello、UI.Composition、Xbox One への展開、Project Rome対応…が多かったため、そこをアピールしました。APIをDocument通りに入れてソース貼ってハイ動きましたね、というのも寂しいので、なるべく「実際にリリースしているAppで使ってみてわかった」話を中心に書いてきました。PVは大したこと無いのですが、ネタ的に扱う人が少ないので検索順は割と上に行きやすいのがポイントだったかもしれません。

この辺りを実績として搔き集めれば通るのでは?通るといいな…通った!という所です。



もしMVPになったら…?という大変頭の悪い動画
かなり昔のやつです

2017年6月14日水曜日

F10 recent updates - High contrast color support, PCL profile111

画像掲示板ブラウザ F10、以下二つのバージョンをリリースしました。Win10 Creators Update, 又は Anniversary Update 上で F10 をお使いの場合、自動的に更新されます。
なお、今回の更新は「段階的に」行うため、更新が行きわたるのに普段より時間が掛かる見込みです。

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

  • F10 ver 1.4.386 - Windows 10 1703 (Creators Update)
  • F10 ver 1.3.386 - Windows 10 1607 (Anniversary Update)

(6月30日追記: 以下の変更を入れた 1.4.388 がストアに載りました。)

  • Narrator 対応…Narratorでレス内容を簡単に読み上げできるよう変更
  • スタートメニュー用タイルにアプリの文字列表示を追加 ハイコントラスト設定の場合、タイルの画像が見えなくなりアプリを識別できなくなるため


変更点


F10 1.3 / 1.4 共通: ハイコントラスト カラー対応


ハイ コントラスト表示



今回の更新で、OSの設定でハイコントラスト カラーを使用している場合、F10内の配色もそれに準拠したものに変更されます。
OSの設定は、設定→簡単操作→ハイ コントラスト で変更できます。

※これまでも適用自体は可能でしたが、一部の表示がハイ コントラストに適した配色になっていませんでした。


F10 1.4 のみ: コア機能の PCL Profile を 32 から 111 に変更


こちらの項目については、後日別の記事で詳しく書く予定です。


段階的ロールアウトについて


今回の更新には「段階的なパッケージのロールアウト」(Gradual package roll out) 機能を使用しています。

※お使いのユーザー様側から見ると普段の更新と同じで、特に作業等は必要ありません。

段階的なパッケージのロールアウト
https://docs.microsoft.com/ja-jp/windows/uwp/publish/gradual-package-rollout

以下のような流れで更新が行われます。


  1. ランダムに選択されたユーザー(今回は全ユーザーの20%)に対し、更新版が配布されます。
  2. こちらで動作データを確認します。
  3. 動作データに問題が無ければ、全ユーザーに対して更新を配布します。更新上の問題が見つかった場合、更新を中止します。


今回の変更の2番目…PCL profile の変更はテスト済みではあるのですが…アプリケーションの動作全てに関わる部分でもあるので、大事を取って「様子を見ながら」更新することにしました。


Dashboard 上の表示
このような感じでじわっと適用範囲を調整できます。





2017年5月20日土曜日

Build2017 Session視聴メモ その2

Build 2017, 見たセッションの内容をメモしておこうという記事です。
そうしないと忘れちゃうので。

Build2017 Session視聴メモ その1
http://ddlgjp.blogspot.jp/2017/05/build-2017-session.html


P4086 Beyond App Containers: Gaining privileged access to hardware inside your Windows app using custom capabilities
P4102 UWP Apps file access improvements
B8012 Tip, tricks, and secrets: Building a great UWP app for PC
B8100 What's new and coming for Windows UI: XAML and composition
P4173 Tips and tricks for creating performant UI in UWP


P4086 Beyond App Containers: Gaining privileged access to hardware inside your Windows app using custom capabilities

https://channel9.msdn.com/Events/Build/2017/P4086
http://video.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/P4086.pptx

Creators Update ではUWP で Device Apps が作りやすくなりました!という話

Hardware App を例にして考える


デバイス屋さんが自分のハードウェアとセットで売るアプリの話 HWの設定、初期化、ドライバ、色々…
大抵はWin32で作るもの
問題

Win32であるがゆえに…



  • Desktopでしか使えない(Win32だからね)
  • アプリ更新の仕組みが無い(自前でやるの結構大変)


じゃあUWPなら、というと、これはこれでApp Container の制限があり作りづらいところがあった このあたりをCUで変えたよ!という話

ここでUWP App のおさらい


UWP Appとは何でしたっけ?
Windows10 では複数のDeviceFamily …PC、Mobile、Hololens、等があるけども、それらの最小公倍数、どのファミリも共通に持つApplicationの基盤が「Universal Windows Platform」、UWP
この上で動くのがUWP App だからUWP Appの最大の特徴「Windows 10なら基本どこでも動く」が成立する

UWP 他の特徴…
Isolatedで、システムに影響を与えづらいApp ContainerのSandbox

今迄のDevice App…Windows 8時代のWSDA、Windows Store Device Appsを考える


幾つか問題があった

  • Desktopでしか動かない(UWP前だから当たり前だが)
  • 作るの面倒(たしかMSとお話して権限貰う必要があった)
  • デバイスのメタデータをMSの鯖にUploadする必要があった HardwareIDと紐づくから
  • NTサービスを触れなかった(ドライバは触れた 一応UWP・StoreAppにもIoctl触るAPIはあるので)



(感想 これ、Win8出たころにプリンタ屋さんとかのベンダー向けに色々説明あったんですけど 覚えてる? あんまり流行らなかった印象あります)

このように使いづらい部分があったので、Win10 CUで変えました!

Custom Capability のご紹介



  • uap4!!!
  • 今迄のSpecial・Restricted Capability の扱いと似ている
  • AppxManifestの中で宣言してサービス・ドライバ・ハードウェアへのアクセスを許す


実際どうやってるのん?



  • UWP AppからNTサービスへはRPC で繋げる (なので多分サービス側にもRPCの口を開ける必要アリ)(もちろん普通のUWPはRPCでNTサービスに繋げるとか無理で、このCustom Capability をManifestで宣言しているアプリのみが使える)
  • ドライバへはWindows.Devices.Custom を使う


(感想 極めて個人的な思い出になるんですが…15年くらい前にPC用のユーティリティソフトを作っていたころ、まさにこの構造を採用していました NTサービスに管理者権限の必要な機能を全部集めて、UserModeのWin32 ApplicationからRPCでそれらを呼ぶという あーあの構造やっぱ正しかったわ、と今になって安心しました)

具体的には…ドライバ


  • .INFでCapabilityのIDコミのプロパティエントリを作る ,又は
  • ドライバにプロパティアクセスの口を開ける


具体的には…NTサービス


  • RPCの口を開ける

誰でも使えるの?…NO!承認されたAppのみ



DevCenter経由でSCCDを請求

承認を得たAppはSCCDをPackageに含める
OSはSCCDをチェックしてOKなら動かす

Hardware access for Universal Windows Platform apps


P4102 UWP Apps file access improvements

https://channel9.msdn.com/Events/Build/2017/P4102

(感想 これPre-recorded な短いセッションなんだけど、UWP App のFileAccessに関するSandbox知ってた人にとっては結構びっくりする話だと思います)

(右の眼鏡の人の声がヨーダみたい)

Next version of windows ではUWP App でもDesktop AppみたいにFileAccessが出来るようになるんだぜ という話

FindFirstFile, CreateFile2, PathIO...


Demo おお使えてるわ まじか

Enumerationするには…



  • FindFirstFile and FindNextFile .. ディレクトリのファイルを全舐めするとき、CreateFile2やPathIOを使ってファイルにアクセスするとき、DesktopAppのCodeをUWPに持ってくるとき にお勧め
  • StorageItem .. プロパティアクセス、サムネイルアクセス、共有コントラクト にお勧め


(感想 プロパティとサムネイルはWindows.Storage はかなり良く出来ているのでNative APIを使う理由は無い んが、それ以外…いわゆるFileAccess は上側のNative使った方がそりゃ早いよねという)

CreateFile2 / PathIO Demo

CreateFile2は…アプリのローカルストレージ(LocalFolder, tempFolderなど例のフォルダ)だけでなく、アクセス可能な全てのフォルダに対して使用可能(!!

FALやMRUなどでアクセス履歴管理するあたりは今迄と同じ

(感想 これは結構びっくりで 今迄は、アプリローカルストレージ以外は基本Broker Process 経由のAccessになるのでこういうNative APIは使えなかったんですが 今度から使えるよ!という話)
(感想 とは言いつつ…全く初めての話でも無くて 前にStackoverflowでMSの人がある程度AUでも出来るよ?と言っていて驚いたことがありました https://stackoverflow.com/questions/42799235/  )

Demo ファイルアクセスの書き方だいぶスッキリしそう


B8012 Tip, tricks, and secrets: Building a great UWP app for PC

https://channel9.msdn.com/Events/Build/2017/B8012

Building great UWP app for PC

次にPCにAppを作るならUWP Appでしょう!というUWPをがんがん推すSession


  • MultiWindow
  • Enterprise Controls
  • D&D
  • Modern Deployment like as differential update,etc 


ひとくさりWin32 AppをDisるSpeaker

Deployment、Uninstall、Privileges, etc

UWPで今出来ない事…色々言われてきましたよね、ええ ここ面白いので全部書いておこう

「UWPはモバイルのためのもの」「UWPはデータのブラウズにはいいけど作るものではないよね」「MSだってUWP使ってないのになぜ俺が!?」「UWPは.NET に比べると普通サイズアプリのパフォーマンスが充分じゃないよ」「UWPでは現実世界のLOB Appでやりたいことが出来ないんだ」「UWP AppはWebAppに比べるとインストールと更新が難しいよね」「UWPを始めるのは難しいな・・」「LOB Appで必要なデータビューの部品が足りてないよ」「UWPで出来るのはおもちゃ…ゲーム、デモ、トイアプリくらいだね!」「UWPはタッチ操作には便利だけど僕の顧客が必要なのはキーボード・マウス操作なんだ」

(感想 良く集めた)

まず最初「MSだってUWP使ってないのになぜ俺が!?」


→ Win10 同梱のAppは大体UWP Appです Paint3D, OneNote, Adobe Xd, ..

今日はUWPで出来る事色々を紹介しよう



  • Jumplists
  • Multiple Windows Instances
  • Overlay views
  • Long running operations

Demo


毎度おなじみNorthwind DBを使ったデモ


  • ToolTip付きのHotkey ... このあたりはCUから入ってる
  • MultiWindow and Drag'n Drop, PinP .. PinPを動画でなく、入力用の常駐フォーム用に使ってる この使い方は面白い
  • Windows Form Appから UWP App へのDrag'nDrop (88888)
  • MS Wallet の呼び出し


このDemoのおねえちゃん(マダム)のアプリはMultiWindowの使い方上手だね

DataGridはTerelikの奴かな

使い方デモ


Hotkey

  • MultiWindow CoreApplication から直でWindow作ってるね これ前からあったっけか?
  • ApplicationViewSwitcher これも偉いあっさり使ってる F10で頑張ってやってた頃に比べるとえらいスッキリしている
  • Drag'nDrop
  • "SqlBridge" ... このデモで使ってるSqlClient AppService経由?これどうやってんだろう?よくわからない


「UWPを始めるのは難しい」

→ Windows Template Studio のご紹介 デモ


  • VSからTemplate Selectorでベースを選ぶとコード生成
  • VSのTaskListにこれからやることリストがもう入ってる
  • TerelikのDataGrid使えばそれっぽいAppがすぐできますよねーーーー


今迄の説明であったのは全部Creators Updateで出来るんですよ!

「UWPはまだ完全じゃない」


これからも改善していきます

「UWPはおもちゃだぜ」


UWP App コマンドラインサポートだってできる パラメータにファイルとオプションを渡すデモ


  • UWP App、インスタンス二つ実行してる!!えーーーーー びっくり 電卓はMultiViewだけど
  • !!!AppxManifestの中でAppExecutionAlias を作って中でuap5:ExecutionAlias Alias="tpsviewer.exe'    なーに楽しそうな事をしているのか・・・
  • uap5は色々楽しそうなの入ってるね…
  • uap5:Extension Category="windows.startupTask" これも楽しそう つまりUWP Appでスタートアップに設定しようという 必要なやつ
  • MultiInstance=True をApplication Element で設定してる これはFallCUから?CUから?

※ 追記 この辺りのAppxManifestの拡張は Fall CUから、Insiderで順次入るそうです (コメント欄で聞きました)


UWPを拡張する


デモ
今度はSqlClientを.NET Standard 2.0 直で使う キャーーーーー awesome!(拍手)
よかったね!セッション中にライブでUservoiceのStateを「Complete」に変更するおじさん

UWPは未来

UWPのアドバンテージ (DesktopAppに対して、という事だろう)

  • Best User Confidence
  • Trustworthy app deployment and management
  • Sufrace Hub & Windows 10 S
  • Expanded Store monetization models
  • Engaging, intuitive experiences
  • Fluent, Ink and Cortana
  • Project Rome
  • Windows Hello & Goodbye

今日からUWP App書こうぜ!
終わり

Q&A

PinPはMobileで使える? → Desktopだけ
demo前半のAppSerivceどうやってんの?→謎い CommandLineAppをFullTrustでキックしてるみたいだけど
MultiWindowはいいけど…MultiMonitorで表示するMonitor選べる?→Uservoiceへ

(感想 MSさんはUWPこれからどうすんのかな…と若干不安要素はあるんだけど やる気はありますよ!というアピールと受け取りました ただ個人的にはまだまだ直してほしいところはある いわゆる常駐アプリが作れないのはUWP App Modelの弱点ですし、他にも色々 改善していって欲しい)


B8100 What's new and coming for Windows UI: XAML and composition

https://channel9.msdn.com/Events/Build/2017/B8100
https://sec.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/B8100.pptx

XAML親分、Tim Heuer のSession

We love great experience


Fluent Design のデモムービー

(感想 ほかのFluent Designセッションでも思ったが…動画デモで提示されるリッチなExperienceと、Fall CU で実現できるWave1との落差がでかすぎてつらい なんでも一歩ずつとはいえ)

Craftsmanship & Polish, Personal,Confidence, Fluid  このあたりのキーワードはTimさんのPresentationには必ず出てくる そういう意味では一貫してる

Windows UIの3 Layer - Framework Layer, Visual Layer, DirectX このあたりは今迄のUI.Composition の話でお馴染みのやつ


CU, Fall CU and Beyond
Fluent demoで目を引くDepth UIはFallの先、という話
また、ModernUI in Win32とかも書いてありますね なんでしょう

今日のテーマ4つ




  1. Real-world UI
  2. Natural Motion
  3. UI Controls
  4. Scale: Up and Out


Real-world UI

Lighting (reveal)
Userの注意を惹き、ガイドとなる
「フォーカス」…四角い枠付け表示に代わるもの、という見方もできる 
コンシュマーだけでなく、Enterpriseでも役に立つ
Fall CU では大体のControlに入る

Lightingのデモ

(感想 App WindowがDeactivateすると半透明処理がOffになる・・これはCUのなんちゃってAcrylicと同じだ)

Materials and Effects

Acrylic
基本的にはアクリリックブラシをXamlでセットするだけ 超楽
アクリリック以外にもXamlCompositionBaseBrush を作ってもいいのよ?画像ベースとか
VisualLayer 詳細Session B8037 Explore the next generation of innovative UI in the Visual Layer

デモ Materials and Effects
アクリリックブラシのカスタマイズ

  • アプリケーション内の背景ベースと
  • デスクトップの背景ベース、

二種類のアクリルブラシを見せる BackgroundSourceがHostBackdropと、Backdropになってる FallbackColorは(多分)Deactivateで色のみ表示の時の色

ぬこかわいい

Shapes

SVG Support お前らがくれくれというので入れてやった!(888888)
ただしCUのはStatic
この先ではAnimatable Vector Graphics をサポートしますよ!!!(88888)(多分SVGで)
これが上のほうで言ってた「Micro-Animations
Adobe xDで作れるにょ ほかのツールもサポートしたい

Natural Motion


正しい反応のアニメーションでUserConfidenceを増そうぜという

Seamless transitions

Demo... Page遷移でキーとなるビジュアルが表示されたままアニメーションして遷移するうやつ 最近よくある
例としては…音楽アプリでジャケットを一覧表示→クリックすると、そのジャケット画像をアニメーションさせながら拡大してそのジャケットのCDの再生画面に移行、みたいなやつ

(感想 この「Connected Animation」、AUのころからVisual Layerのデモでは必ずあった奴)
(感想 でもこれ、MultiViewと食い合わせ悪いんだよね…どうしようF10)

Coreographed ui ... connected animationだけじゃないよ!

(停滞するデモ そんなに時間かけるところでは無いと思う)

このVisual Layerなアニメーション、全部OS側にAnimation処理をOffloadできるのが今までのXAMLのAnimationと全く違う所 一度セットすると以降App側のCPU Timeを使わない なので上手に使えばぬるぬるしたカッコいいUIになる

(感想 このあたり、もっと楽に…吊るしで動く仕組みが要る気がする Nice to have な機能にリソースを割く順番は低い)

Dynamic Motion
Pull to refresh, parallax, Conscious Headers, ... insider buildにもうすぐで入ります
Future: Integrating Physics engines ...
(感想 Havok神がUIに)

Semantic animations

UI Contorls

Fall CU で出てくるUI Contorls総ざらえ
  • ParallaxView
  • Pull to refresh - RefreshContainer / RefreshVisualizer (やっと・・ついに・・・・)
  • SwipeContainer (ListViewのItemを左右ににゅるっとSwipeするやつ)
  • TreeView
  • ContentDialog
  • ContextFlyout
  • AccessKey (あれ、ToolTipも描いてくれる?のかな???今迄はお前ら各自で描きなさいと言われていたが)
  • Rating
  • ColorPicker
  • Repeater (よくわからなかった)


Performance as great UX


Respect animations
Limit background UI
Get to content fast .. Extended splashscreen "Optional=true" 新属性
Power Conditions
Optimize UI Creation Code
遅いXAML書いてる奴は手を上げて? おいおい全員上げれや、俺はTelemetryで君らのXAMLのスピード分かってるんだが!!!(笑い)
x:Load でロードを遅らせる あのコントロールの後にこれをロード、的な
詳しくはSession P4173 Tips and tricks for creating performant UI in UWP

Modern UI in Win32 apps

今迄説明してきたようなModern UIをWin32・WPF Worldに持ち込みたい

デモ 丸出しのWin32 C++ であるところの7zipを弄る
Opensourceなので弄るのにちょうどよかった?
Aclyric Brushの上にWin32のDialogがAnimationで表示されている 笑える




詳しくはB8110 Modernize Windows Forms and WPF apps へ!

Mobile

Mobile App はもちろん.NET なXamarinを使うよね!(あっハイ)
XAML Standard 1.0 ちらっと紹介

Wrap-up


その他諸々あるのでInsiderになってFeedbackすれや!!!!




終わり

(感想 やはりというか 2015・2016年で多かったAdaptive UIへの言及は消えていた XAML UIの版図からMobileが実質無くなってしまった影響がここにも感じられる… 最後にわざわざMobile=Xamarinって言うくらいだしね まぁそれはそれとして まだまだUIを改善する気満々なのが良く分かって安心はできた SVG Animation なんて結構いい感じになりそうです ただ、Fluent Designについてはまだまだ海の物とも山の物とも・・・Wave2からが本番な気がします それよりも、Fall CU に向けてContorlの新規追加・改良が期待できる点、こっちは恩恵大きいはずです)



P4173 Tips and tricks for creating performant UI in UWP

https://channel9.msdn.com/Events/Build/2017/P4173
http://video.ch9.ms/sessions/c1f9c808-82bc-480a-a930-b340097f6cc1/build/2017/P4173.pptx



  • x:Load 
  • Image Loading Optimization
  • LoadedImageSurface


x:Load


AUからのx:DeferLoadStrategy を置き換える奴 x:Load はこれのSuperset

https://docs.microsoft.com/en-us/windows/uwp/xaml-platform/x-deferloadstrategy-attribute
https://docs.microsoft.com/en-us/windows/uwp/xaml-platform/x-load-attribute

x:Load で Elementのロードタイミングを指定できる あのコントロールの次、みたいに 「あのコントロール」はBindingで設定できる

このため、画面一発出す時点で全部作る…のを避けられる 表示するときにロード、という作り方が可能になる

x:Loadとx:DeferLoadStragegy の一番の違いはUnload もできるところ Wao!!


Image Loading Optimizations


Image Practices refreshed


  • SVGの使用で各種サイズのImage Assetを減らせる (CUからSVGサポート)
  • BitmapをロードするときはDecode PixelWidth / Height をセットすれ(もう百万回言われてる奴だが)
  • ListViewBaseではx:Phase使えよな


この三つは今迄も口酸っぱく言ってきたところであるが!(ハイ)

デモ VisualLayerで使うImagesurfaceの話

Image LoadとSurfaceの生成がだいぶ楽になってる
今迄Visual LayerにBitmapをロードしてSurface作って…みたいのは結構コード量多かった  Suspendでのリソース管理も自前であった AU時代のVisual Layerはこのあたり全部手動だったんだよね・・・
それが!CUでは1行で済むんですよお客さん!!!
var _loadedImageSurface = LoadedImageSurface.StartLoadFromUri(IMAGE_URI);
8888888

(感想 これは超便利)

Adaptive Lights and Effects


新しいEffects, Lights
使いすぎ注意 Less is more
Power Management API

デモ Connected / Disconnected

Brushをコードで作るときにOnConnected / OnDisconnected ハンドラを付け、その中でcompositionCapabilitiesをチェック エフェクトサポートしてる?エフェクトファースト?とか
これでダメならEffectBrushでなくて、SolidColorBrushを使うなどする
また、ここでPowerManager.EnergySaverStaus をチェックする事も可能 


Visual Layer: Relative Sizing and Offset


Visual の中でのサイジングの話 Parentに対してRelativeという事みたい
(感想 これ、いわゆるVisual LayerでXAML UI Contorlの描画を弄るみたいな使い方ではあまり意識しないんだけど Visual Layerの中で独自の物を描きたい場合に意味がある)


(感想 x:Load はXamlのPerformance Tuningにはかなり役に立ちそう)




































2017年5月18日木曜日

iTunes on Windows Store を考える

Build2017 二日目のKeynote で、iTunes が Windows Storeに来る!というビックリニュースがTerry Myerson からありました。
ビックリすぎてTerryが痩せたとかなんとか(すみません)。




このiTunes をWindows Storeに持ってくるという話、今のStoreの規約・またDesktop Bridge のシステムに照らすとどんな事が見えるのかしら?いろいろ考えてみよう!というのがこの記事のテーマです。色んな意味でDesktop Appの「大物」であるiTunes のDesktop Bridge化とそれに伴う課題は、他アプリから見ても参考になる部分が多いはずです。

※ これから先の事案を予想する記事なので、何時にも増して想像に頼る部分が多いです。話1/3くらいでお読み頂ければ。

※ この記事ではiTunes がDesktop Bridge を使う前提ですが、Buildの発表ではDesktop Bridge を使うとはTerryは一言も言っていません。…が、実際それしかないだろうという体で以降話を進めます(UWPとも言っていません)。


Windows Store のポリシーから見る


現在、Windows Storeのポリシー (Version 7.3)には以下の条項があります。

Windows ストア ポリシー
https://msdn.microsoft.com/ja-jp/library/windows/apps/dn764944.aspx

10.8 金銭的な取引
アプリにアプリ内購入、仮想通貨、請求機能を追加したり、アプリで財務情報を収集したりする場合は、以下の要件が適用されます。
10.8.1
アプリ内で利用されるデジタル アイテムまたはサービスを販売するには、Windows ストア アプリ内購入 API を使用する必要があります。 アプリでは、ユーザーが以前購入したデジタル コンテンツまたはサービスを利用可能にできますが、Windows ストア アプリ内購入 API 以外の購入メカニズムを使用するようにユーザーを誘導してはなりません。
アプリで販売されたアプリ内製品は、法的に有効な通貨 (米ドルやユーロなど)、または任意の物理的な商品またはサービスに変換できません。


つまり、「Windows Storeで配布・販売するアプリの中でデジタルアイテムを売る場合はWindows のAPIを使って金銭のやり取りをしなさい」という規約です。デジタルアイテムとは、例えば曲、映画等のコンテンツです。

これをもう少し実体に即した生々しい言い様にすると…「アプリ内購入APIを使う=売上の三割を手数料としてMSに持っていかれる」、という事です。

このせいもあってか、これまで Windows Store で提供されている電子書籍や音楽配信等のアプリで「アプリ内購入API」が使われていた事は少ないです。大抵は別にWebブラウザを起動し、そこから…Windows Storeの外側でアイテムを購入する仕組みになっています。ユーザーからすると多少手間ではあります。また、三割の話を別にしても…こういったサービスの場合、販売するコンテンツの配信開始・停止、権利の管理も含めて、Webベースで構築してある場合がほとんどです。これにわざわざアプリ内購入APIをねじ込む理由があまりありません。

以上を踏まえて、iTunes on Windows Store について考えてみます。

現状のiTunes は、もちろんAppleが自前で組んだ販売システムと強く結びついているものです。デジタル コンテンツの購入は、Desktop・Mobile 共に AppleのiTunes の中からのみ行い、Webには出ていません。

実際の所、今のiTunes をそのままDesktop App Converter に通す等してAppX化した場合、一部の機能(*1) を除いて大体そのまま動いてしまうと思います。
しかし、上で説明したように、Apple自前の販売システムをWindows Store上のアプリで使用するのは規約 10.8.1 に照らすとどう見ても×、無理、ダメっすねという事になります。

*1 デバイス接続検知のSystem Service、またDriver等もあったのでは?と記憶しています。後でまた触れます。

ではどうするのか?幾つか選択肢が考えられます。
※ここから先は事実に基づかない私の想像です。


  1. AppleがMSのアプリ内購入APIを使ってiTunesを書き直す
  2. 販売のみWebブラウザを使う
  3. iTunes に合わせてWindows Store の規約を変える


1 は…技術的には可能ですが、3割MSに使用料収めるためのシステムをAppleが新たに書く理由を考えにくいです。

2 は…今のiTunesだと難しいのではないかと思います。上でも触れましたが、私の知る限り、購入は全てiTunes App内(のWebView?)でやらせており、Webには出していないです。Windows Store の為に新たにこの仕組みを作るというのも無さそうな話です。

3 …おそらくこれになるんじゃないかと想像しています。
「独自システムによるアプリ内販売禁止」は別に法律では無く、結局はMSが自分で決めたルールですので…MSがいいよ!と言えば済む話ではあります。

今回 iTunes 以外にもSpotify がWindows Storeに来る事が発表されています。
こちらについても上と全く同じ話が当てはまります。
実際の所、こういったデジタルアイテムの販売は今迄のDesktop App では当たり前に行われていた話です。今後はDesktop App も基本Windows Store を配布の中心に据えるつもりのようですし、実態に即した形で規約も変わっていかざるを得ないだろうと思います。

(2017年6月追記) SpotifyがWindows Store からダウンロードできるようになりました。
https://www.microsoft.com/store/apps/9NCBCSZSJRSB
サブスクリプション契約自体はAppから外部のWebブラウザを起動して行う形です(元々のDesktop Installer版と同じでした)


※ この件、MSDN Forum で質問を書いてみたのですが…「変わるだろうね」というふわっとしたお返事がありました。デスヨネ

Desktop Bridge app that selling digital items and Store Policy 10.8.1 - and iTunes
https://social.msdn.microsoft.com/Forums/windowsapps/en-US/de7de9e9-17ea-4694-817b-b7ca05097f77/



Desktop Bridge の仕組みから見る


上で少し触れたSystem Service・Driverの話です。
iTunes、確か デバイスの接続検知用システムサービスと、iPhone・iPod 用のドライバを同時にインストールしていた気がします(最後に使ったの数年前なので自信が無いです)。

しかし、iTunes が使うであろうDesktop Bridge ではSystem Service・Driverをインストールすることができません。

これもいくつか方法が考えられるのですが、
※ ここも完全に私の想像です。


  1. System Service・Driver をインストールするWin32 App をWebから別途ダウンロード・インストールさせる
  2. Desktop Bridge に「特別な権限」を新たに設ける
  3. System Service 又はDriver が要らない使い方の提案

1 は…現状…Windows 10 Home / Pro に対してはかなり便利な方法です。実際やっている方居そうです。ただし・・・・この手はWindows 10 S には使えません。Win10SでStore外から取得した Win32 App は動作しないからです。今回の話はWin10 S でiTunes が動く、という文脈なのでこれは無いでしょう。

2 …これが現実的なのではと考えます。
またルール変えるのかよ!と言われそうですが、実は今迄にも似た運用がありました。
例えばUWP App の場合、基本はかなりキツいSandbox…動作上の権限に制限が加えられているのですが、

  • 企業アカウントからアプリを出している
  • Microsoft と交渉してOKが出ている

等の条件(ものにより色々です)が合致すると、追加の権限をアプリに付与する事が可能な仕組みになっています。

アプリ機能の宣言 - 特殊な用途および制限された用途に関する機能
https://docs.microsoft.com/ja-jp/windows/uwp/packaging/app-capability-declarations

Desktop Bridge についても、種々の条件を満たし、MSから許可を得たベンダ・またはアプリについて追加の権限…System Serviceのインストールと実行を許す、という事が出来るかもしれません。

3 これもありそうですが。例えばドライバを使う操作はWin10 Sではサポートしない、iTunes が起動していない場合にデバイスを接続しても何も起こらないのは仕様である、等々。


考察


「iTunes を Windows Store に持ってくる」と宣言した時点で、色々な決まり・機能を変える必要があり、MSさんはそうするつもりなのだろうな、というのが私の感想です。
そして、これは基本的には技術的制限というよりはポリシーの話でもあります。

Build2017 の少し前、 ZDNetに「Windows 10 S にGoogle Chromeは来ないのでは」という記事が載りました。

Google Chrome won't be allowed on Windows 10 S
http://www.zdnet.com/article/google-chrome-wont-be-allowed-on-windows-10-s/

詳しいところは元記事をご参照頂きたいのですが、主な論旨は


  • Chromium 等、Edge 以外のEngine を使ったWeb Browser をDesktop Bridge でAppX 化したアプリの申請がMicrosoft によりRejectされている (*2)
  • Windows Store の規約がこの三月にVersion 7.3 に改定され、その中に「Webをブラウズする場合、Windows が用意するHTML及びJavascript エンジンを使う必要がある」という項目が追加された
  • MSのSpokespersonが5月9日にZDNet の問い合わせに答えて曰く「MS製以外のWebブラウザ使いたければWindows 10 Proをどうぞ」

*2 MSがUWP App 用に用意しているWebView Control はEdge ベースのEngineになります。これを使った「ブラウザアプリ」は特に問題無くストアに載っています。


実際、Twitter等でちらちら聞こえてくる話ではChromium のAppX 化は技術的には何の問題も無いようです。しかし、Webブラウザ に合わせて規約が改定されるという話にはならず、むしろ規約を元に「無いです」というのが現時点での結論になっているようです。つまり、iTunes とは真逆の話になってしまっています。これもまた、技術的制限というよりはポリシー、Windows Store 大家の意向という事になるでしょう。

Windows Store、最終的には大家の意向が通る私設商店街です。店子も大家の意向、動向に多少気を付けていないといけないのだろうなと思います。この辺りはGoogle Play、Apple AppStore あたりと共通の話かもしれません。