現在、家族アルバム みてねというアプリのAutoLayout対応を進めていて、弊チームでは以下の3つのルールを対応必須とすることにしてみました。
- 全てのStoryboard/Xibでuse AutoLayoutのチェックを有効にする
- 全てのStoryboard/Xibでuse SizeClassesのチェックを有効にする
- AutoLayoutのmisplacedは必ず解消した状態でコミットする
AutoLayoutはとにかく仕様が複雑で開発するのが大変なので、少しでも楽にしていくために最低限機械的にチェックできるところを自動化しました。
circle/review_view_files.sh
#!/bin/bash
! find . -name '*.xib' -o -name '*.storyboard' | xargs grep misplaced 2>&1 > /dev/null && \
! find . -name '*.xib' -o -name '*.storyboard' | xargs grep -L 'useAutolayout="YES"' 2>&1 > /dev/null && \
! find . -name '*.xib' -o -name '*.storyboard' | xargs grep -L 'useTraitCollections="YES"' 2>&1 > /dev/null
これをCircleCIなどCI上で実行するようにすると、1,2,3の条件をすべてパスしなかった時にfailするようになります。
以下設定例です。
circle.yml
machine:
xcode:
version: "7.0"
test:
pre:
- circle/review_view_files.sh