MetaioSDKことはじめ


# はじめに
AR？　なんか難しそう。とか思って遠くから眺めてるだけだったんですけど、機会があったのでチャレンジ。
[metaio](http://www.metaio.com/products/sdk/)使って、チュートリアルをこなします。
\# ちなみにObjective-CどころかiOSでの開発経験プライベートでもほぼゼロです。

# 準備
[Apple Developer Program](https://developer.apple.com/jp/programs/)には登録してある前提。これ手間なんで、これだけで記事書けそうな気がする。

## metaioにDeveloper登録する
はじめにmetaioのDeveloper登録します。
[metaio Developer Portal](http://dev.metaio.com/)にアクセスして、右上の Sign up を押して登録画面に行きます。
必要事項を入力して登録、たしかメールが届くので、確認してPortal画面に行きます。
SDKをダウンロードして、お好きなところに展開。これでmetaioの準備完了です。

![skitch.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/1067384a-2d87-1dc6-0e0f-ff42085545be.jpeg "skitch.jpg")

## metaioにアプリ登録する
そのままの流れで、アプリを登録します。
ポータル画面の上のメニューの「My Apps」をクリック、この画面でアプリを登録して識別子を発行してもらいます。
下の方に「App registration」があるので、ここでお好きなアプリ名、お好きな識別子を登録します。
![Welcome_to_the_metaio_Developer_Portal.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/5894054a-4dc9-4b56-8e3c-6e2a42a6dca3.jpeg "Welcome_to_the_metaio_Developer_Portal.jpg")
この`Identifier`はめちゃくちゃ重要なので、ちゃんと設定しておくとよいと思います。
とりあえず`SDK Signature`のVersion 6.xのキーをコピっておきます。この画面はいつでも見ることができるので、あとで参照しにきてもいいです。

## Xcodeにプロジェクトを作る
Xcodeでプロジェクト作ります。詳細な手順は省きますけど、とりあえずSingle View Applicationでいいと思います。
重要なのは`Product name`と`Organization Identifier`。`Bundle Identifier`が上で登録した`Identifier`と一致している必要があります（・・・ですよね？）。
![スクリーンショット_2015_04_29_17_15.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/98d29a52-9606-c7a2-2204-fc13b6b5b65a.jpeg "スクリーンショット_2015_04_29_17_15.jpg")
お好きなところにプロジェクトを作って準備完了。

## frameworkを登録する
metaioSDKはSDKであるからして、ちゃんとプロジェクトに突っ込まないと動きません。
Xcodeで`General`を選択し、下の方の`Linked Frameworks and Libraries`にframeworkを登録します。
![metaiosample_xcodeproj.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/44c26837-12fe-56e4-7f4c-9b1d403e4eee.jpeg "metaiosample_xcodeproj.jpg")
![スクリーンショット_2015_04_29_17_39.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/94c089d1-1cbf-b742-f13c-014a33a99817.jpeg "スクリーンショット_2015_04_29_17_39.jpg")
これで **metaioSDKは** 登録できました。次は依存してるいろいろを追加していきます。
最終的にこんな感じになります。多分不必要なやつも混じってますけど、それはおいおい削っていくことにします（この記事では多分やりません）。
![metaiosample_xcodeproj.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/348a17bb-3bb9-1d52-182a-21b2cbf7f414.jpeg "metaiosample_xcodeproj.jpg")

## signatureを登録する
上でコピった`Signature`をXcodeに登録します。
が、これ多分ばれたらよろしくないやつなので、なんとか隠蔽する方法考えます。
よくわからないんですけど、とりあえずプロジェクトルートに`Settings`とかなんとか適当にディレクトリ切って、そこに`metaiosdk.xcconfig`と`metaiosdk.xcconfig.org`の二つのファイルを作り、そこに秘密にしておきたいものを突っ込みます。

```
$ mkdir Settings
$ echo "METAIO_LICENSE_STRING = yoursecretkey" > Settings/metaiosdk.xcconfig.org
$ cp Settings/metaiosdk.xcconfig.org Settings/metaiosdk.xcconfig
```

で、`metaiosdk.xcconfig`の方の値を上でコピった`Signature`を上書きします。
これをXcodeのツリーに適当にグループ作ってFinderからDnD。
こんな感じ。
![metaiosdk_xcconfig.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/c6f5e57f-8063-c590-28d9-61907cd85f2c.jpeg "metaiosdk_xcconfig.jpg")

次に、このxcconfigファイルをプロジェクトに読み込ませるように？　する。
プロジェクトを選択して、`Configuration`を選択、`Debug`と`Release`にxcconfigファイルを設定します。
![metaiosample_xcodeproj.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/37f19e2c-e7ca-a26c-3231-6b93d1278e24.jpeg "metaiosample_xcodeproj.jpg")

すると、`Build Settings`の下の方の`User-Defined`に`METAIO_LICENSE_STRING`が追加されてると思います。

続いて、左側のツリーの`metaiosample > Supporting Files`の`Info.plist`を開き、新しく項目を追加します。
キーは`MetaioLicenseString`、値は`$(METAIO_LICENSE_STRING)`。これで別ファイルに分離しつつ`Signature`を登録することができました。
あとは`.gitignore`に書いておくとかすればコミットされません。

# 開発
上記で準備が完了しました。ここからはチュートリアルを参考にしつつ、なんやかややっていきます。

## storyboard
metaiosdkのために、storyboardを変更します。
`Main.storyboard`を開き、左ツリーのViewをクリック、Delete。
続いて右下から`GLKit View`を探して選択し、StoryboardにDnD。
さらに右クリックし、`Referencing Outlets`の右の⚪︎をクリックして、DnD。
glkViewを選択して、また右クリックして追加されてることを確認します。

## import
さっさと次いきます。
ViewController.hを以下に変更します。

```Objective-C:ViewController.h
#import <metaioSDK/MetaioSDKViewController.h>

@interface ViewController : MetaioSDKViewController


@end
```

また、MetaioSDKはObjective-C++で書かれてるらしいので、ViewController.mの拡張子を.mmに変更しておきます。

## とりあえずここで確認
ここまで行けば、とりあえず動きます。
iPhoneをつなぎ、Runしてみると、カメラだけとりあえず起動します。
![2015-04-29_21_05_35.jpg](https://qiita-image-store.s3.amazonaws.com/0/14263/3f263036-1a1d-be2c-e99c-a94ef3f2cc37.jpeg "2015-04-29_21_05_35.jpg")


とりあえず今日はここら辺で。