こんにちは。株式会社Pentagonの山本です。
今回、ダークモードについて解説する機会があったので、記事にまとめてみました。
【この記事を読むメリット】
この記事を読むとダークモードの回避方法・対応方法・対応の必要性がわかります。
目次
そもそもダークモードって対応する必要あるの?
Go Andoさんのアンケートによれば、68.8%がダークモードを利用しているようです。新規でアプリを開発する場合、ダークモード対応よりも優先すべきことが多いです。したがって、アプリが保守・運用の段階に入って余裕があれば対応するのが良いと考えております。 まずは、ダークモードに対応する余裕がない方のために、ダークモードを回避する方法をご紹介します。みんなスマホでダークモード使ってる?
— Go Ando / THE GUILD (@goando) October 29, 2019
ダークモード対応の回避方法
アプリ全体を常にライトモードにするには、Info.plist
のUIUserInterfaceStyle
パラメータをLight
にします。これでアプリは、ダークモードに対応しないことになり、ダークモードの対応を回避できます。
次に、ダークモードの対応方法を見ていきましょう。
ダークモードの対応方法
サポートするOSによって対応方法が変わってきます。iOS11以降をサポートする場合
Asset Catalogで色を管理している場合は、Dark Appearanceを設定することができ、コードをほとんど書くことなくダークモードに対応できそうです。

iOS10をサポートする場合
コードでダークモードが否かを判定して、色を切り替える処理を書く必要があります。 ちなみに【随時更新】iOS バージョン別シェアを発表。日本国内のシェア・全体の推移は?によれば、2020年6月時点で、iOS10は全体の2%未満となっているので、サポートしなくても良いかもしれません。iPhoneのダークモード設定
実機の場合

シミュレーターの場合

Macのダークモード設定

Xib/Storyboardでダークモードを確認する

まとめ
ダークモードの対応は、以下の対応が必要になってきます。- ダークモード用の色の選定
- 色の切り替え
- 動作確認