XCUITestでDynamicTypeを変更する
Dynamic Typeに対応したアプリで、デザイナーに拡大時の表示が問題ないかを確認する際FastlaneのSnapshot機能を使って文字サイズが大きい時もSnapshotで撮影できたらいいなと思い調べてみました。
UItestの対応
setUp内でXCUIApplication()に対して値を設定することでUITestを走らせた際に設定したDynamicTypeの値でテストを行うことができます。
以下のコードのようにlaunchArgumentsに対して追加を行います。
app.launchArguments += ["-UIPreferredContentSizeCategoryName", " UITestで使いたい文字の大きさ"]
最大の文字にする例
override func setUp() {
let app = XCUIApplication()
// Dynamic type setting
app.launchArguments += ["-UIPreferredContentSizeCategoryName", "UICTContentSizeCategoryAccessibilityXXXL"]
app.launch()
}
設定可能な値
・ UICTContentSizeCategoryXS
・ UICTContentSizeCategoryS
・ UICTContentSizeCategoryM
・ UICTContentSizeCategoryL
・ UICTContentSizeCategoryXL
・ UICTContentSizeCategoryXXL
・ UICTContentSizeCategoryXXXL
・ UICTContentSizeCategoryAccessibilityM
・ UICTContentSizeCategoryAccessibilityL
・ UICTContentSizeCategoryAccessibilityXL
・ UICTContentSizeCategoryAccessibilityXXL
・ UICTContentSizeCategoryAccessibilityXXXL
通常起動時のDynamicTypeの変更
アプリケーション通常起動時、実機でもシミュレーターでも設定から毎回DynamicTypeの値を変更するのは大変です。
XcodeのDevelopper ToolにAccesibility Inspectorという機能が搭載されているのでそれを使うと便利です。
アプリを閉じることなくつまみを動かすことでリアルタイムにDynamic Typeの値が変更されて文字サイズが変わります。