Overview
- iOS・AndroidでCI/CDやDevOps環境を作成する際に、使えそうなツールをまとめたものです。
ツールリスト
用途 | 分類 | 小項目 | サービス名 | ||||||||
構成管理ツール | Ansible + Ansible Container | Chef | Puppet | ||||||||
コンテナクラスタ | コンテナ | Docker | |||||||||
オーケストレーション | Docker Compose + Docker Swarm + Docker Machine | Kubernetes | Amazon ECS | ||||||||
OS | CentOS | Ubuntu | maxOS | ||||||||
インフラ | クラウドサーバー | Amazon Web Services (AWS) | Google Cloud Platform | Microsoft Azure | IBM Cloud | Alibaba Cloud | |||||
デバッギング | Rookout | ||||||||||
ロギング | Fluentd | Redash | Elasticsearch + Kibana | ||||||||
モニタリング | Datadog | ||||||||||
インシデントライフサイクル管理 | PagerDuty | ||||||||||
コラボレーション | Issues | Jira | |||||||||
Chat | Slack | HipChat | |||||||||
レポジトリー | パブリック | GitHub | GitHub Gists | GitLab | Bitbucket | Azure Repos | |||||
プライベート | |||||||||||
パッケージマネージャー | パブリック | iOS | CocoaPods | Swift Package Manager (SwiftPM) | Carthage | ||||||
プライベート | iOS | CocoaPods Private Specs | |||||||||
パッケージ・アーティファクトレポジトリー | パブリック | Maven Central Repository | GitHub Package Registry | ||||||||
プライベート | Sonatype Nexus Repository Manager | github/maven-plugins | JFrog Artifactory | ||||||||
CI | 個人・小規模チーム | クラウドサーバー | Bitrise | CircleCI | GitHub Actions (GitHubホストランナー又はセルフホストランナー) |
Xcode Cloud (Beta) | Travis CI | Buildkete | Cirrus CI + Anka Cloud MacStadium | Azure Pipelines | Visual Studio App Center |
エンタープライズ | クラウドサーバー | ||||||||||
オンプレミスサーバー | GitHub Actions + セルフホストランナー | Azure Pipelines + Self-hosted macOS agents | |||||||||
個人 ~ エンタープライズ | クラウド + オンプレミスサーバー | Concourse CI | GitLab CI/CD | Jenkins | |||||||
CD | Beta配布 | App Store Connect + TestFlight | Firebase App Distribution | DeployGate | Bitrise Ship | ||||||
ビルド自動化ツール | iOS | fastlane | |||||||||
Android | Gradle | ||||||||||
静的コード解析 | コーディングスタイル | Swift | realm/SwiftLint | sleekbyte/tailor | |||||||
Objective-C | oclint/oclint | ||||||||||
Kotlin | shyiko/ktlint | ||||||||||
バグ・脆弱性・コードの匂い |
SonarQube, SonarCloud |
Codacy (※Not supported Objective-C) |
Code Climate | ShiftLeft | codebeat | ||||||
コードカバレッジ | Codecov | Coveralls | |||||||||
UI | iOS (Interface builder) |
fastred/IBAnalyzer | IBDecodable/IBLinter | ||||||||
コードレビュー自動化 | Linterコラボ | reviewdog/reviewdog | |||||||||
PRエチケット | Swift | danger/swift | |||||||||
Kotlin | danger/kotlin | ||||||||||
テスト | 実機テスト | iOS | Firebase Test Lab | AWS Device Farm | Remote TestKit | ||||||
Android | |||||||||||
テスト管理 | TestRail |
説明
CI
- Bitrise
- サーバーメンテナンスが不要な
クラウド型
と、メンテナンスが必要ながらセキュアなオンプレミス型
を選択出来る。i/Aともにサポート
している。 - CircleCIと比較されやすい。
-
ジョブ作成方法はGUIなのでとっつきやすい
と思います。その反面GUIなので、大企業での一括導入の場合、導入推進者は苦労するかも知れません。 - bitrise.yml
-
GitHubとGitLabとBitbucketをサポート
しており、そのどれかでレポジトリ管理している必要があります。 - 静的なパブリックIPアドレスが提供されている。
- 開発規模は、
個人〜小中だと相性がいい
と思います。 -
料金体制は月額
です。
- サーバーメンテナンスが不要な
- CircleCI
- サーバーメンテナンスが不要な
クラウド型
と、メンテナンスが必要ながらセキュアなオンプレミス型
を選択出来る。i/Aともにサポート
している。 - Bitriseと比較されやすい。サービス内容はTravis CIに似ている。
-
ジョブ作成方法はYAML
です。YAMLなので記述し易く、gitで管理されます。 -
GitHubとBitbucketをサポート
しており、そのどちらかでレポジトリ管理している必要があります。 - 静的なパブリックIPアドレスは、提供されていない。(提供するか検討はされている)
- 開発規模は、
中小企業〜大規模だと相性がいい
と思います。個人でもたくさんアプリリリースするなら有り。 -
料金体制は月額
です。 - CircleCIのビルド傾向を解析したい場合は、Buildtrakr が良さそう。
- サーバーメンテナンスが不要な
- Travis CI
- サーバーメンテナンスが不要な
クラウド型
が選択出来る。i/Aともにサポート
している。 - CircleCIと比較されやすく、両者は似ている。
-
ジョブ作成方法はYAML
です。YAMLなので記述し易く、gitで管理されます。 -
GitHubをサポート
しており、GitHubでレポジトリ管理している必要があります。 - 開発規模は、
中小企業〜大規模だと相性がいい
と思います。個人でもたくさんアプリリリースするなら有り。 -
料金体制は月額
です。
- サーバーメンテナンスが不要な
- Cirrus CI + Anka Cloud MacStadium
- 執筆予定
- Azure Pipelines
- 執筆予定
- Visual Studio App Center
- 執筆予定
- Concourse CI
- CI環境構築が必要。
- Androidのビルドのみの場合、
クラウド型
かオンプレミス型
になる。 - iOSをビルドする場合、
オンプレミスオンリー
かクラウドとオンプレミス複合環境
になる。- AWSなどのクラウドサーバーで、macOS環境を提供している会社がないため、macOSマシンを自前する必要がある。
- Jenkinsの後発です。
-
ジョブ作成方法はYAML
です。YAMLなので記述し易く、gitで管理されます。 -
CI環境構築とメンテナンスを自前で行えるのがメリットであり、デメリットでもある
と思います。 - 開発規模は、
中小企業〜大規模だと相性がいい
と思います。 - 完全オンプレミスの場合、初期費用としてサーバー購入費用がかかります。ランニングコストはさほどかかりませんが、
メンテナンスを行うエンジニアを常駐する必要があります
。
- Jenkins
- CI環境構築が必要。
- Androidのビルドのみの場合、
クラウド型
かオンプレミス型
になる。 - iOSをビルドする場合、
オンプレミスオンリー
かクラウドとオンプレミス複合環境
になる。- AWSなどのクラウドサーバーで、macOS環境を提供している会社がないため、macOSマシンを自前する必要がある。
- CIの本家に当たり、Concourse CIと比較されます。バージョンアップは現在も頻繁に行われている。
-
ジョブ作成方法はGUIです
。柔軟性にはすごく長けているのですが、設定項目が多く属人化し易い
です。 -
CI環境構築とメンテナンスを自前で行えるのがメリットであり、デメリットでもある
と思います。 - 開発規模は、
中小企業〜大規模だと相性がいい
と思います。 - 完全オンプレミスの場合、初期費用としてサーバー購入費用がかかります。ランニングコストはさほどかかりませんが、
メンテナンスを行うエンジニアを常駐する必要があります
。
- GitLab CI/CD
- CI環境構築が必要。
- Androidのビルドのみの場合、
クラウド型
かオンプレミス型
になる。 - iOSをビルドする場合、
オンプレミスオンリー
かクラウドとオンプレミス複合環境
になる。- AWSなどのクラウドサーバーで、macOS環境を提供している会社がないため、macOSマシンを自前する必要がある。
- 開発規模は、
中小企業〜大規模だと相性がいい
と思います。 -
レポジトリ管理とCIを全て、GitLabにしたい場合はメリットがある
と思います。 - レポジトリ管理のGitLabと同じライセンスで利用できます。
- 完全オンプレミスの場合、初期費用としてサーバー購入費用がかかります。ランニングコストはさほどかかりませんが、
メンテナンスを行うエンジニアを常駐する必要があります
。
- Nevercode (Beta)
-
Semaphore
- 執筆予定
-
Buildkite
- 執筆予定
コードレビュー自動化
-
reviewdog/reviewdog
- linterの解析結果を一行単位で、自動的にPRにコメントしてくれる。
- 作成者による開発経緯とライブラリ紹介
- danger
- RP作成時のルールやエチケットをコンフィグファイルに記述することで、違反がないか自動的にチェックしてくれる。