今日は1つのイノベーションと、それがもたらした問題についてお話しします-Google Playコンソールの「最適化のヒント」。

良いことです-アプリケーションを分析し、最適化のヒントを提供します。 たとえば、古いプロジェクトの場合、アプリケーションの翻訳に適した言語が表示されます。これらの国から多数のダウンロードがあるためです。
少しの背景:
当社には、アプリケーションをリリースする顧客が1人います。 基本的にはすべて同じタイプです-カラースキームとデータのみが異なります。 アプリケーションの設計は長い間開発されており、誰にでも適しています。 アプリケーションは常に携帯電話とタブレットの両方で機能します-インターフェイスはフラグメントに基づいて構築されます。 唯一のものは、彼らがアクションバーを導入し始めなかったことです-まあ、彼はそこにそれを必要としませんでした-メニューは古いスタイルで使用されていました。
Android:targetSdkVersion =“ 10”がマニフェストに登録され、すべてのデバイスが物理メニューボタンを使用したか、デバイスにない場合はAndroidボタンバーに表示されました。
それで、私は何をしていますか-会議の数日後、顧客は新しいアプリケーションを投稿するように私に頼みました。それまでにすでに開発され、テストされていました。 すぐに言ってやった。 公開プロセスは以前のものとほとんど変わりませんでした-唯一のことは、インターフェースで分割されたため、電話とタブレットのスクリーンショットを別々に撮ったことです。 アプリケーションをアップロードし、PHONEのGoogle Playに表示されることを確認し、明確な良心を持って帰宅しました。 トラブルの前兆はありません...
翌朝、職場に到着したテスターは、アプリケーションは電話でしか見つからないが、市場のタブレットでは見つからないと報告しました。 私は問題が何であるかを確認し始めました。 サポートされているデバイスのリストには、使用可能なすべてのタブレットが含まれていました。 そして、記事の最初からスクリーンショットを見ました。
ええ、私は思って、すぐにAndroidでアプリケーションを再構築してレイアウトしました:targetSdkVersion = "11"。
ええ、グーグルは考えました、そしてグーグルプレイでは、タブレット用に利用可能なアプリケーションの第2バージョンが登場しました...メニューボタンなしで!
以前に読んだことがあるので、間違っていたことを探し始めました。アクションバーを使用しない場合はボタンがあるはずです。 記事からの抜粋です。
- minSdkVersionまたはtargetSdkVersionのいずれかを11以上に設定すると、システムはレガシーオーバーフローボタンを追加しません。
- それ以外の場合、Android 3.0以降で実行している場合、システムはレガシーオーバーフローボタンを追加します。
- 唯一の例外は、minSdkVersionを10以下に設定し、targetSdkVersionを11、12、または13に設定し、ActionBarを使用しない場合、Android 4.0を搭載したハンドセットでアプリを実行するときにシステムがレガシーオーバーフローボタンを追加することですより高い。
3番目のポイントは私たちにとってちょうどいいように思えますが、ニュアンスがあります-それは電話についてだけ言っています! そして確かに、電話にはメニューボタンが現れました。
まあ、何もすることができません。問題に対して考えられる2つの解決策を顧客に知らせるだけでした。
- アクションバーを追加
- メニューをクリックしてインターフェイスにボタンを追加します。
さて、非動作バージョンがグーグルプレイにないように、私はそれをロールバックすることにしました。 しかし、その後、アプリケーションで小さなバグを発見し、それを修正してアセンブリに含めることにしました。 targetSdkVersionを10ずつロールバックし、3番目のバージョンを投稿しました(もう一度、タブレット用にアプリケーションを適応させることについてのアドバイスがありました)...
しばらくしてタブレットを更新したかったときの驚きを想像してみてください! メニューボタンがある3番目のバージョンに更新しました。 おそらく、おそらくGoogle Playの小さなバグです。デバイス上に既にバージョンがあったので、更新されました。 しかし、「きれいな」タブレットをチェックした後、私もそれを見つけてインストールしました!
これは、googleがフィルタリングを新しく作成したアプリケーションにのみ拡張し、このタイプのデバイス(2番目のアセンブルバージョン)で既に利用可能だった場合、その制限がなくなるためだと思います。 この結論は、古いアプリケーションではtargetSdkVersionに関する警告が表示されるが、タブレットの検索には存在するという事実から導き出すことができます。タブレットがこの機能を閉じた場合、古いアプリケーションの開発者から多くの怒りがあります。
この経験が役に立つことで、この問題に直面している開発者の時間を節約できることを願っています。 実際、これはさらに良いことです-より多くの開発者が、アプリケーションの外観をプラットフォームが推奨するスタイルにすることを考え始めるでしょう。