🤘気になるあの子からメッセージをもらおう！🤘（プッシュ通知を実装しようw）

#完成系！
本日は以下のようなプッシュ通知を作成します！

<img width="375" alt="Image uploaded from iOS.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/125054/f4f742d1-6910-748a-a699-9e02fdd68200.jpeg">


幸せな朝ですね😂
<br>

iOSにおいてプッチュ通知の方法はいくつかあるのですが、今回は無料のクラウドサーバーであるNCMBというサービスを利用しプッシュ通知を実装します。
一番わかりやすい記事などの参考文献を紹介しつつ進めていきます。


#開発環境
・macOS High Sierra
・Xcode9.0
・Swift4.0
・iOS10.2


#手順
- Apple Developer Program
に登録
- Xcodeプロジェクト作成
- プッシュ通知に必要な証明書を作成
- NCMBの登録
- NCMBでプッシュ通知の設定

##Apple Developer Program に登録
プッシュ通知を実装するためには、Apple Developer Programというデベロッパー登録をしなければいけません。
一番わかりやすい以下の記事から登録しましょう。
https://i-app-tec.com/ios/developer-registration.html

##Xcodeプロジェクト作成
###新規プロジェクト作成
さて、ここまで準備ができたらいよいよ実装です！
まずは、Xcodeを起動し、新規プロジェクトを作成しましょう。
<img width="802" alt="空白_Skitch_キャンバス.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/f7a5d0c6-e4d0-0b18-9d59-250ecb6afa0b.png">
<br>

プロジェクト名は**「TestPush」**とします。
<img width="1383" alt="スクリーンショット_2017_12_15_18_53.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/24d3217a-96fd-9bd3-3e16-cdb10116d7d1.png">
<br>

次にプッシュ通知に必要なSDKをインポートします。



###CocoaPodsでNCMBをSDKをインストールする
CocoaPodsとは、外部のライブラリを管理するのに使われるツールです。
今回は、CocoaPodsを使用し、NCMBのライブラリをプロジェクトに導入します！

NCMBとは、無料から使えるデータベースです！サポートが充実していてユーザー管理やFacebookログインの実装などが容易にできます。

<br>

まずはCocoaPodsをインストールしましょう。
ターミナルを起動し、先程作成したプロジェクトに移動しましょう。
<img width="505" alt="takahirosakamoto_—_takahirosakamoto_sakamototakahiro-no-MacBook-Pro_—___—_-zsh_—_80×24.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/40b3c0c4-37e5-610f-d11b-c8cc3f3a4fa2.png">
<br>

次にCocoaPodsをインストールします。
**「はじめてインストールする方」**は以下のコマンドを入力しましょう。

```
$ sudo gem install cocoapods
```
<br>
**「既にインストールしている方」**は以下のコマンドを入力しましょう。

```
$ sudo gem update --system
```

<br>

インストールができたらセットアップのコマンドを入力しましょう。

```
$ pod setup
```
<br>

次に、インストールできているか確認するために以下のコマンドを入力しましょう。

```
$ pod --version
```
バージョンが表示されれば大丈夫です！！
<img width="505" alt="TestPush_—_takahirosakamoto_sakamototakahiro-no-MacBook-Pro_—___ents_TestPush_—_-zsh_—_80×24.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/afa0b3dc-45ef-44bd-2c82-b0208ddf3053.png">
<br>

ここまでできたら、次はNCMBをインストールします。
インストールするライブラリ（今回であればNCMB）を指定するファイルを作成しましょう。
以下のコマンドを実行します。

```
$ pod init
```
<br>

実行できたら、プロジェクトのフォルダ内に**「PodFile」**というファイルが作成されます。
「ls」コマンドを実行し確認してみましょう。
<img width="505" alt="TestPush_—_takahirosakamoto_sakamototakahiro-no-MacBook-Pro_—___ents_TestPush_—_-zsh_—_80×24.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/0debb571-eae5-27d6-36bc-00b62e571652.png">

Finderから見ても作成されているのが確認できますね！
<img width="849" alt="TestPush.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/afa97951-ce52-12fb-9f27-0f0eeb33493e.png">
<br>

作成できたらPodFileを開き、以下の記述を画像の位置に追加しましょう。
編集したら「command + S」で保存するのを忘れずに！

```
pod 'NCMB', :git => 'https://github.com/NIFTYCloud-mbaas/ncmb_ios.git'
```

<img width="655" alt="Podfile.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/e2d9e7ef-eff6-9db7-8357-43a594d32e95.png">
<br>

編集ができたらターミナルに戻り、以下のコマンドを実行し、NCMBをインストールしましょう。

```
$ pod install
```
<br>

インストールが完了されるといくつかのファイルが作成されます。
確認しましょう。
<img width="849" alt="TestPush.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/d3052e80-854c-88d2-9db4-592c9063f025.png">
<br>

これでNCMBをインストールできました。
次は、証明書の作成をしていきます。

##プッシュ通知に必要な証明書を作成
プッシュ通知を実装するためには、いくつかの証明書を作成する必要があります。
一番わかりやすい以下の記事から登録しましょう。
https://qiita.com/natsumo/items/d5cc1d0be427ca3af1cb

<br>


##NCMBの登録
以下からNCMBに登録をしましょう。
https://console.mb.cloud.nifty.com/login


登録できたら**「新規アプリ」**をクリックしましょう。
![ニフクラmobile_backend.png](https://qiita-image-store.s3.amazonaws.com/0/125054/ac3f1b0b-d734-d050-80c8-adc42343430e.png)
<br>

アプリ名を入力し、新規作成をクリックしましょう。
![ニフクラmobile_backend.png](https://qiita-image-store.s3.amazonaws.com/0/125054/fb183f00-242f-301f-7b1e-61bf8e22a364.png)
<br>

新規作成ができると以下のページに遷移するので、**「アプリケーションキー」、「クライアントキー」**を後ほど使います。
<img width="951" alt="ニフクラmobile_backend.png" src="https://qiita-image-store.s3.amazonaws.com/0/125054/cf841947-2a51-d638-be22-b2e136e6d608.png">
<br>

ではプッシュ通知の設定をしましょう。

##NCMBでプッシュ通知の設定
一番わかりやすい以下の記事から登録しましょう。
https://qiita.com/natsumo/items/8ffafee05cb7eb69d815

これで完成です！サラッとまとめてしまったので何かあればコメントお願いします。

#参考文献
プッシュ通知に必要な証明書の作り方2017
https://qiita.com/natsumo/items/d5cc1d0be427ca3af1cb

Swiftでプッシュ通知を送ろう！
https://qiita.com/natsumo/items/8ffafee05cb7eb69d815