- Build tool: Vite
- UI Framework: React
- Styling: Vanilla Extract
- Routing: React Router
- Data fetching: TanStack Query
- Icons: Lucide
- Testing:
-
環境変数の設定
.env.example
の内容を参考に、WeatherAPI の Key を設定した.env
ファイルを作成してください -
依存関係のインストール
npm run install
-
開発サーバーの起動
npm run dev
or
[!NOTE] Vercel Functionを使用している為、APIを含めた開発サーバーの起動は
vercel dev
で行う必要がありますvercel -A vercel.local.json dev
-
Vitest による単体テストの実行
npm run test
-
Storybook の起動
npm run storybook
-
Storybookによるコンポーネントテストの実行
npm run storybook:test
- 約24時間
- Vanilla Extract → TailwindCSS
- Vitest → Jest
- Vercel Edge Function → 特になし
- ルーティング機能の為
- TanStack Routerも選択肢にあったが、使ったことがなく他にも初見の技術が複数あり、時間のことも考え使ったことがあるこちらを選択
- データキャッシュの為
- SWRも選択肢にあったが...(以下React Routerと同じ理由)
- スタイリングはTailwind CSSを一番使い慣れていたが、禁止とのことでViteでデフォルトで使えるmodule CSSを使おうとしたが、TypeScriptと相性が良く描きごごちが似てそうで、且つゼロランタイムでEmotionCSSよりはパフォーマンス面で優位性がありそうだったので選択
基本的にやることが明確だが手作業でやるのが面倒なことを丸投げしました。 課題の中の具体的なケースでいうと、天気Codeに応じてアイコンや背景色を変える仕様にしたかったので、公式のcodeと天気の組み合わせのデータから晴れ、曇り、雨、雪に応じた天気の状態をまとめる為に使いました。(https://github.com/mdkk11/coding-test-weather-app/blob/main/src/features/weather/const/condition.ts) 他にも型情報を自分で作るのが面倒だったので、APIレスポンスをコピぺして作成してもらいました。