play_store.png

もう既にお気づきの方も多いかと思いますが、
米Googleが3月6日(現地時間)にGoogle Playを発表しました。

同時にAndroid端末内のマーケットアプリやWeb版のAndroidマーケットも更新されており、
アプリに関しては数日以内に「Play ストア」アプリに自動アップグレードされます。
(Android OS 2.2以上の端末のみ)

特にマーケットアプリは普段見慣れたアイコンから大きく変更されているため、
はじめて見たときは戸惑うかもしれません。
(個人的には前のアイコンの方が好きですが…)

そのGoogle Playとは何なのかというと、
今まで個別のサービスとなっていた「Android Market」,
「Goog Music」,「eBookstore」が一つの「Google Play」というブランドに統合されたものです。

つまり、今までAndroidマーケットというとアプリがメインで映画や電子書籍(日本未対応)が目立たない上、
名前からしてAndroid端末からしか使えない印象を持たれてしまっていた(実際にはPCブラウザからも利用可能)
ので、ブランド名を一新してAndroid以外からでも利用できることをアピールしていくことが目的とされています。

ところで、
業務でAndroidアプリを開発している方は今回の急な発表に「納期前にいきなり変更とか何してくれたんだよ(゚Д゚)ゴルァ!!」
と思われたかたも多いのではないでしょうか?
また、既存のアプリが動かなくなるのでは??…と不安に思われている
方も多いと思いますので簡単に調査した結果をまとめてみます。

[疑問1]

自分のアプリ内からURIを指定してマーケットアプリを起動するようにしているんだけど、
これって動かなくなるの?
例:market://details?id=[パッケージ名]

[答え1]

問題なく動きます。

ただし、アプリ内で旧マーケットのアイコン等を静的に指定している場合や、
「Androidマーケット」っといった文言を使用している場合は、新しいアイコンや名称に変更した方が良いでしょう。
Google Playブランドに関するアイコンのダウンロードや使用方法は以下の公式サイトで確認することが可能です。
http://www.android.com/developers/branding.html

もう少し詳しくPlayストアアプリを調べてみます。
以下は旧マーケットアプリのintent-filterの定義を抜粋したものです。


<intent-filter>
<action name="android.intent.action.VIEW"></action>
<action name="android.nfc.action.NDEF_DISCOVERED"></action>
<category name="android.intent.category.DEFAULT"></category>
<category name="android.intent.category.BROWSABLE"></category>
<data scheme="market" host="details" path=""></data>
<data scheme="market" host="search" path=""></data>
<data scheme="http" host="market.android.com" path=""></data>
<data scheme="http" host="market.android.com" path="/"></data>
<data scheme="http" host="market.android.com" pathPrefix="/details"></data>
<data scheme="http" host="market.android.com" pathPrefix="/apps"></data>
<data scheme="http" host="market.android.com" pathPrefix="/search"></data>
<data scheme="http" host="market.android.com" pathPrefix="/developer"></data>
<data scheme="https" host="market.android.com" path=""></data>
<data scheme="https" host="market.android.com" path="/"></data>
<data scheme="https" host="market.android.com" pathPrefix="/details"></data>
<data scheme="https" host="market.android.com" pathPrefix="/apps"></data>
<data scheme="https" host="market.android.com" pathPrefix="/search"></data>
<data scheme="https" host="market.android.com" pathPrefix="/developer"></data>
</intent-filter>

次にPlayストアアプリのintent-filterの定義を抜粋したものです。


<intent-filter>
<action name="android.intent.action.VIEW"></action>
<action name="android.nfc.action.NDEF_DISCOVERED"></action>
<category name="android.intent.category.DEFAULT"></category>
<category name="android.intent.category.BROWSABLE"></category>
<data scheme="market" host="details" path=""></data>
<data scheme="market" host="search" path=""></data>
<data scheme="http" host="market.android.com" path=""></data>
<data scheme="http" host="market.android.com" pathPrefix="/"></data>
<data scheme="https" host="market.android.com" path=""></data>
<data scheme="https" host="market.android.com" pathPrefix="/"></data>
</intent-filter>
<intent-filter>
<action name="android.nfc.action.NDEF_DISCOVERED"></action>
<action name="android.intent.action.VIEW"></action>
<category name="android.intent.category.DEFAULT"></category>
<category name="android.intent.category.BROWSABLE"></category>
<data scheme="http" host="play.google.com" pathPrefix="/store"></data>
<data scheme="https" host="play.google.com" pathPrefix="/store"></data>
</intent-filter>

このintent-filterが定義されているActivityは

  • 旧アプリ:com.google.android.finsky.activities.AppsUrlHandlerActivity
  • Playストアアプリ:com.google.android.finsky.activities.MainActivity

となっており、受け取る側のActivityは異なるもののPlayストアアプリのintent-filterでも
今までと同様にURIがフィルタされることがわかります。

逆にGoogle Playになったからといって、以下のようなURIを指定してもPlayストアアプリは反応しないので注意が必要です。

  • × play://details?id=[パッケージ名]
  • × store://details?id=[パッケージ名]

[疑問2]

今までのWeb版アンドロイドマーケットのURLはもう使えないの??

例:https://market.android.com/

[答え2]

使えます。
旧マーケットのURL「https://market.android.com/」にアクセスすると、
Google Playストアの新しいURL「https://play.google.com/store」に転送されます。
但し、この処置がいつまで継続されるかはわからないため今後は新しいURLで記載するのが良いでしょう。

また、特定のアプリのダウンロードページを表示するには以下のフォーマットでURLを指定します。
https://play.google.com/store/apps/details?id=[パッケージ名]

まとめ

今回のGoogle Playへの変更を軽く調査してみた限り、
Playストアアプリの呼び出しやWebページURLなど、
開発者にとってはそれほど大きな変更はないと言えるのではないでしょうか。
(一部アイコンなどの修正が必要になるかもしれませんが…。)
逆に一番戸惑っているのは、アプリアイコンがいきなり変更された一般ユーザかもしれません。
今後はもう少しソフトランディングをして欲しいものです…Google先生。

おまけ

今回の調査ではManifestファイルに記載されているintent-filterの変更を調査するさいに、
弊社で開発した「tPackageExplorer」を使用しました。このアプリを使用するとManifestファイルの他、
アプリが使用しているリソースなどを手軽に確認することができます。
ご興味を持たれた方は是非ダウンロードしてみてください。


Android app on Google Play

ブログ内の関連する記事