約6分で読めます
CI/CD
Bitriseを活用したiOSアプリ開発の効率化
要約を読む
CI/CDの処理時間が長くて、1回のビルドで16分以上かかっていたことが課題でした。 そこで、Bitriseに移行してビルド・テスト・デプロイを自動化し、M1環境で安定したビルドを実現しました。 その結果、平均処理時間が8分に短縮され、コストはGitHub Actionsと比べて約3割削減できました。 Bitriseは、iOS開発に特化した自動化ツールで、M1環境でのビルドが可能でした。 チームのPCがすべてM1に変わったことと、BitriseのM1環境での実験結果から、処理時間が半分に短縮できることが分かりました。 実験では、3回の実行でBitriseの平均処理時間が8分、GitHub Actionsが16分と、5割以上短縮されました。 my route by KINTOでは、BitriseのTeamsプランに契約し、M1 Mediumマシンを採用しています。 GitHub Actionsと併用して、Linuxで動かせるステップはGitHubで、macOSでしか動かせないビルドステップはBitriseで行っています。 これにより、コストを最適化しながら、アプリの品質を安定させています。 現在のワークフローでは、developとreleaseブランチのPush時に自動でビルドが開始され、平日の朝にスケジュールビルドも実施しています。 1回のビルドで6分から11分(12〜22クレジット)かかっており、品質とスピードの両方を確保しています。 また、SwiftLintとSonarQubeでコード品質を自動チェックし、開発者が誤りを早期に発見できます。 今後は、Bitriseがモバイル開発に合わせた機能をさらに強化していくと予想されます。 特にテストやデプロイの柔軟性の向上が期待され、KINTOはその動向を注視して、より効率的な開発を進めます。
AI が生成した要約です。正確な内容は本文をご確認ください。
はじめに
はじめまして、モバイルアプリ開発グループのmy route by KINTO iOSアプリ開発担当している張と保坂です。
モバイルアプリ開発グループでは、通常CI/CDツールとしてGitHub Actionsを採用しています。今回、Bitriseをmy route by KINTO iOSアプリで初めて導入したので、そのお話をさせていただきます。
Bitriseとは
Bitrise(ビットライズ)とは、モバイルアプリの自動化ビルド、テスト、デプロイのためのクラウドベースのCI/CD(継続的インテグレーション/継続的デリバリー)サービスです。
Bitriseは、モバイルアプリ開発における効率化を図るために設計されており、iOS、Android、React Native、Flutterなどの主要なモバイルアプリ開発フレームワークに対応しています。
Bitriseの主な機能には、以下のようなものがあります。
-
ビルドの自動化
リポジトリのコードが更新されると、自動的にビルドがトリガーされます。ビルドの設定はビジュアルなインターフェースを通じて簡単に行うことができます。 -
テストの自動化
ビルドが完了した後、自動的にテストが実行されます。Bitriseは、さまざまなテストツールとの統合をサポートしており、ユニットテストやUIテストを含むさまざまなテストレベルでの自動化が可能です。 -
デプロイの自動化
テストがパスした場合、Bitriseは自動的にアプリをデプロイするための手続きを実行します。Bitriseは、App StoreやGoogle Playなどのアプリストアへのデプロイをサポートしています。 -
インテグレーションの豊富さ
Bitriseは、多くのツールやサービスとの統合をサポートしており、GitHub、Bitbucket、Slack、Jira、Firebaseなどと連携することができます。 -
クラウドベースのサービス
Bitriseはクラウドベースのサービスであり、インフラストラクチャの設定や管理をする必要がありません。開発者は、手軽にBitriseの機能を利用することができます。
Bitriseは、モバイルアプリ開発の効率化や品質向上を図るための強力なツールであり、開発者やチームにとって大きな価値を持つCI/CDサービスです。
Bitrise導入経緯
my route by KINTO iOSアプリへのBitrise導入した経緯は2つあります。
- CI/CD環境構築前にBitrise社から説明を受ける機会があり、またその時期にチームメンバー全員のPCが IntelからM1にリプレイスが完了したため、同じM1環境でビルドできるBitriseに魅力を感じました。
- Intel Mediumマシン(最も低パフォーマンス)のBitriseとGithub Actionsと比較した下記の実験結果から、料金は約3割削減でき、処理時間に関しては約5割短縮することができることが分かりました。
BitriseとGithub Actionsの動作比較実験(※別アプリで実験):
処理時間比較
| 実験的回数\マシン名 | Bitrise (Intel Medium) | Github Actions |
|---|---|---|
| 1 | 07:48 | 16:24 |
| 2 | 11:42 | 16:18 |
| 3 | 06:53 | 16:09 |
| 平均 | 08:48 | 16:17 |
料金比較
Github Actionsの1分あたりのコストは$0.08
Bitriseの1分あたりのコストは$0.106666
Bitriseの計算式:
1クレジット(cr)=経過分(min) ×マシンスペック(2)・・・①
$400 / 7,500クレジット=0.05333…($/cr)・・・②
①、②より、0.05333…($/cr)×2(cr/min)で1分あたりのコストは0.106666…($/min)
| 実験的回数\マシン名 | Bitrise (Intel Medium) | Github Actions |
|---|---|---|
| 1 | $0.85 | $1.36 |
| 2 | $1.28 | $1.36 |
| 3 | $0.75 | $1.36 |
| 平均 | $0.96 | $1.36 |
my route by KINTOでのBitrise活用
my route by KINTOではBitriseをTeamsプランで契約、1分間に2credits消費するM1 Mediumマシーンを採用しています。
Teamsプランには価格に応じたクレジットの上限が設定されており、それを超過すると追加でコストがかかるため、GitHub Actionsも併用してコストの最適化を目指しました。
Github ActionsではLinuxのコストはmacOSの10分の1のため、Linux上で動かすことができるステップ(アプリのビルドが不必要)はGithub Actionsを利用し、macOSのみでしか動かすことができないステップ(アプリのビルドが必要)はBitriseを利用しています。
-
Bitriseのワークフロー
my route by KINTOでは主に下記を自動化させています。
ユニットテスト、App Store・TestFlightへのデプロイ、Slackへのビルド結果通知。今現在、develop・releaseブランチへのPushを契機にビルド、平日の朝にスケジュールビルドを採用しています。
所見として、1度のビルドで6〜11分(12〜22credits)くらい時間がかかっています。 -
GitHub Actionsのワークフロー
GitHub Actionsでは静的解析フローを自動化させています。- SwiftLint:Swift用の静的解析ツールで、チームで定めたコード規約に則っていない場合はPR上で自動で指摘します。
- SonarQube:静的解析ツールでSwiftLintではカバーすることができない、重複コード等の解析をします。
まとめと今後の展望
今後の展望としては、Bitriseはモバイルアプリ開発のニーズに合わせてさらなる機能の拡充や改善を行っていくと予想されます。例えば、より高度なテストやデプロイのオプション、より柔軟なワークフローの設定、更なるクラウドベースのリソースの拡充などが期待されます。また、開発者コミュニティとの連携や、他のツールとの統合の向上など、よりシームレスな開発体験の提供が期待されます。KINTOテクノロジーズとしても動向に注視しながら、さらなる活用につなげていければと考えています。
レビューを寄稿しました
関連記事 | Related Posts
We are hiring!
Follow Us
KINTOテクノロジーズの最新情報をSNSで発信中!イベント・テックブログ更新情報もお届けします。
