3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

学習記録アプリを作って学んだこと・反省点

3
Posted at

はじめに

Reactの学習で、学習記録アプリを作りました。
フロントだけでなく、データベース・テスト・CI/CD・デプロイまで一通り触れたので振り返ります。

デモ: https://study-record-2a28b.web.app

使った技術

React / Vite / Supabase / Vitest / React Testing Library / Firebase / GitHub Actions

学んだこと

useState で状態を管理する

入力値・記録一覧・エラー・ローディングなど、画面の状態はすべてuseStateで管理した。
値が変わると画面が再描画される、というReactの基本を体感できた。

useEffect で初回読み込み時にデータ取得

ページを開いたときに一度だけ Supabase からデータを取得する処理をuseEffectで書いた。
isLoadingをtrue→ 取得→falseと切り替えて、ローディング表示も出し分けた。

Supabase の戻り値は配列ではなくオブジェクト

select()の戻り値は{ data, error }を含むオブジェクト。
そのままmapしてrecords.map is not a functionで何度かハマった。

CI/CD は push するだけで本番が更新される

GitHub Actions で「テスト → ビルド → デプロイ」を自動化。テストが通らなければデプロイされない構成にできた。一度組んでしまえば、あとは push するだけ。

反省点

  • コミットがこまめにできていなかった:必要なファイルが 漏れておりCIで何度もつまずいた。
  • 環境差を意識していなかった:ローカルとCIの差でnpm ciが失敗した。環境はそろえる意識が必要。
  • Supabaseの無料プランの仕様を知らなかった:一定期間アクセスがないとプロジェクトが一時停止し、アプリが表示されなくなって焦った。

おわりに

小さなアプリだが、フロントからデプロイ・CI/CD まで通しで作ることでができた。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?