6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【React × TypeScript】デジタル名刺アプリをつくってみた

6
Last updated at Posted at 2026-06-13

はじめに

自分のスキルや情報を共有できるデジタル名刺アプリを開発しました。
その感想を書いていきます。

作成したアプリの概要

今回作成したのは、個人のプロフィールやスキルセットをオンラインで簡単に共有できる「デジタル名刺アプリ」です。主な機能は以下の通りです。

新規名刺登録ページ

ユーザー名、自己紹介、扱える技術スタック、SNSリンク(GitHub, X, Qiita)などを登録し、自分だけのデジタル名刺を作成できます。
image.png

名刺検索ページ

トップページからIDを入力して、特定の名刺を検索できます。

image.png

検索された名刺

各ユーザーに割り当てられたユニークなID(URL)にアクセスすることで、その人の名刺を閲覧できます。
image.png

使用技術スタック

モダンなフロントエンド開発の技術を中心に構築しました。

image.png

カテゴリ 技術
フロントエンド React 19 / TypeScript / Vite
UIフレームワーク Chakra UI v3
ルーティング React Router
フォーム管理 react-hook-form
バックエンド/DB Supabase
テスト Vitest / React Testing Library
CI/CD GitHub Actions
ホスティング Firebase Hosting

何をやったのか

開発の過程で、以下の実装を行いました。

  1. プロジェクトセットアップ: Vite + React + TypeScript の環境を構築しました。ESLintによる静的解析も導入し、コードの品質を保つようにしました。
  2. UIコンポーネント設計: Chakra UI を利用して、デザインシステムを構築しました。
  3. ページ作成とルーティング: TopPageCardPageRegisterCardPage の3つの主要ページを作成し、React Router で各ページへのルーティングを実装しました。
  4. データベース連携: Supabase をバックエンドとして採用し、ユーザー情報やスキル情報を管理するテーブル(users, skills, user_skill)を設計しました。supabaseClient.tssupabaseFunctions.ts にSupabaseとの通信処理をまとめています。
  5. 名刺登録機能の実装: React Hook Form を用いて、入力フォームとバリデーションを効率的に実装しました。
  6. テストの実装: Vitest と React Testing Library を用いて、各ページコンポーネントの単体テストを作成し、品質保証を行いました。
  7. デプロイ: Firebase Hosting を利用して、アプリケーションをデプロイしました。firebase.json にSPAとして動作させるための設定を記述しています。

大変だったこと・気づき

エラーの解消や実装のヒントを得るために生成AIも活用しましたが、最初からAIに聞くではなく、なるべく公式ドキュメントや、記事を見てエラーを解消していきました。その分時間はかかりましたが、今までAIを使って理解したつもりになっていた実装部分もAIを使わずに実装をしないことで、なぜこうすべきかの理解が深まりました
また、テストコードで最初は何をどこまでテストすれば良いのかよく分かりませんでしたが、やっていく中でだいぶ理解度も上がってきたと思います。

おわりに

コードでの技術部分の理解は深まりました。今後は、実装を始める前にコンポーネント構造やデータフローなどの設計部分もしっかりと作り込み、「より改修しやすく、将来的にスケールしやすい綺麗な設計」を常に意識できるエンジニアを目指して、開発を続けていきます!

参考

  • react-router-domドキュメント

  • ChakraUI 公式ドキュメント

  • supabase公式ドキュメント

  • ts-node公式

  • その他参考記事

JISOUのメンバー募集中!

プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてくださ!
▼▼▼

6
3
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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?