Geo Linker
d3.jsで描画されたインタラクティブな地球儀と、Framer Motionによる写真アニメーションを通じて、国から国へと陸路で旅する体験を提供するWebアプリケーション。

リンク
使用技術
Next.js (App Router)React (React 19, Server Actions)TypeScriptTailwind CSS (v4)Framer Motiond3.js
背景にあった課題
主な課題は、d3.jsによるインタラクティブな地球儀の描画、Framer Motionを使った滑らかな写真アニメーション、陸路での到達可能性を判定するゲームロジック、これらすべてをNext.jsのApp Router上でパフォーマンス良く統合することでした。
自身の提案・解決策
ロジックを`useGameLogic`(ゲーム状態管理)と`useCountryData`(データ取得)というカスタムフックに厳密に分離しました。地図描画は`WorldMap.tsx`コンポーネントがd3.jsを用いて担当し、UIコンポーネント(`Button.tsx`, `CountryModal.tsx`)は`tailwind-variants`と`framer-motion`を活用して再利用性とデザイン性を高めました。写真はローカルと外部APIを組み合わせたハイブリッド方式で表示しています。
導入した結果や学び
ゲームのクリア後には、旅のルートをスライドショーで振り返ることができ、結果をSNS(X, LINE, Facebookなど)で共有する機能も実装しました。これにより、ユーザーはゲーム体験を他者と共有し、エンゲージメントを高めることができます。