1
/
5

Android Studioで天気情報を表示するアプリを作ってみた

はじめに

kuwa_38です。以前Android Studioを使ってみたので、その続きとして天気情報を表示するアプリを実装してみました。簡単に実装できるかと思いきや、AndroidではAPI接続に非同期処理(AsyncTask
)を用いる必要があるらしく苦戦しました。この記事では今回苦戦した非同期処理も含め、天気情報を表示するアプリについて、実装に必要なこと、実装したコードを記載します。

前回実装した処理

今回は下記の実装に付け加える形で実装したため記載しておきます。

Android Studioを使ってHello Worldをやってみた

  • 初期画面の表示
  • ボタンを押すとテキストが変わる


今回実装した処理

  • ボタンを押すとその日の大阪の天気が表示される


利用したAPI

Weather Hacksを利用させて頂きました。GETでエンドポイントにアクセスすることで、パラメータcity
で設定した都市の天気をJSONで返してくれます(因みに270000
は大阪です)。

補足:jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【初級編】

Androidのバージョンに伴う注意点

それでは実装、といきたいところですが、先に私がハマった注意点について述べておきます。

実装概要

コードなどは次の節に記述します。この節では実装すべきことについて大まかに述べます。

※ 今回は実機デバックを対象とします(エミュレータを使用する場合は、エミュレータwifi設定などが必要です)。

ネット接続を許可する

  • AndroidManifest.xmlに下記を追記

ボタンを押すと特定の処理を実行する

  • 前回の記事を参照ください

APIサーバに接続する

  1. AsyncTask
    を継承するクラス(今回はAsyncHttpRequest
    というクラス名にしました)を作成する
  2. 作成したクラス内にdoInBackground
    (非同期で行いたい処理を記述する)メソッドを実装する
  3. メインスレッド(MainActivity.java
    )で1のクラスをインスタンス化し、execute
    メソッドを呼び出す
    doInBackground
    が呼び出される

受け取ったJSONを加工する

  • 受け取った文字列をJSONObjectでパースし、天気情報を取り出します

天気情報を表示する

  • AsyncTask
    を継承するクラスでonPostExecute
    (非同期処理が終わった後に実行される)メソッドを実装し、メインスレッドのラベルを変更する

実装例

下記にMainActivity.java
AsyncHttpRequest.java
(AsyncTask
を継承するクラス)を載せますので、実装してみたい方は参考にして下さい。

AndroidManifest.xml
は1行追記したのみですので載せていません

MainActivity.java

AsyncHttpRequest


おわりに

本記事ではAndroid Studioを使い、天気情報を表示するAndroidアプリの実装方法を紹介しました。まだまだ実用には遠いクオリティですが、非同期処理やjqコマンドなど知らなかったことを学ぶいい機会になりました。自分の学習目的で始めた部分が大きいですが、Androidアプリ開発の初心者や非同期処理の実装で困っている方の手助けになれば幸いです。

株式会社ラクスでは一緒に働く仲間を募集しています
今週のランキング
株式会社ラクスからお誘い
この話題に共感したら、メンバーと話してみませんか?