ポジティブ丸メガネ

3年目エンジニアです。

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

まとめ

Androidアプリを作成している際もAdmobを導入したことがあったのですが、現在はiOSのほうが導入が楽に感じましたね。それは僕が成長したのか、それとも導入が容易になっているのか。前者を期待したいところです。

結局自分で大したことは書いていませんが、上記のサイトをすべて参考にすれば、簡単に導入できましたよ、という話。

JSONの処理に少し時間がかかるのでバックグラウンド処理にしてみた。

kimihiro-n.appspot.com

こちらの記事を参考にして、下記のように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の処理

SwiftJSONを扱うには、SwiftyJSONを使うと良いらしい。github.com
ダウンロードしてきて、SwiftyJSON.swiftのファイルを利用したい自分のプロジェクトにコピーするだけで使えるようになりました。簡単。

使い方を参考にしたのはこのサイト。noumenon-th.net
なるほど、たしかに簡単に扱える。デバッグしつつやっていけば詰まることはなさそう。これは楽しい。

まとめ

楽天APIは簡単に使えるし、SwiftyJSONは神がかって簡単に使えて最高でした。何か質問があればコメントください。