このページの本文へ

Swift Playgroundsで学ぶiOSプログラミング第51回

ウェブサーバーからJSONを受け取る

最低限のコードで天気概況を表示するプログラム

2017年08月21日 17時00分更新

文● 柴田文彦 編集●吉田ヒロ

  • この記事をはてなブックマークに追加
  • 本文印刷

 今回は、これまでとは少々(実はかなり)毛色の違う話題として、ネットワークアクセスを扱います。ひと口にネットワークにアクセスするといってもいろいろな種類がありますが、今回はインターネット上のサーバーに接続し、そこからなんらかの情報を引き出してみます。現在のアプリの中では、最も一般的なネットワークアクセスの方法と言えるでしょう。

 アクセス方法はともかくとして、インターネット上のサーバーから引き出せる情報にもいろいろな種類があります。今回は、その中からやはり一般的な「天気予報」の情報を選びました。その理由は、かなり簡単、かつ無償で情報を取得できるサイトが実在していること、また天気予報というのは、誰にとっても意味のある実用的な情報だからです。

 これまでほとんど扱ってこなかったジャンルのプログラムになるということもあり、今回はできるだけ少ないコードで指定した地点の現在の天気予報に関する情報を引き出すところまでを試してみることにしましょう。取得した情報の表示機能はまだ実現せず、Swift Playgroundsのデバッグ機能を利用して情報を読むという、本当に最小限のものにします。

天気予報情報サイトを選ぶ

 世の中には、天気予報情報を提供しているサイトなど、それこそ掃いて捨てるほどあるでしょう。それらの中から今回選んだのは、今やLINE株式会社の一部門となったlivedoorが提供する「Weather Hacks」(http://weather.livedoor.com/weather_hacks/webservice)というものです。

無料、かつ手軽に使える天気予報情報のサービスとして今回選んだのは「Wather Hacks」です。全国142カ所の、今日、明日、明後日の天気予報、予想気温などの情報が簡単に得られます

 その理由は、まず誰でも無償で利用できること。利用にあたってユーザー登録などが一切不要であること。それでいて、全国142カ所の今日、明日、明後日の天気予報、予想気温に加え、都道府県別の天気概況の情報が得られ、少なくとも1日1回は更新されていること、などの有難い特徴を備えているからです。

 無料で使えるサービスでも、ユーザー登録してAPIキーやアクセストークンを発行してもらって情報を取得するためには、毎回それらの識別情報を付けてアクセスしなければならないというタイプのものが多いのです。それだけでもだいぶハードルが高い感じがして、実際に試してみる前に面倒くさくなって止めてしまう人も多いでしょう。

 Weather Hacksの場合、とりあえずウェブブラウザーのURL入力欄に地域のコードを含んだURLを打ち込むだけで、ひととおりの情報が得られるので、この上なく手軽です。

Wather Hacksから返ってくる天気予報の情報はJSON形式になっています。もともとはJavaScriptのオブジェクトを扱うためのものですが、今回はこれをSwiftで解釈します

 もちろん実際にはウェブブラウザーを使って天気予報を読むのではありません。それには、一種の暗号解読のようなスキルが必要となります。ここではSwift Playgrounds上で動作するプログラムによって、まず情報をリクエストし、そこから得られた情報を解析し、その中から必要な情報のみを日本語で読めるようにします。

この連載の記事

週間ランキングTOP5

ASCII倶楽部会員によく見られてる記事はコレだ!

ASCII倶楽部の新着記事

会員専用動画の紹介も!