リモートiOS開発成功の処方箋、早期のCI導入

どうも、ギルドワークス 前川です。京都からリモート作業を行っていますが、この二週間は、祇園祭でとんでもない人出となっております。

リモートでの開発に必要なもの

ギルドワークスでは、Webサービスだけでなく、iOSやAndroidの開発もリモートで行ってきています。その中で、最近一つのパターンとなっているのが「可能な限り初期に継続的ビルド(CI)を導入する」ことです。

もちろんCIは手段でしかありません。その目的は、「全員が同じものを見て確認する」ためです。対象がWebサービスならば、例えばHerokuにデプロイされたものを正として扱ってやれば、事は済みます。

しかしiOS開発では、そうはいきません。全員が「同じもの」を見ることが非常に重要ですが、それにはCIされた成果物を共通の場所においておき、それを参照する、これしかありません。

ここは結構厳格にやらなければいけない、と私は思ってます。例えばレビュー指摘をしても「ここは自分の環境では動いてますんで」などと言われると、そこで会話が止まってしまい、フィードバックが割と根本から絶たれてしまうのです。

「masterにpushされたものが唯一にして絶対の正」これを守るのは、簡単で、そしてもとても即効性のある、リモートiOS開発改善の処方箋なのです。

ギルドワークスが利用しているサービス:Circle CI

iOSのビルドはまだまだローカルJenkinsが主流だとは思いますが、リモートワークを掲げる当社としては、やはりCIを行ってくれるWebサービスを使用したいところです。

というわけで、ギルドワークスが利用しているサービスがCircle CIとなります。

Circle CIは”Experimental Setting(実験的な設定)”ながらもiOSのビルドを行うことができます。しかも、ビルド速度に制限はかかってしまうものの、Private レポジトリを含めて無料 でCIサービスを利用できます。

詳しい設定は、以下の公式ドキュメント(英語)をご覧ください。

iOSビルドの便利ツール、Schenzen

CircleCIでは、基本的にコマンドラインでビルドを実行していきます。

一応Xcodeにもxcodebuildというビルドツールが付属しているのですが、設定項目が結構多く、なかなか使いこなすのは大変です。また、iOSのファイル配布型式であるIPAファイルを作るのには、別のコマンドを色々叩く必要があり、大変です。

そんな時便利なのが、schenzenというコマンドラインツールです。

このツールを使えば、環境変数さえ適切に設定していれば、以下のように非常にシンプルなスクリプトで、ipaのビルドから、DeployGateなどのベータ配布サービスへの配信までやってくれます。

ipa build
ipa distribute

これらのサービスを活用して、ギルドワークスでは、以下の様なデプロイメントパイプラインを、手軽に組むことができています。

スクリーンショット 2015-07-14 18.45.01

これからのCIのトレンド

こういったギルドワークスでの取り組みを踏まえて、先日大阪の「CI勉強会」という勉強会で発表をしてきました。

タイトルは、「ポストJenkins時代のビルド戦略」

Jenkins一択時代から、色々なサービスを組み合わせる時代へ。今、結構大きな転換点が来ていると思っています。新しいツールやサービスとしっかり向き合って、自分たちの組織に最適な解を導きたいですよね。

もし、このようなCI周りの技術的悩みがおありなら、ギルドワークスにお気軽にお問い合わせください!

リモートiOS開発成功の処方箋、早期のCI導入」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中