【Swift】maioのSDKをswiftで組み込む【動画広告】

#**概要**
現状Objective-Cにしか対応してない動画広告「maio」のSDKをSwiftで組み込んでみましょう。

##使用するもの
- Xcode 7
- Swift

##大まかな流れ
- 新規プロジェクトの作成
- maio.frameworkをプロジェクトに取り込む
- bridging-header.hを作成してmaio.frameworkをswiftで読み込めるようにする
- viewControllerからmaio.frameworkの関数を呼ぶ

#それではさっそく実践！

###まずは新規プロジェクトを作成しましょう
![1.png](https://qiita-image-store.s3.amazonaws.com/0/100046/ae7a564e-5a7b-8cde-c737-befbd8d9ad03.png)


###テンプレートはSingle View Applicationにしておきましょう
![2.png](https://qiita-image-store.s3.amazonaws.com/0/100046/5188fc2c-f5c4-7923-229f-545bd73de28d.png)


###必要な項目を適当に入れていきます。
(Languageが「Swift」になっていることを確認してください)
この後にプロジェクトの保存場所を聞かれますが、場所はどこでもいいです。
※ただしどこに保存したかを覚えておいてください。後ほど使用します。
![3.png](https://qiita-image-store.s3.amazonaws.com/0/100046/aad98cfc-8b36-b158-5b68-6a47c07b5ac7.png)


###少し待つとプロジェクトが出来ます。
プロジェクトが出来たら次はダウンロードしてきたmaioのSDKを取り込みます
※maioのSDKをダウンロードするためにはmaioのパートナーになる必要があります。
 公式サイトの問い合わせから、申し込みましょう
![4.png](https://qiita-image-store.s3.amazonaws.com/0/100046/77d99c17-8651-306b-1cf2-fa87119d377a.png)


###ダウンロードしてきた「maio-SDK-x.x.x」というフォルダの中にある「Maio.framework」をXcodeのプロジェクトナビゲーターにドラッグ&ドロップします
 (ドロップする場所はどこでもいいです)
![5_1.png](https://qiita-image-store.s3.amazonaws.com/0/100046/aadd3d5c-bb60-b409-6551-5a1428d740a9.png)


###「Copy items if needed」にチェックがついてるのを確認してFinishを押します
![5_2.png](https://qiita-image-store.s3.amazonaws.com/0/100046/3ff01517-cb91-0cf6-6390-9350dc64d25d.png)


###プロジェクトナビゲーターに「Maio.framework」が追加されたのを確認しましょう
![6.png](https://qiita-image-store.s3.amazonaws.com/0/100046/b189ad5b-5a85-51dd-e6a8-2848073e8c67.png)


###maioのframeworkを取り込むことが出来たので、次はコードでframeworkを読み込むための準備をします。
File -> New -> File から新しいヘッダーファイルを作成していきます。
![7.png](https://qiita-image-store.s3.amazonaws.com/0/100046/af01945e-e8c5-4dbf-4c5c-a2532833e887.png)


###左のメニューからiOS -> Sourceを選択し、「Header File」を選択してNextします
![8.png](https://qiita-image-store.s3.amazonaws.com/0/100046/7bdd3a56-a83e-d5e2-f937-b46caa2ad691.png)


###ファイル名は「project名-Bridging-Header.h」とします。
※別にファイル名はなんでもいいですが、この名前が通例です。
![9.png](https://qiita-image-store.s3.amazonaws.com/0/100046/de2e29e7-a18f-0fdd-739f-4d0f8d7b4d11.png)



###作成が完了すると同時に下記のように記載されたファイルが開かれると思います。
```project名-Bridging-Header.h
#ifndef maioTestProject_Bridging_Header_h
#define maioTestProject_Bridging_Header_h

#endif /* maioTestProject_Bridging_Header_h */
```


###ここに先ほどprojectに取り込んだmaioのframeworkを読み込むように追記してやりましょう。
※ここでエラーが出る場合には保存した場所のパスが違うかもしれません。ファインダーで保存した場所を確認して<Maio/Maio.h>を適切なパスに変更してください

```project名-Bridging-Header.h
#ifndef maioTestProject_Bridging_Header_h
#define maioTestProject_Bridging_Header_h

#import <Maio/Maio.h> //追記

#endif /* maioTestProject_Bridging_Header_h */
```

###次に読み込んだbridging-header.hをswiftで使えるようにしていきます。
プロジェクトナビゲーターのプロジェクト -> TARGETS -> project名を選択します。
![12.png](https://qiita-image-store.s3.amazonaws.com/0/100046/61f8e8f0-506b-e5e9-16fd-61c73d5bc88f.png)


###タブメニューが表示されているので「build settings」を選択しましょう
![13.png](https://qiita-image-store.s3.amazonaws.com/0/100046/d9430ff0-2bc6-cb4b-a831-e8e6aa35bee9.png)

###build settingsを選択した状態で、そのすぐ下にある検索窓に「objective-C bridging」などと入力して検索すると、「Objective-C Bridging Header」という項目が出てきます
![14.png](https://qiita-image-store.s3.amazonaws.com/0/100046/950ec355-57a8-77ca-4649-0de72c0fbe08.png)

###ここに先ほど作成した「project名-bridging-header.h」のファイルパスを記入します。
※空白のとこをダブルクリックで入力欄が現れます
![15.png](https://qiita-image-store.s3.amazonaws.com/0/100046/a0688a6f-9ef2-0c79-6fc0-8c5ec3d1b58b.png)

###※ファイルパスがわからない場合には、projectを作成したフォルダを開いて、プロジェクトに取り込んだ「Maio.framework」を右クリック -> 情報を見る -> 場所　から確認することが出来ます。
ちなみに、そのまま選択すればパスをコピーできます。
自分の場合は下記パスになりました
```
/Users/userName/App/maioTestProject/maioTestProject/maioTestProject-Bridging-Header.h
```
![18.png](https://qiita-image-store.s3.amazonaws.com/0/100046/e2a7d3b7-7393-61f4-74a5-8ae0996f17ea.png)



###あとは表示させたいviewControlllerに下記を追加します
- super classにMaioDelegateを追加
- viewDidLoadなどに下記追加

```ViewController.swift
Maio.setAdTestMode(true) //開発環境で再生する際には必ずテストモードにしましょう
Maio.startWithMediaId("メディアID", delegate: self)
``` 
- 動画を再生させたいタイミングで下記追加

```ViewController.Swift
if Maio.canShow() {
   Maio.show()
}
```

###例えば、先ほど作成したプロジェクトのデフォルトで作成されてるViewController.swiftでやるならこんな感じになります。

```ViewController.swift
import UIKit

class ViewController: UIViewController, MaioDelegate{

    override func viewDidLoad() {
        super.viewDidLoad()
        Maio.setAdTestMode(true) //開発環境で再生する際には必ずテストモードにしましょう
        Maio.startWithMediaId("メディアID", delegate: self)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    //storyboardにてボタンを追加。ボタンを押した際に実行されるアクション
    @IBAction func buttonAction(sender: AnyObject) {
        if Maio.canShow() {
            Maio.show()
        }
    }

}
```
![Simulator Screen Shot 2015.12.08 19.16.24.png](https://qiita-image-store.s3.amazonaws.com/0/100046/c11154fe-9119-1f4e-402d-96852349b2f4.png)

**ポチッ**

![Simulator Screen Shot 2015.12.08 19.17.28.png](https://qiita-image-store.s3.amazonaws.com/0/100046/d0fa6feb-b6c3-052a-55b0-ed2b2e0d3000.png)
**ドンッ！！**
###以上、快適な動画広告ライフを！


※storyboardのボタンの追加からわかないという方は下記等を参考にどうぞ
[XcodeでUIButtonを追加する方法【初心者向け】(TECHACADEMYさん)](http://techacademy.jp/magazine/2677)