KINTO Tech Blog

CI/CD

Bitriseを活用したiOSアプリ開発の効率化

Ren Hosaka, Chaowei Chang
Ren Hosaka, Chaowei Chang
Cover Image for Bitriseを活用したiOSアプリ開発の効率化

はじめに

はじめまして、モバイルアプリ開発グループの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つあります。

  1. CI/CD環境構築前にBitrise社から説明を受ける機会があり、またその時期にチームメンバー全員のPCが IntelからM1にリプレイスが完了したため、同じM1環境でビルドできるBitriseに魅力を感じました。
  2. 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では静的解析フローを自動化させています。

    1. SwiftLint:Swift用の静的解析ツールで、チームで定めたコード規約に則っていない場合はPR上で自動で指摘します。
    2. SonarQube:静的解析ツールでSwiftLintではカバーすることができない、重複コード等の解析をします。

まとめと今後の展望

今後の展望としては、Bitriseはモバイルアプリ開発のニーズに合わせてさらなる機能の拡充や改善を行っていくと予想されます。例えば、より高度なテストやデプロイのオプション、より柔軟なワークフローの設定、更なるクラウドベースのリソースの拡充などが期待されます。また、開発者コミュニティとの連携や、他のツールとの統合の向上など、よりシームレスな開発体験の提供が期待されます。KINTOテクノロジーズとしても動向に注視しながら、さらなる活用につなげていければと考えています。

KINTOテクノロジーズMeetUp!情シスによる情シスのための事例シェア

関連記事 | Related Posts

We are hiring!

【iOS/Androidエンジニア】モバイルアプリ開発G/東京・大阪

モバイルアプリ開発GについてKINTOテクノロジーズにおける、モバイルアプリ開発のスペシャリストが集まっているグループです。KINTOやmy routeなどのサービスを開発・運用しているグループと協調しながら品質の高いモバイルアプリを開発し、サービスの発展に貢献する事を目標としています。

【部長・部長候補】/プラットフォーム開発部/東京

プラットフォーム開発部 について共通サービス開発GWebサービスやモバイルアプリの開発において、必要となる共通機能=会員プラットフォームや決済プラットフォームの開発を手がけるグループです。KINTOの名前が付くサービスやTFS関連のサービスをひとつのアカウントで利用できるよう、様々な共通機能を構築することを目的としています。