いまだ、fastlaneおじさんになろう


アプリ開発のオートメーションツールであるfastlane。しばらく使ってみて、ありがたみを感じる機会が増えてきた。同時に、なぜか周りにはあまり浸透していないので、改めて良さを伝えたいと思う。

一言で言うと: 今後iOSアプリ開発のCI/CD環境は、Jenkins以外の選択肢が増えてくるから、色々な環境で共通で使えそうなfastlaneに慣れておくと良いよ

fastlaneを使うと、アプリのテスト・ビルド・サブミットが多少楽になる。単にテストとサブミットの自動化なら、Jenkinsのプラグインを使っても実現可能だが、fastlaneを使うといくつかメリットがある。

まず第一に、設定がやりやすいこと。iOS/macOSアプリのCI/CDは、プロビジョニングやSDKの設定などが絡んでくるため、何かと設定が大変だ。残念ながらfastlaneを使っても、これらの設定と完全に無縁になれるわけではないが、fastlaneにはこれらの設定をサポートしてくれる機能が備わっている。

Jenkinsのプラグインを使ったCI/CDのフローは、基本的には設定したJenkinsマシン上でしか利用できない。一方で、fastlaneはローカルマシン・Jenkinsマシンのどちらでも動かすことができるので、ローカルマシン上で設定・調整したフローをJenkinsマシン上で利用することができる。やってみるとわかるが、これは設定のストレスを多少軽減してくれる。

何らかの理由で、CI/CDが動かなくなってしまった際にも、ローカルマシン上で原因の調査ができるのは、とてもありがたい。また、Jenkinsマシンを増設・変更する際も簡単に設定ファイルを再利用できてとても効率的だ。そして、万が一Jenkinsマシンが使えなくなってしまった時でも、ローカルで同じ処理を走らせることができる。そんな感じに、fastlaneはJenkins上で素直にプラグインを使ってCI/CDのフローを作って長い期間運用していると感じる色々な不便な点を解決してくれる。

次に、クラウドCI/CDサービスとの相性が良いこと。数年前まではiOSアプリのCI/CDといえば、自前でMac上にJenkinsを立てるのが当たり前だったが、最近はiOSアプリ開発に対応したCI/CDサービスが登場している。

個人的なオススメはBitriseなのだが、Bitriseではfastlaneの設定ファイルを使ってテストやサブミットを走らせることができる。もちろん、プロビジョニングのアップロードやサブミット用のパスワードの設定など、若干の追加の設定は必要ではあるが。

処理速度の問題や、諸々の制限、セキュリティー的な懸念などがないわけではないが、アプリ開発に使えるCI/CDサービスは本当に便利だ。自前でJenkinsマシンを用意するよりも、圧倒的に手軽で快適に利用できる。

数年前、iOSアプリ開発の自動化といえばJenkinsだった。Jenkins上にiOSアプリのCI/CD環境を構築し維持するのはなかなか手間のかかる作業で、結果色々な会社に「Jenkinsおじさん」という存在が生まれた。iOSアプリ開発におけるCI/CDのありがたさは最早説くまでもないと思うが、それ故Jenkinsおじさんは多少重宝されてきたのではないかと思う。

しかしこの数年で状況は変わり、今後はクラウドのCI/CDサービスを使う場面がどんどん増えてくるはずだ。それに合わせて、様々な環境で共通で使えるfastlaneの利用場面もどんどん増えてくると思う。

なぜか周りではfastlaneを使っている人が少ないのだが、今後に向けてどんどん使い込んで、今のうちにfastlaneおじさん(あるいはfastlaneおばさん)になっていけばいいと思う。

fastlane

機会があれば、fastlaneの内部的な構造についても、今後掘り下げて触れていこうと思う。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です