本日PixelシリーズにAndroid10の正式版がリリースされました。
目玉機能の1つがダークテーマ(ダークモードはiOSのほう)ですよね。
アプリがダークテーマに対応するにはきちんと対応する方法と、Androidの方でそれっぽくダークにしてくれる方法の2つがあります。
後者の強制ダークモードですが、Googleの謎技術でかなりいい感じにダークになります。
設定方法
アプリ
targetSdkVersionを29にするだけです。以上。ダークテーマ用リソースを用意する必要も追加のコード改修も必要ありません。
スマホ
Pixel3aでは以下の方法で有効にできます。
設定->システム->開発者向けオプション->フォースダークのオーバーライドをON
これでAPI Level29でビルドされたアプリはダークテーマで表示されます。
結果
弊社のプロダクトであるCASTというアプリで試してみました。
びっくりしたのが、イントロの画面にLottieというアニメーションライブラリを利用しているのですが、そのアニメーションに使っているロゴタイトルがダークテーマの時に白黒反転しています。でも上のアイコンは色味が変わっていないように見えます。もちろんダーク用リソースなぞ用意していません。Androidがよしなにダークにしてくれています。
ステータスバーは流石に対応していないようです。
もともと白いテキストは白のまま、黒いテキストは白っぽくなり、黒いアイコンは白に変換してくれているようです。アクセントカラーに青を採用していますが、アクセントカラーは変わらないようです。
強制ダークモードを外すには
この強制ダークモードですらダークにしたくないという場合はThemeから無効にできるようです。
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
<item name="android:forceDarkAllowed">false</item>
</style>
ダークテーマ | Android Developers
https://developer.android.com/preview/features/darktheme
とはいえ開発者向けのオプションを有効にしないといけないので使う人は少なそうです。後でちゃんとダークテーマに対応しましょう。