Android 用の最小 API バージョンを 21 にすることにしましたが、AppCompat を使用する意味がなくなったということですか? プレーンなマテリアル デザイン/AppCompat なしなどを使用するだけですか?
2 に答える
いいえ、常に AppCompat を使用する必要があります。これにより、アプリがすべての API レベルで既に一貫しており、すべての新しい API ( API 23 でのみ導入された色付きボタンの使用など) にアクセスできることが保証されます。
Design Support Libraryなど、他の多くのライブラリも AppCompat を使用する必要があります。
使用する必要がある 1 つのシナリオappcompat-v7
は、アクション バーが必要で、minSdkVersion
11 未満の場合です。現時点では、これに代わる一般的に使用および管理されているものはありませんappcompat-v7
。
それ以外の場合appcompat-v7
は、考慮する必要がありますが、必須ではなく、使用には明確なコストがかかります。
多くのウィジェットがサブクラスに置き換えられるため、脆弱性が増加します。あなたのレイアウトは を要求するかもしれませんが、
EditText
黙ってそれを拡張AppCompatActivity
する に置き換えます。理想的な世界では、これは問題になりません。ただし、デバイス メーカーには、標準のウィジェットの実装に手を加えてきた歴史があります。標準ウィジェットのサブクラスを作成すると、デバイス メーカーによって導入されたバグにつまずく可能性があります。私は具体的にこれに個人的に多く遭遇しました。AppCompatEditText
EditText
EditText
アプリのサイズが大きくなりました。
appcompat-v7
APK サイズに ~1MB 追加されます。Google が好んで指摘しているように、一部のユーザーは帯域幅を MB 単位で支払う必要があり (そのため、APK のダウンロードにはコストがかかります)、一部のデバイスはストレージをかなり節約するため、開発者は APK サイズを積極的に削減する必要があります。必須のマテリアル デザインの美学。Google は、独自の政治的理由から、すべてのアプリでマテリアル デザインを使用することを望んでいます。マテリアル デザインには支持者と批判者がいます。すべてのデザイナーがマテリアル デザインに従うわけではありません。
appcompat-v7
Google の仕様からの望ましい逸脱によっては、非マテリアル デザイン デザインの実装がより困難になる可能性があります。プリインストールされたアプリによる視覚的な二分法。Android 4.x デバイスのユーザーはこの
Holo
テーマに慣れており、Google 以外のプレインストール アプリの多くは にHolo
基づくテーマを持っています。たまたま Google のアプリを使用しているユーザーは、Material Design に触れており、今では慣れている可能性があります。そしてもちろん、Android 5.0+ は Android デバイス エコシステムの割合として増え続けています。ただし、マテリアル デザイン アプリは、Samsung、LG、SONY、HTC などの Android 4.x デバイスに搭載されるアプリと比べると、場違いに見えます。マテリアル デザインが、これらのデバイスのユーザーにとって違いに見合うほど優れているかどうかは不明です。
これらの問題のいずれかがショーストッパーですか? いいえ、使用したい場合はappcompat-v7
、すぐに行ってください。appcompat-v7
ただし、それは意識的かつ意図的に行うべき選択であることをご理解ください。