マーケターのプログラミング日記

東京、シンガポールを経てシリコンバレーで働く、マーケター。英語、プログラミング、データ分析は次世代マーケターの必須スキルだと信じて進む。

サーバー通信−1:APIを引っ張ってみる

アプリ計測のためには、サーバーにログを送る必要があります。というわけで、iOSアプリのサーバー通信について学習します。

参考サイト

[iOS 8/Xcode 6] SwiftではじめるiOS開発 #3 [API取得&JSONパース] | Developers.IO

 

1)APIを引っ張る

API。。プログラマー的な響きがします。よく会社で耳にしますが、触ったことはありません。┣¨ッキン(*゚д゚))

APIApplication Programming Interface

あるコンピュータプログラム(ソフトウェア)の機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約のこと。 (ソース

コード

  • NSURL: サーバーにあるコンテンツの場所を表す
  • NSURLRequest: object representing a URL load request in a manner independent of protocol and URL scheme
  • NSURLConnection: object lets you load the contents of a URL by providing a URL request object. The interface for NSURLConnection is sparse, providing only the controls to start and cancel asynchronous loads of a URL request. 

 letでconnectionを定数定義してる行は必要なさそうですね。

2)表示させる
---Step.1: JSONをpurseする---

都道府県API を叩くとJSON形式でデータが入っているので、これをSwiftで扱えるようにパースする必要がある。パース。。プログラマー用語な響き満載ですが、以下の意味です。(もちろん知らなかった⭐︎)

JSON。。サーバーにデータを格納してAPIとして引っ張るときのひとつのデータの記述方法です。(もちろん知らなかった⭐︎)

パースparse

プログラムのソースコードやXML文書など、一定の文法に従って記述された複雑な構造のテキス文書を解析し、プログラムで扱えるようなデータ構造の集合体に変換することなどを指す。
 以下の表記をJSONというそうな。
JSONはオブジェクトと配列の組み合わせで構造化されたデータを表現 (ソース)

{"response":{"prefecture":["北海道","青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県","新潟県","富山県","石川県","福井県","山梨県","長野県","岐阜県","静岡県","愛知県","三重県","滋賀県","京都府","大阪府","兵庫県","奈良県","和歌山県","鳥取県","島根県","岡山県","広島県","山口県","徳島県","香川県","愛媛県","高知県","福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県","沖縄県"]}}

コード
let json:NSDictionary = NSJSONSerialization.JSONObjectWithData(data,
options: NSJSONReadingOptions.AllowFragments, error: nil) as NSDictionary

この形はそのまま覚えてしまったほうが良さそうですね。パースするときのオプションNSJSONReadingOptionsは以下の3つがあります。

  • NSJSONReadingOptions.MutableContainers: 返ってくる全てのObjectがMutable
  • NSJSONReadingOptions.MutableLeaves: 返ってくるObjectのうち、String属性のものがMutableなNSMutableStringとなる
  • NSJSONReadingOptions.AllowFragments: 返ってくる全てのObjectがImutable

---Step.2: NSDictionaryからNSArrayクラスに型を変える---

ここでは、ResponseというKeyの中に、PrefectureというKeyがあり、その中に都道府県が入っています。

NSDictionary: KeyとObjectがペアで格納されていて、Keyは、value.

"A key-value pair within a dictionary is called an entry. Each entry consists of one object that represents the key and a second object that is that key’s value."

NSArray: KeyとObjectがペアで格納されていて、Keyは、0から順番に番号が振られる.

 

 

雑感

APIというものが理解できた。まだまだ、知らない言葉がどんどんでてくるので、日々勉強である。次は、サーバーにアップロードする方法を学びたい。