サーバー通信−1:APIを引っ張ってみる
アプリ計測のためには、サーバーにログを送る必要があります。というわけで、iOSアプリのサーバー通信について学習します。
参考サイト
[iOS 8/Xcode 6] SwiftではじめるiOS開発 #3 [API取得&JSONパース] | Developers.IO
1)APIを引っ張る
API。。プログラマー的な響きがします。よく会社で耳にしますが、触ったことはありません。┣¨ッキン(*゚д゚))
API 【 Application 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はオブジェクトと配列の組み合わせで構造化されたデータを表現 (ソース)
{"response":{"prefecture":["北海道","青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県","新潟県","富山県","石川県","福井県","山梨県","長野県","岐阜県","静岡県","愛知県","三重県","滋賀県","京都府","大阪府","兵庫県","奈良県","和歌山県","鳥取県","島根県","岡山県","広島県","山口県","徳島県","香川県","愛媛県","高知県","福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県","沖縄県"]}}
この形はそのまま覚えてしまったほうが良さそうですね。パースするときのオプション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というものが理解できた。まだまだ、知らない言葉がどんどんでてくるので、日々勉強である。次は、サーバーにアップロードする方法を学びたい。