今回は、これまでとは少々(実はかなり)毛色の違う話題として、ネットワークアクセスを扱います。ひと口にネットワークにアクセスするといってもいろいろな種類がありますが、今回はインターネット上のサーバーに接続し、そこからなんらかの情報を引き出してみます。現在のアプリの中では、最も一般的なネットワークアクセスの方法と言えるでしょう。
アクセス方法はともかくとして、インターネット上のサーバーから引き出せる情報にもいろいろな種類があります。今回は、その中からやはり一般的な「天気予報」の情報を選びました。その理由は、かなり簡単、かつ無償で情報を取得できるサイトが実在していること、また天気予報というのは、誰にとっても意味のある実用的な情報だからです。
これまでほとんど扱ってこなかったジャンルのプログラムになるということもあり、今回はできるだけ少ないコードで指定した地点の現在の天気予報に関する情報を引き出すところまでを試してみることにしましょう。取得した情報の表示機能はまだ実現せず、Swift Playgroundsのデバッグ機能を利用して情報を読むという、本当に最小限のものにします。
天気予報情報サイトを選ぶ
世の中には、天気予報情報を提供しているサイトなど、それこそ掃いて捨てるほどあるでしょう。それらの中から今回選んだのは、今やLINE株式会社の一部門となったlivedoorが提供する「Weather Hacks」(http://weather.livedoor.com/weather_hacks/webservice)というものです。
その理由は、まず誰でも無償で利用できること。利用にあたってユーザー登録などが一切不要であること。それでいて、全国142カ所の今日、明日、明後日の天気予報、予想気温に加え、都道府県別の天気概況の情報が得られ、少なくとも1日1回は更新されていること、などの有難い特徴を備えているからです。
無料で使えるサービスでも、ユーザー登録してAPIキーやアクセストークンを発行してもらって情報を取得するためには、毎回それらの識別情報を付けてアクセスしなければならないというタイプのものが多いのです。それだけでもだいぶハードルが高い感じがして、実際に試してみる前に面倒くさくなって止めてしまう人も多いでしょう。
Weather Hacksの場合、とりあえずウェブブラウザーのURL入力欄に地域のコードを含んだURLを打ち込むだけで、ひととおりの情報が得られるので、この上なく手軽です。
もちろん実際にはウェブブラウザーを使って天気予報を読むのではありません。それには、一種の暗号解読のようなスキルが必要となります。ここではSwift Playgrounds上で動作するプログラムによって、まず情報をリクエストし、そこから得られた情報を解析し、その中から必要な情報のみを日本語で読めるようにします。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ