Swift2.0とストーリーボードで自分のアプリにAdmobを導入してみた。
アプリ情報
まずは、開発中のアプリについて。
- ターゲットOS:iOS8.4
- Tab Bar Controllerを保有
- 基本的にTable Viewで情報を表示
ざっくりというとこんな感じです。
ADMOBの導入
akira-watson.com
こちらの情報を元に導入を進めました。ただ、僕の場合はストーリーボードでViewを作成しているので、Viewの作り方やソースコードはこちらを参考にしました。developers.google.com
mzgkworks.hateblo.jp
公式サイトはObjective-Cで記載されていましたので、2つ目のサイトを参考にコードを書きました。
ただ、アプリ起動後、広告を表示しているViewに行くとアプリが落ちました。
「GoogleMobileAds does not contain bitcode・・・」的なことが書いてありましたので、ぐぐってみたところ、こちらのサイトに書いてある通りにすると解決できました。
Cordovaめも: GoogleMobileAds does not contain bitcode
JSONの処理に少し時間がかかるのでバックグラウンド処理にしてみた。
こちらの記事を参考にして、下記のようにJSONの処理を埋め込みました。
//バックグラウンド処理 let qualityOfServiceClass = DISPATCH_QUEUE_PRIORITY_DEFAULT let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0) dispatch_async(backgroundQueue, { // Backgroundで行いたい重い処理はここ //JSONの取得処理を行う dispatch_async(dispatch_get_main_queue(), { // 処理が終わった後UIスレッドでやりたいことはここ //内容の表示やボタンが押せるようになるなど }) })
楽天ブックス書籍検索APIをSwift2.0で使ってみた with SwiftyJSON
楽天API
まずは楽天APIから。本当はAmazonを使いたかったんですがiOSアプリでは利用できないようなので、楽天を利用することにしました。webservice.rakuten.co.jp
利用には会員登録が必要だったので、まずは新規会員登録を済ませて・・・。
「アプリID」の発行をクリック。アプリ名とアプリURLの入力を求められた。アプリURLなんて、今デバッグ開発中だからそんなもんはない。適当にこのブログのURLをぶちこんどいたら、無事突破。アプリIDゲット。
リクエストURLの作成
僕が想定している使い方として、書籍のタイトルと著者名を入力したら購入のURLがでてくるというものでしたので、ひとまずどんな感じのURLでリクエストして、どんなJSONが返ってくるのかを見るために下記APIテストフォームで確認することに。
楽天ウェブサービス(RAKUTEN WEBSERVICE) : APIテストフォーム
ふむふむ、「https://app.rakuten.co.jp/services/api/BooksBook/Search/20130522?format=json」この部分は固定で、&区切りで「title=」とか「author=」をつなげていけばいいわけか。しかし、タイトル文字列がよくわからない%がたくさん入っている文字列になっている。上記URLのタイトルのところにマウスオーバーすると、「文字列をUTF8でURLエンコーディングする」とかなんとか書いてある。なるほど、なんとなくわかった。URLエンコーディングの方法を調べてみると、発見。qiita.com
こちらを参考に検索文字列をエンコードしたらそれっぽいリクエストURLができた。
JSONの処理
SwiftでJSONを扱うには、SwiftyJSONを使うと良いらしい。github.com
ダウンロードしてきて、SwiftyJSON.swiftのファイルを利用したい自分のプロジェクトにコピーするだけで使えるようになりました。簡単。
使い方を参考にしたのはこのサイト。noumenon-th.net
なるほど、たしかに簡単に扱える。デバッグしつつやっていけば詰まることはなさそう。これは楽しい。