Swiftのコンパイルが遅い

Swiftのコンパイルが遅い

こんにちは。エンジニアのtakanoです。

弊社ではiOSアプリ開発の新規プロジェクトにはSwiftを使用することになっています。
今後新規プロジェクトをObjective-Cで開発すると処刑されると言われています。(笑
しかしSwift以前のプロジェクトもあり、
Objective-Cでの開発も行っているため知識は必要です。
事情がありObjective-Cで書かないといけないこともあるので、
まだまだ使うことになるでしょう。

Swiftに移行して1年以上が経ちました。
Objective-Cに比べてずいぶん快適にコードを書いています。
が、最近悩んでいる事があります。
それはコンパイルが非常に遅いということです。
アプリの規模が小さい時はあまり感じませんが、
開発が進むにつれてビルドに時間がかかり作業効率が落ちてきます。
困ってしまったので解決策を調べました。

以下は調査した中から有効であると思われるものを
ピックアップした解決方法です。

型推論を使わない

型推論の使用をやめるとコンパイル速度が改善されるとのこと。
Swiftのメリットである型推論を使用しないというのはかなり抵抗がありますが、
試してみる価値はあります。

ソースコードを.Frameworkに分離

試しにコンパイルに時間がかかっているライブラリを
.Framework化してビルドしてみたところ数秒ですが改善しました。
もうこれ以上は手を加えないだろうというソースコードは
.Framorkで分離してみようと思います。

swiftファイルを1つにまとめる

開発が進むと.swiftが増えます。
.swift多くなればその分コンパイルに時間がかかります。
swiftのソースコードを1つにまとめると速度が改善するという話もあります。
1ファイルのソースコードが長くなるのはできれば避けたいですが、
こちらも試してみようと思います。

Macのスペックを上げる

最も有効な方法かもしれないです。
最新のMacBook Pro!
思い切ってMac Pro!

処刑覚悟でObjective-Cに移行する

処刑は嫌なのでしません。

いつの日かコンパイル速度が改善してくれることを願っています。
切実な願い。

TAG

  • このエントリーをはてなブックマークに追加
takano
takano takano

素晴らしいアプリを開発して世の中をもっとハッピーにしたい! ビール大好き!卓球大好き!音楽大好き! 最近は子供とおかあさんといっしょを見てるせいで「ブンバボーン」の脳内再生が止まりません。