KINTO Tech Blog
CI/CD

Streamlining iOS app development with Bitrise

Cover Image for Streamlining iOS app development with Bitrise

Introduction

Hello, we are Chang and Hosaka, in charge of the my route by KINTO iOS app development in the Mobile App Development Group.

In our mobile app development group, we usually use GitHub Actions as a CI/CD tool. This time, we introduced Bitrise for the first time to the my route by KINTO iOS app, so we would like to talk about it.

What is Bitrise?

Bitrise is a cloud-based CI/CD (continuous integration / continuous delivery) service for the automated building, testing, and deployment of mobile apps. Bitrise is designed to streamline mobile app development, and it supports major mobile app development frameworks such as iOS, Android, React Native, and Flutter. Some of the key features of Bitrise include:

  • Build Automation Builds are automatically triggered when code in the repository is updated. Builds can be easily configured using the visual interface.

  • Test Automation Tests are automatically run after the builds are complete. Bitrise supports integration with a variety of testing tools, allowing automation at different test levels, including unit testing and UI testing.

  • Automated Deployment If the test passes, Bitrise will automatically take steps to deploy the app. Bitrise supports deployment to app stores such as the App Store and Google Play.

  • Variety of Integration Bitrise supports integration with a variety of tools and services, including GitHub, Bitbucket, Slack, Jira, Firebase, and more.

  • Cloud-based Services Bitrise is a cloud-based service that does not require infrastructure configuration or management. Developers can easily take advantage of Bitrise’s features.

Bitrise is a powerful tool for streamlining and improving the quality of mobile app development, and is a very valuable CI/CD service to developers and development teams.

The Reason for Introducing Bitrise

There are two reasons why we implemented Bitrise in the my route by KINTO iOS app.

  1. We had an opportunity to hear from Bitrise Ltd. before building a CI/CD environment, and at that time all the team members had replaced their PCs from Intel to M1, so we were fascinated by Bitrise, which can be built in the same M1 environment.
  2. The results of the experiment below, comparing Bitrise and Github Actions on an Intel Medium machine (the lowest performance), show that the cost can be reduced by about 30% and the processing time can be shortened by about 50%.

Bitrise and GitHub Actions performance comparison experiment (tested in a different app):

Processing Time Comparison

Experimental Attempt / Machine Name Bitrise (Intel Medium) Github Actions
1 07:48 16:24
2 11:42 16:18
3 06:53 16:09
Average 08:48 16:17

Cost Comparison

Github Actions cost per minute is $0.08
Bitrise cost per minute is $0.106666
Bitrise calculation: Given that 1 credit (cr.) = elapsed minutes (min.) × machine spec (2)... (i), and $400/7,500
credit = apprrx. 0.05333(/cr)... (ii), For (i) and (ii), apprx. 0.05333(/cr.) × 2(cr./min.) = apprx. 0.106666 ($/min.)

Experimental Count / Machine Name Bitrise (Intel Medium) Github Actions
1 $0.85 $1.36
2 $1.28 $1.36
3 $0.75 $1.36
Average $0.96 $1.36

Using Bitrise in my route by KINTO

To implement Bitrise in my route KINTO, we signed up for Bitrise's Teams pricing plan and adopted an M1 Medium machine consuming 2 credits per minute. The Teams plan has a credit limit set according to the price, and exceeding that limit incurs additional costs, so we aimed to optimize costs by also using GitHub Actions. With GitHub Actions, Linux is 1/10 the cost of macOS. Therefore, we use GitHub Actions for steps that can run on Linux (no app build required) and Bitrise for steps that require macOS (app build required).

  • Bitrise Workflow my route by KINTO, mainly automates the following: unit testing, deployment to App Store and TestFlight, and build result notifications to Slack. Currently, builds are triggered by pushing to the develop and release branches, and scheduled builds are done on weekday mornings. We have observed that a single build takes about 6-11 minutes (12-22 credits).

  • GitHub Actions Workflow GitHub Actions automates the static analysis flow.

    1. SwiftLint: A static analysis tool for Swift that automatically points out any code violations in the PR.
    2. SonarQube: A static analysis tool that analyzes code duplication and other issues that SwiftLint cannot cover.

Summary and Future Prospects

Looking ahead, Bitrise is expected to continue to expand and improve its features to meet the needs of mobile app development. For example, we can expect more advanced testing and deployment options, more flexible workflow settings, and further expansion of cloud-based resources. It is also expected to provide a more seamless development experience, including collaboration with the developer community and improved integration with other tools. KINTO Technologies would like to keep a close eye on the trends and lead to further utilization of this technology.

Here is the review.

https://findy-tools.io/products/bitrise/18/39

Facebook

関連記事 | Related Posts

We are hiring!

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

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

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

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