私は、自分好みのタスク管理ツールが欲しいと思い、個人開発でタスク管理ツールを開発しています。
今回は、そのアプリに関する話やその経験を通して得た学びを記事にしたいと思います。
目次
作成したアプリ
今回作成したアプリは、タスクの追加・確認のサポートとタイマー機能がついているアプリです。
私は普段、Notion を使ってタスク管理を行なっています。
Notion でデータベース機能を使用していますが、基本 PC を用いて操作をしています。
モバイルアプリもありますが、個人的には簡単にタスクを追加するという点では少しハードルがあると感じています。(個人差あります。)
そこで、タスクを追加したい時にサッと追加でき、また、今日のタスクもスマホでサッと確認したいという思いから、Notion API を使用して、スマホからの操作をサポートできるアプリの開発を始めました。
また、私は何か作業をする時は基本ポモドーロテクニックを使用するため、アプリの中にポモドーロタイマー機能も付けました。
以下、このアプリを通してできることです。
- Notion の DB に素早くデータの追加
- Notion の DB で、Date が今日になっているデータの確認
- ポモドーロタイマー
- ポモドーロの時間と内容のログが Google Calendar に残る
使用技術
このアプリで使用している技術は以下の通りです。
- Next.js
- Chakra UI
- Recoil
- Firebase (Authentication, firesotre)
- Notion API, Google Calendar API
- Vercel
- PWA
このアプリは基本スマートフォンから操作したいので、モバイルネイティブアプリの開発の方が良かったかもしれませんが、自分のスキルスタックと開発スピードを鑑みて、Web で作り、PWA 化することで、スマートフォンからの操作を違和感なく行える様にしました。
こだわりポイント
創っていく中で、ポモドーロタイマーの機能を共存させたのがすごく良かったと感じています。
ポモドーロタイマーを使った際は、集中する時間が終わると Google Calendar に作業内容と時間が追加されるようにしました。これで、ある日に何をどれだけ行なったかを後から簡単に確認できます。
また、その作業内容は、タイマーを始める前に自分で入力するか、Notion の DB から取得してきたタスクの中から選ぶか、のどちらかで決めることができます。
これが個人的には良い仕組み化になっていて、タスクの中から選ばずに始めようとしているその作業は、本当に優先度高いのか?と一度考えるきっかけになっています。(今日やるべきなら、すでに今日のタスクに入っているのでは?という問いが生まれます。)
何も考えずに好奇心でやりたいことだけ先にやり始めてしまう自分にとってはすごく助かっています。
創ってみて
実際創ってみて、毎日のように使っていて、創って良かったと感じています。
創る前よりは、タスクの管理や消化が効率良くできていると感じています。
得られた学び
基本的には自分自身が欲しいアプリを作成しただけですが、その中でも学びがありました。
テストの重要性
基本自分しか使わないから... という理由からテストを書くのを少し手を抜きました。
(原因はそれだけではありませんが)その結果、機能を追加すると影響が出て、実際にリリースした後に気付く、といったことが何度かありました。
しっかりと、機能追加の度にテストを書いて、CI で自動化するなど、テスト環境を整えることが大事だと学びました。
ブランチ運用の大切さ
この個人開発ではざっくり GitHub-flow をベースに、自分が運用しやすいかたちに変えて開発を行いました。
その結果、後からコードの変更を追いたいときに、機能単位で追うことができて読みやすかったです。
また、開発をする際に出来る限りドキュメントを残しながら開発をしているのですが、こちらも、(ブランチ運用の本質的なメリットではないかもしれませんが)、 1 機能 1 ページで残していくことができ、整理しやすいというメリットもありました。
ディレクトリ構造の大切さ
個人開発をしていると、プライベートの時間の都合から開発期間がある程度空いてしまう時があります。
この時にディレクトリを意味のある分け方をしていないと、思い出すのがかなり大変になります。
そのため、ディレクトリ構造は、正しくしておくのが大事だと改めて感じました。
最後に
これからも自分が欲しいと思う機能を中心に機能追加していきたいと思っています。
まだまだ、改善すべきところ、追加したい機能がたくさんあるので、引き続き開発していきます。