見出し画像

趣味としての個人開発・Next.js & Leafletを使った「日本の地震情報」

個人開発した「日本の地震情報」というサービスのご紹介です。

サービス概要

日本で発生した地震の情報を閲覧・検索できるサービスです。

主な機能と特徴

  • 地震の発生日時、最大震度、震源、マグニチュード、深さを一覧表示

  • 震度別に観測点を一覧表示

  • 日本地図上に震央をマッピング

  • 最大震度、震源をキーにしたフィルタリング

  • ユーザー現在地の有感地震をフィルタリング

  • 過去の地震情報の検索機能

  • Googleニュース「地震関連」最新記事の一覧表示

  • クールなダークモード搭載

  • レスポンシブル対応

画面

PC画面 地震一覧
スマホ画面 地震一覧
PC画面 地図全体表示

地震一覧のデータをクリックあるいはタップすることで観測点の震度が地図に表示されます。

PC画面 地図観測点表示
スマホ画面 地図観測点表示
PC画面 観測点一覧

スマホでは、地図画面下部の「▲観測点一覧」ボタンをタップすることで表示されます。

スマホ画面 観測点一覧

PC ではヘッダーの「地震検索」をクリックすることで検索条件を設定するページに移動します。

PC画面 検索設定

スマホでは右上のメニューアイコンを開いて「地震検索」をタップすることで検索条件を設定するページに移動します。

地震情報の取得に関して

P2P地震情報 JSON API v2「気象庁 地震情報・津波予報 JSON API」を利用しています。こちらは気象庁の情報を利用しています。素晴らしいAPI を提供していただき、ありがとうございます。

情報の即時性に関して

トップページは ISRで60秒ごとに revalidate していますが、APIの仕様もあり、データに即時性はありません。今起きた地震の情報は、気象庁のサイトを参照ください。

使用している主な技術スタックについて

  • TypeScript

  • Next.js 12

  • Chakra UI

  • React Leaflet

  • zustand

デプロイ先はVercel です。

あとがき

このサービスは、未だChatGPTがこの世界に登場する以前に作成したものになります。

素人の私が一からプログラミングしたものであり、完成するまでに、えらく時間がかかりました。

リリースしたのは、今からおよそ1年半前です。そして現在に至りますが、

利用ユーザーは常に「私ひとり」です😭

かといって後悔があるかというと、そんなものはどこにもありません。

私😗は文章があまり得意ではないので、言いたいことはChatGPT先生🤖に代弁してもらいましょう。


私😗:「プログラミングにおいては費用対効果を考えることが重要である」という内容の文章を作ってみて。

ChatGPT🤖:プログラミングにおいては、費用対効果を考慮することが極めて重要です。

ソフトウェア開発プロジェクトでは、限られた時間や予算の中で最大の成果を上げることが求められます。そのため、使用する技術やツールの選定、開発プロセスの最適化、リソースの配分など、さまざまな面で費用対効果を評価する必要があります。

例えば、新しいフレームワークの導入が開発速度を向上させる一方で、学習コストやメンテナンスの負担が増える可能性があります。こうしたバランスを慎重に検討することで、プロジェクト全体の成功率を高め、無駄なコストを抑えることができます。さらに、費用対効果を意識したアプローチは、長期的な視点での持続可能な開発にも寄与し、企業やチームの競争力を維持・向上させる鍵となります。


私😗:そういう費用対効果に縛られない「趣味の」プログラミングの楽しさについて、文章を作ってみて。

ChatGPT🤖:趣味としてのプログラミングの楽しさ

プログラミングは単なる技術やスキルの習得にとどまらず、創造性や自己表現の手段としても非常に魅力的な趣味です。費用対効果や効率性に囚われず、自分の興味や好奇心に従って自由にコードを書き、アイデアを形にする過程には大きな喜びがあります。

創造力を発揮する場としてのプログラミング

趣味のプログラミングでは、ユーザーのニーズや市場のトレンドに左右されることなく、自分自身の興味やアイデアを追求することができます。例えば、オリジナルのゲームを作成したり、日常生活を便利にするツールを開発したりすることで、創造力を存分に発揮できます。このような自由な環境では、失敗を恐れずに新しい試みに挑戦できるため、学びと成長の機会が豊富にあります。

学びと自己成長の喜び

プログラミングは常に進化する分野であり、新しい言語やフレームワーク、技術が次々と登場します。趣味としてプログラミングを続けることで、自然と最新の知識やスキルを習得することができます。この継続的な学びのプロセス自体が大きな楽しみとなり、自分の成長を実感する喜びを味わえます。

コミュニティとのつながり

趣味のプログラミングを通じて、同じ興味を持つ人々との交流が広がります。オンラインフォーラムやオープンソースプロジェクトへの参加、ハッカソンへの参加など、さまざまな形でコミュニティに関わることで、新たな友人や協力者を得ることができます。こうしたつながりは、モチベーションの維持や新しいアイデアの発掘にも繋がります。

自己表現と達成感

自分で設計し、コーディングしたプロジェクトが形になり、実際に動作する瞬間は大きな達成感をもたらします。自分のアイデアが具現化される過程は、アーティストが作品を完成させる喜びに似ており、自己表現の一環として非常に充実感があります。また、他人に自分の作品を見てもらい、フィードバックを受けることでさらなる満足感を得ることができます。

まとめ

趣味としてのプログラミングは、費用対効果や効率性に縛られない自由な活動であり、創造力の発揮、学びと成長、コミュニティとのつながり、自己表現と達成感といった多くの楽しさを提供します。技術的な側面だけでなく、個人の内面的な充実感を追求する手段として、プログラミングは非常に魅力的な趣味と言えるでしょう。

私😗:🥳🥰👍💯🎉🔥🌟👏🎊


いいなと思ったら応援しよう!