StoryBoardを使わないことにした理由

iOSアプリ開発において、StoryBoardを使う派ですか?使わない派ですか?

いろいろ試してみた結果、とあるプロジェクトでStoryBoardを使わないことにしました。
その理由を書きます。


1. コードとStoryBoardの関係がわかりにくい

StoryBoardを使うといっても普通はコードを書かないわけにはいかないので、StoryBoardを使う=StoryBoardを使うしコードも書く、ということになります。
つまり、StoryBoardとコードの両方を理解して初めて全体を把握できるということです。
StoryBoardでこれを定義すると、コードでいうところのどの処理までできるのか、ということがなかなか直感的にはわからなくて、StoryBoardとコードの間を脳内で埋める作業?が私には面倒でした。
これは、最終的にコードで理解したいかどうか次第で、人によって受け方が違ってくると思います。
私は、変更内容はDiffで明確にならないと気持ち悪い派なのです。

2. ちょっと複雑な構成になるとStoryBoardの難易度が高い

StoryBoardはとても簡単に画面や遷移を定義できますが、ちょっと複雑な構成になってくると、その難易度が高くなる印象がありました。
簡単なプロトタイプなどの作成ではStoryBoardのほうが速いのですが、複雑になるとStoryBoardでどう定義すればよいのか調べるのに結構時間がかかりました。
単にStoryBoardを高度に使いこなせていないだけかもしれませんが。。

3. まれにStoryBoard上の見た目とビルドしたアプリで差異が出ることがある

UITableCell絡みで、ビルドするとズレて表示されてしまうことがありました。
StoryBoard上で同じ場所に再定義(移動して同じ場所に戻す)するとズレが解消するのですが、開発を進めているとまたいつの間にかズレでしまうという。。
私の使い方が悪いのかわかりませんが、こういうのがまた気持ち悪さにつながってしまうんですよね。。

4. コードに慣れてくるとStoryBoardのありがたさが半減する

コード(Swift)に慣れてくると、StoryBoardとさほど変わらない速さで(というと大げさですが)開発を進めることができるようになったので、少なくとも速さの面ではありがたみが薄れました。



とはいえ、一方でStoryBoardの良さも実感できました。例えば、コードが少なくてスッキリ、画面遷移が見たままでわかる、分業しやすい、新規メンバーの理解の助けになる、など。適材適所に使い分ける必要がありそうですね。