新規Xcodeプロジェクトを作ったらやること

記事の内容はこちらを参照してください。
https://mishimay.github.io/b34612242c3c1ced6aef/
<!--

個人的な基準で以下のように分けています。

<font color=orangered>**MUST:**</font> 必須　<font color=peru>**SHOULD:**</font> できれば　<font color=darkcyan>**MAY:**</font> 好みで

# Git
- <font color=orangered>**MUST:**</font> `.gitignore` ファイル追加
    - [github/gitignore: A collection of useful .gitignore templates](https://github.com/github/gitignore) の `Swift.gitignore` を参考に
- <font color=orangered>**MUST:**</font> gitローカルリポジトリ作成
    - 新規プロジェクト作成時にgitリポジトリ作成チェックボックスにチェック
    - または `$ git init`
- <font color=peru>**SHOULD:**</font> gitリモートリポジトリ作成
    - GitHubやBitbucketなど
- <font color=darkcyan>**MAY:**</font> master, developブランチをプロテクト設定
    - gitホスティングサービスの機能
    - 管理者以外は重要な操作ができないように

# Xcode設定

- <font color=orangered>**MUST:**</font> [[Xcode] 作成したSchemeを開発メンバーに共有する ｜ Developers.IO](http://dev.classmethod.jp/smartphone/iphone/xcode-scheme-shared/)
- <font color=peru>**SHOULD:**</font> [Xcodeでデバッグ実行中にクラッシュした時に捗るブレークポイント設定 - Qiita](http://qiita.com/mono0926/items/bf70c7ef15db046ee163)
- <font color=peru>**SHOULD:**</font> [XCodeで空白のみの行を削除する設定 - Qiita](http://qiita.com/tmnb/items/5774b9494c91f8c34e6f)
- <font color=darkcyan>**MAY:**</font> テストコードカバレッジ率の表示設定
    - スキーム設定の「Gather coverage data」にチェック (cf. [We've Got You Covered | Big Nerd Ranch](https://www.bignerdranch.com/blog/weve-got-you-covered/))

# ツール導入
- <font color=orangered>**MUST:**</font> [CocoaPods](https://guides.cocoapods.org/)導入
    - `$ sudo gem install -n /usr/local/bin cocoapods` (cf. [MacOSX El Capitanでcocoapodsインストールが出来ない時の対処法 - Qiita](http://qiita.com/AcaiBowl/items/4bb4708de03e6ee14a4a))
    - ライブラリ管理ツール

- <font color=darkcyan>**MAY:**</font> [Carthage](https://github.com/Carthage/Carthage)導入
    - `$ brew install carthage`
    - ライブラリ管理ツール
    - [\[Swift\] CocoaPodsとCarthageの違い / ライブラリ管理 \- Qiita](http://qiita.com/nori0620/items/b81ae171f0e82b0c2d8a)

- <font color=peru>**SHOULD:**</font> [SwiftLint](https://github.com/realm/SwiftLint)導入
    - `$ brew install swiftlint`
        - 設定方法は公式ページを参照のこと
    - コードチェックのためのツール
        - コード規約をymlファイルに記述できる
        - ビルド時にコード規約に沿っているか自動でチェックできる

- <font color=peru>**SHOULD:**</font> [fastlane](https://github.com/fastlane/fastlane)導入
    - `$ brew cask install fastlane`
    - ビルドやテストなどの実行を便利にするツール群
        - ビルドやテストの設定を`Fastfile`に記述
        - 証明書や Provisioning Profile の管理ができる
        - AppStore用のスクリーンショットを生成できる
            - UI Testing を利用して任意の画面でスクリーンショットを生成
            - 様々なサイズのデバイス用に、それぞれのシミュレータを起動して網羅的にスクリーンショットを生成できる
        - AppStoreの文言をローカルで管理できる
            - gitで管理できるようになる
        - その他機能多数

- <font color=darkcyan>**MAY:**</font> [mergepbx](https://github.com/simonwagner/mergepbx)導入
    - `$ brew install mergepbx`
        - 設定方法は公式ページを参照のこと
    - `.pbxproj` ファイルのコンフリクトを自動でマージしてくれるツール

<!-- 1. `$ brew install mergepbx` でインストール
1. `~/.gitconfig` に以下を記述
```
#driver for merging Xcode project files
[merge "mergepbx"]
        name = Xcode project files merger
        driver = mergepbx %O %A %B
```
1. プロジェクトのルートディレクトリに `.gitattributes` を作成し以下を記述
```
*.pbxproj merge=mergepbx
``` -->

# ライブラリ導入
- <font color=orangered>**MUST:**</font> [R.swift](https://github.com/mac-cain13/R.swift)導入
    - CocoaPodsで (`pod 'R.swift'`)
        - 設定方法は公式ページを参照のこと
    - Androidの `R.java` のようなファイルを生成してくれるツール
        - コードからマジックストリングを減らせる
- <font color=peru>**SHOULD:**</font> [Fabric](https://get.fabric.io/) (Crashlytics) 導入
    - CocoaPodsで (`pod 'Fabric'` `pod 'Crashlytics'`)
        - 設定方法は公式ページを参照のこと
    - アプリのクラッシュ情報収集
- <font color=peru>**SHOULD:**</font> [Google Analytics](https://developers.google.com/analytics/devguides/collection/ios) 導入
    - CocoaPodsで (`pod 'GoogleAnalytics'`)
        - 設定方法は公式ページを参照のこと

# CI設定
- <font color=peru>**SHOULD:**</font> CIサービスやJenkinsと連携
    - ビルドやテストをCIサーバ上で行えるようにする
    - Fastlaneのlaneを呼ぶようにすると便利
- <font color=darkcyan>**MAY:**</font> テストが通るまでプルリクエストをマージできないように設定









-->