Tech Blog

グローバルな家族アプリFammを運営するTimers inc (タイマーズ) の公式Tech Blogです。弊社のエンジニアリングを支える記事を随時公開。エンジニア絶賛採用中!→ https://timers-inc.com/engineering

Swiftのビルド時間を減らしてCI環境でのデプロイも早くしたお話

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上のチューニングに関しては触れていません。)

続きを読む

Timersでは各職種を積極採用中!

急成長スタートアップで、最高のものづくりをしよう。

募集の詳細をみる