こんにちは、ゆーたすです。

今回は楽団で運用している開発環境について紹介したいと思います。
技術者の皆様にとってはよくあるありふれた環境かもしれませんが^^;
めずもなCTO主導のもと、日々の開発に役立つ環境が日々構築されています。

継続的インテグレーションの取り組み

アプリの開発にとって重要なことは、やはりバグなく動作することだと思います。
バグのないアプリを作るため、継続的インテグレーション(CI / Continuous Integration)という手法が用いられます。
開発中のアプリを短いスパンでビルドとテストを繰り返し、問題を早期発見していく手法です。
これを実施するために、いくつかのツールを利用しています。

Jenkins

jenkins

 

https://jenkins.io/

Jenkinsは、CIツールの代表格として有名です。
開発中のプログラムに新しい機能が実装されたときや、決まった時間に自動的にアプリを生成し
常に最新の状態のアプリを作り出してくれるものです。
生成されたアプリは、「DeployGate」(説明は後述します)へアップロードします。

DeployGate

deploygate

https://deploygate.com/

Jenkinsで生成された最新のアプリは、DeployGateへアップロードされます。
この仕組みにより、エンジニアさんに毎回アプリを作ってもらわなくても
テスターさんは常に最新のアプリをテストできるため、新しいバグの発見や改修確認が容易になります。
譜面師さん達にも、DeployGateを用いて開発環境にアクセスできるアプリをインストールしていただいています。

DeployGateはアプリの配布だけでなくデバッグにも役立ちます。
アプリにDeployGateのモジュールを組み込むと
エラーが発生したときに自動で原因を送信してくれるため、問題箇所の発見に役立ちます。

多端末検証の取り組み

アプリ開発で大変なのが、より多くの種類の端末で正常に動作するものを作ることです。
特にAndroidはメーカーごとの端末差が大きく、特定機種でのみ発生するバグも少なくありません。
多端末でのアプリの動作確認を容易にするために、楽団では「OpenSTF」を利用しています。

OpenSTF

http://openstf.io/

OpenSTFは株式会社サイバーエージェントが提供しているオープンソースのプロジェクトです。
大きな特徴は、サーバに接続しているAndroid端末をリモート操作することができることです。
検証したい端末を机の上に並べなくても、ブラウザ上で簡単に端末を操作できます。

TOP画面で使いたい端末を選択して…

 

stf_top

ブラウザからAndroid画面をリモート操作!
アプリのインストールや、リモートデバッグも簡単!

 

stf_detail

OpenSTFで選択できる端末は、このようにサーバであるMacBookAirに接続されています。
このMacはJenkinsのサーバとしても稼働しています。

stf_device

今回は楽団のブログとしてははじめて、技術的なアプローチのブログにしてみましたが
いかがでしたでしょうか。今後も役に立ちそうなノウハウなどあれば
積極的に共有していきたいと思いますので、よろしくお願いいたします。