こんにちは。
デバイスソリューション部の鈴木です。
この記事は「NEXTSCAPE Advent Calendar 2022」の15日目です。
去年はUI自動テストツールである Magic Pod をご紹介しましたが、今年は CI/CD 環境を手軽にクラウド上で構築する、Bitrise についてご紹介します。
Bitrise とは
Bitrise とは、スマホアプリ向けの CI/CD 環境をクラウド上で構築できるサービスです。ネイティブアプリはもちろん、Flutter など様々なフレームワークに対応しています。また、各タスクをコードを GUI 上で構築できるため、普段あまりコードに触れていない方でも気軽に構築することができるのが大きな特徴です。
CI/CD について
ざっくり言うと「アプリの単体テストやリリースを自動的にやる」考え方です。とても分かりやすいサイトがあったので、ご参考ください。CI/CDとは | ニフクラ
何でうれしいの?
プロジェクトに関わる皆の悩みを解消できるからです。
エンジニア以外の皆様ですと「なんか動くベータアプリが提供されるのが遅いんだけど」や「エンジニアにアプリの作成頼むと、いつも嫌な顔しやがる・・・」という経験は一度はあるかと思います。エンジニアとしては大変申し訳ないなぁと思っているところはありますが、エンジニア側は「開発業務中にそういう業務で中断されると品質落ちる!」が本音です。動くアプリを手作業で作成するのって、意外とめんどくさいのです。それぞれのプロジェクトで色々設定をしたり、何か特別な手順を踏まないといけなかったり・・・。これが Bitrise を導入した場合、Web ページのボタン一つ押しただけで、誰でも動くアプリを作成することができるようになります!
15分で構築できる Bitrise の使い方
別途ビルド用のスクリプトなどを挿入しなければ、Bitrise が最初からいい感じのジョブを作成してくれるので、慣れると大体15分で完成してしまいます。
1. 構築ボタンを押す
2. リポジトリや SSH などの各種情報を埋める
3. 証明書や keyStore をアップロードする
4. 構築直後から最小限ですが十分なジョブがあるので、これをベースにジョブを追加して完成
その他、手を加えれば「apk の URL を QRコード化して Slack の特定のチャンネルに通知する」ような複雑なことも実現可能です。
Q&A
実際にアプリチームはどれぐらい使ってるの?
ほぼ全てのプロダクトで利用しています。おかげでデイリービルドも自動化でき、逐次最新アプリをチームの負担なく関係者に渡すことができています。
やってみたいんだけど、無料で試せる?
お試しプランもあるので、今日からでも試せます。料金表
エンジニアにはメリット感じないんだけど?
難しい機能の設計や実装をしているときに、他の人から「すみませんー!〇〇さーん!ビルドよろです!」と割り込みタスクをぶちこまれて、15分ほど開発端末を利用できなくされた後、定時まで生産性が落ちるリスクを減らせます。
非エンジニアにはメリット感じないんだけど?
エンジニアに「〇〇さん、午後にクライアントのところに行くから最新版のバイナリ用意しといてください」とお願いしなくても、自分で動作するアプリを用意できます。「別にエンジニアに頼むの苦じゃないよ」という方は、上記文章を読み直してください。
Jenkins とかと何が違うの?
スマホアプリに特化しているため、各種証明書の管理が楽です。Provisioning Profile を通常のファイルと同じように管理することの面倒臭さが消えるのはありがたいです。
Flutter は対応しているの?
もちろん対応しています。というより、Flutter に対応しているので、チームで Bitrise を採用しました。なんと、Bitrise では最初のセットアップ段階で「このプロジェクト、Flutter 製ですね?」と提案されます。
外部にソースコードとか渡すの怖いんだけど
ビルドの度に毎回仮想マシンを構築〜破棄するなど、いくつものセキュリティを担保するための仕組みが用意されています。コードセキュリティ - Bitrise Docs
その他、大手企業が採用している実績も多々あります。
Bitrise - モバイルアプリのための継続的インテグレーションとデリバリー。
まとめ
トータルで色々楽になるので、何かしら CI/CD環境は用意しましょう!その中でスマホアプリ開発をするのであれば、それに特化した Bitrise はおすすめです!