個人的な基準で以下のように分けています。
MUST: 必須 SHOULD: できれば MAY: 好みで
Git
-
MUST:
.gitignore
ファイル追加-
github/gitignore: A collection of useful .gitignore templates の
Swift.gitignore
を参考に
-
github/gitignore: A collection of useful .gitignore templates の
-
MUST: gitローカルリポジトリ作成
- 新規プロジェクト作成時にgitリポジトリ作成チェックボックスにチェック
- または
$ git init
-
SHOULD: gitリモートリポジトリ作成
- GitHubやBitbucketなど
-
MAY: master, developブランチをプロテクト設定
- gitホスティングサービスの機能
- 管理者以外は重要な操作ができないように
Xcode設定
- MUST: [Xcode] 作成したSchemeを開発メンバーに共有する | Developers.IO
- SHOULD: Xcodeでデバッグ実行中にクラッシュした時に捗るブレークポイント設定 - Qiita
- SHOULD: XCodeで空白のみの行を削除する設定 - Qiita
-
MAY: テストコードカバレッジ率の表示設定
- スキーム設定の「Gather coverage data」にチェック (cf. We've Got You Covered | Big Nerd Ranch)
ツール導入
-
MUST: CocoaPods導入
-
$ sudo gem install -n /usr/local/bin cocoapods
(cf. MacOSX El Capitanでcocoapodsインストールが出来ない時の対処法 - Qiita) - ライブラリ管理ツール
-
-
MAY: Carthage導入
$ brew install carthage
- ライブラリ管理ツール
- [Swift] CocoaPodsとCarthageの違い / ライブラリ管理 - Qiita
-
SHOULD: SwiftLint導入
-
$ brew install swiftlint
- 設定方法は公式ページを参照のこと
- コードチェックのためのツール
- コード規約をymlファイルに記述できる
- ビルド時にコード規約に沿っているか自動でチェックできる
-
-
SHOULD: fastlane導入
$ brew cask install fastlane
- ビルドやテストなどの実行を便利にするツール群
- ビルドやテストの設定を
Fastfile
に記述 - 証明書や Provisioning Profile の管理ができる
- AppStore用のスクリーンショットを生成できる
- UI Testing を利用して任意の画面でスクリーンショットを生成
- 様々なサイズのデバイス用に、それぞれのシミュレータを起動して網羅的にスクリーンショットを生成できる
- AppStoreの文言をローカルで管理できる
- gitで管理できるようになる
- その他機能多数
- ビルドやテストの設定を
-
MAY: mergepbx導入
-
$ brew install mergepbx
- 設定方法は公式ページを参照のこと
-
.pbxproj
ファイルのコンフリクトを自動でマージしてくれるツール
-
ライブラリ導入
-
MUST: R.swift導入
- CocoaPodsで (
pod 'R.swift'
)- 設定方法は公式ページを参照のこと
- Androidの
R.java
のようなファイルを生成してくれるツール- コードからマジックストリングを減らせる
- CocoaPodsで (
-
SHOULD: Fabric (Crashlytics) 導入
- CocoaPodsで (
pod 'Fabric'
pod 'Crashlytics'
)- 設定方法は公式ページを参照のこと
- アプリのクラッシュ情報収集
- CocoaPodsで (
-
SHOULD: Google Analytics 導入
- CocoaPodsで (
pod 'GoogleAnalytics'
)- 設定方法は公式ページを参照のこと
- CocoaPodsで (
CI設定
-
SHOULD: CIサービスやJenkinsと連携
- ビルドやテストをCIサーバ上で行えるようにする
- Fastlaneのlaneを呼ぶようにすると便利
- MAY: テストが通るまでプルリクエストをマージできないように設定