"「Sync-Task for mine」はReact、TypeScript、Tailwind CSS を使用し、ローカルストレージでデータを永続化した「自分のためのTodoアプリ」です。"
タスクの「期限」を設定すると、その期限の30分前から期限時刻までの間を自動的に作業時間として計算し、ワンクリックでカレンダーに登録できます。
着想と経緯: 単なる提出締切の通知ではなく、「提出に向けて集中して取り組む時間」を能動的に作るという、行動習慣のデザインを目的にしています。
技術的な工夫: タスク作成画面から、日付操作ライブラリ(dayjs)を用いて、正確に開始時刻`(期限-30分)`を逆算し、GoogleカレンダーおよびOutlookカレンダーのURLフォーマットに合わせた時刻文字列を生成しています。
タスク分類の柔軟性を高めるために、「固定カテゴリ」と「可変タグ」の二重構造を採用しました。
着想と経緯: カテゴリ(自分が使用するため)は固定ですが、タスクの性質(重要度、種類)は流動的であるため、この二重分類が必要だと考えました。
技術的な工夫: タグ管理画面()を設け、タグ名と色を自由に設定・管理できるようにしました。タスク(Todo)にはタグIDの配列を持たせることで、データの正規化と柔軟なフィルタリングを可能にしています。
カテゴリの最適化: アプリのカテゴリを私個人の学習・作業環境(**mine**na)に合わせて設定することで、汎用性を捨てて使用感の最適化を追求しました。
レスポンシブデザイン: モバイルでの利用を最優先に考え、素早いタスク作成・編集が外出先でも行えるよう、全てのコンポーネントをレスポンシブに対応させました。
項目 | 詳細 |
|---|---|
主要技術 | React (Hooks, Functional Components), TypeScript |
スタイリング | Tailwind CSS (レスポンシブ対応) |
ライブラリ | dayjs (日付操作), uuid (ID生成) |
データ永続化 | LocalStorage (ブラウザストレージ) |