Weatherapp — シンプルな天気表示アプリ

Web

概要

Neo-Kai-Polytech/Weatherapp は、Open-Meteo のパブリック API を利用して天気情報を取得し、ブラウザ上で表示する小さなサンプルアプリです。指定された緯度・経度に対して現在の気温(temperature_2m)、降水量(rain)、相対湿度(relative_humidity_2m)と、日次の weather_code をクエリしており、タイムゾーンは Pacific/Auckland に固定されています。認証不要の API を直接 fetch して JSON を扱うため、フロントエンド学習や API 連携のサンプルとして役立ちます。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 13
  • ファイル数: 3
  • メインの言語: JavaScript

主な特徴

  • Open-Meteo の無料 API を利用し、認証不要で気象データを取得
  • 現在の気温、降水量、相対湿度と日次の天気コードを取得して表示
  • シンプルなファイル構成で学習・拡張しやすい
  • タイムゾーン指定を行い、現地時刻でのデータ取得に対応

技術的なポイント

このリポジトリはフロントエンド中心の軽量実装で、主に以下の技術的ポイントが挙げられます。

  • API の利用方法: README からの抜粋にある通り、API エンドポイントは Open-Meteo の forecast エンドポイントを利用しています。クエリパラメータには latitude/longitude、daily=weather_code、current=temperature_2m,rain,relative_humidity_2m、timezone=Pacific%2FAuckland が含まれており、必要な気象要素だけを絞って取得する設計です。Open-Meteo はキー不要で直接アクセスできるため、サーバーサイドを挟まずにクライアントから fetch しても利用可能です。

  • データ設計とパース: レスポンスは JSON で返ってきます。current のオブジェクトや daily の配列(weather codes / 日付配列)を DOM に流し込み表示する処理が中心となります。weather_code は WMO(世界気象機関)に基づく数値コードのため、UI 側でコード→アイコン/テキストへのマッピングが必要です。

  • タイムゾーンと座標の扱い: timezone パラメータを指定している点は重要です。これにより API が返す時刻が指定タイムゾーン基準となり、表示側での変換やずれを避けられます。サンプルでは Pacific/Auckland を指定しており、特定地域向けのデモに適します。将来的にはブラウザの Geolocation API を使って動的に座標を取得することで、ユーザー地域に合わせた表示が可能です。

  • 実装上の注意点: クライアントで直接 API を叩く場合、CORS ポリシーやレート制限、オフライン時の挙動などに注意が必要です。Open-Meteo はパブリック API ですが、短時間に大量リクエストを投げると制限に掛かる可能性があります。エラーハンドリング(ネットワークエラー、API エラー、応答の欠落)やローディング UI を用意すると UX が向上します。

  • 拡張ポイント: weather_code のアイコン対応、単位切替(℃/℉)、多言語対応、キャッシュ(Service Worker)やオフライン表示、レスポンシブデザイン、テスト(ユニット/統合)や CI 導入などが有用です。API に APIキーが不要な点は学習用途として利点ですが、本番用途ではプロキシサーバーを挟んでリクエスト管理する運用も検討できます。

(約700字相当)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • WeatherApp: dir

WeatherApp ディレクトリ内には HTML/CSS/JavaScript の実装がまとまっている想定です(ファイル数が少ないため、単一ページアプリ風のシンプルな構成)。

まとめ

シンプルで学習向け、Open-Meteo を使ったフロントエンド天気アプリの良い出発点です(50字程度)。

リポジトリ情報:

READMEの抜粋: The api we are using api =https://api.open-meteo.com/v1/forecast?latitude=45.8795&longitude=170.5006&daily=weather_code&current=temperature_2m,rain,relative_humidity_2m&timezone=Pacific%2FAuckland