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 あたりと共通の話かもしれません。






0 件のコメント:

コメントを投稿