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作成時のルールやエチケットをコンフィグファイルに記述することで、違反がないか自動的にチェックしてくれる。