iOSエンジニアのすーです!
あちらこちらでWWDC2016ネタで盛り上がっている中、それとは関係のない記事を投稿させて頂きます...!
現在弊社のFammでは、もともとObjective-C Onlyで書かれたプロジェクトでしたが、
新規機能は基本的にSwiftで書くようにして、少しずつ既存のコードをSwift化することで、Swiftがプロジェクト全体の約45%を占めるようになりました。
そこで浮上してきた問題が、 ビルド時間 です。。
差分ビルドが有効とはいえ、開発中のブランチを行ったり来たりしたり、ちょっとObjective-C側のコードを書き換えたりしてタイミングが悪いと差分ビルドが働かずまた一からSwiftのソースコードをコンパイルしてってなって...。
まだ、自分の使っているマシンの性能が良い方なので、そこまで気にはならないのですが、これがCI環境となるともっと悩ましいことになります。
(弊社ではBitrise CIを使っていますが、若干他のCIと比べて遅いような...。)
約2ヶ月前、Swiftの割合がまだ2割に満たない頃は、CI環境でUnitTest+Deployで20分弱で済んでいたのが、最近では30分かかるようになってしまい、 これではまずい と思いました。
そこで色々策を講じ、最終的にCI環境でデプロイまでにかかる時間を最終的に約半分削減することができたので、その手法を紹介します。
(※ : 主にプロジェクト側の設定に関するものなので、この記事ではCI上のチューニングに関しては触れていません。)