個人開発で進めているプロジェクト OS Yamato には、ちょっと変わったミニアプリが含まれています。それが「花子天気(hanaco Weather)」。
Links Try it: https://hanaco875.com
これは、ユーザーが「そのときの天気」「気温」「時間帯」に結びつけたメッセージを投稿できる 詩的な天気SNS です。
アプリを開き、天気情報取得、そしてボタンを押すと、今の天気にマッチした他のユーザーのメッセージが表示され、まるで世界のどこかの誰かと空を見上げているような感覚になります。
例えば...
入社後に失敗続きで、早朝に輝く桜から慰められ時の感情。
暑い夏の午後、部活後に友人と炭酸飲料を飲んだ時の感情。
秋の夕暮れ、好きな人と落ち葉を数えながら歩いた公園で味わう感情。
暖炉から眺める純白の雪を眺めながら、本を開く時に抱く感情。
このように天気と感情はくっ付かず離れずの関係性にあると、開発者は考えています。
iOSの花子天気は配信していますが、OS Yamato開発にあたって、OS Yamatoで動くように修正していきました。
技術的な仕組み
1. OpenWeatherとの連携 ☀️
アプリが起動されると、OpenWeatherMap APIを使って現在の天気を取得します。OpenWeatherMapはメールアドレスで無料サインアップ。call数が増えるなら、有料プランを検討。現時点の花子天気では無料範囲内。
取得される情報は以下の通り:
• main: 天気の種別(例:Clear, Rainy, Cloudy など)
• description: 詳細な天気描写(例:light rain)
• temp: 気温(摂氏)
• timeOfDay: 時間帯(hourベース)
• lang: 表示言語(例:ja, en, es, zh, fr, id)
2. メッセージとのマッチングロジック
以下の条件で、過去の投稿からマッチングされたメッセージが表示されます:
• 天気: mainカテゴリが一致(例:Rainy)
• 気温: ±3℃の範囲
• 時間帯: ±1.5時間の範囲
• 言語: 表示中の言語と一致
• 除外: ブロックされたユーザーは非表示
また、iOSアプリからのデータもGraphQL経由で取得され、VueとAWS Amplifyの統合によって、最終的に統一的なUIに描画されます。
今後コメントが増えていくと予想し、気温や時間帯、そして追加の条件をつけてゆけばさらに面白くなると思っています。
3使用スタック(抜粋)
フロントエンド: Vue 3 (Composition API)
バックエンド: AWS Amplify(GraphQL, Cognito)
天気API: OpenWeatherMap
マルチ言語対応: ja, en, es, zh, fr, id
4🌸 使用例(例: 東京・朝9時・曇り・18℃)
現在の天気: Cloudy / 18℃
表示されるメッセージ:
→ 曇った朝に誰かが書いたポエム(例:スペイン語、英語、日本語)
→ 画像付きの投稿や、時間帯・気温が似た日のつぶやき
🔗 プロジェクト情報
• 試してみる:
https://hanaco875.com
メールアドレスで簡単にサインアップ!!
• ソースコード: GitHub - osyamato/os-yamato
https://github.com/osyamato/os-yamato
🌱 OS Yamato / 花子天気は オープンソース です。
技術や思想に共鳴する方は、気軽に触れてみてください。
PR・Issue・コメントも大歓迎です。
