【個人開発】奥が深いタイマーアプリ
タイマーアプリは奥が深い
WEBアプリやスマホアプリ開発の初学者が「まずつくってみましょう!」、という感じの題材にされる代表例が「タイマー」かなと思います。
1秒や100ミリ秒ごとに画面の数字を更新 ( 増やしたり、減らしたり ) して、時間を表示する。コードを書いて、それが画面で動く。感動する!
最初に取り組むテーマとして、すごくいい題材だと思います。
でも、アプリとして提供しよう!となると、すごく考えることが増えてきます。タイマーのロジック部分だけでも、例えば、
ユーザがブラウザを更新したり、アプリケーションを閉じたり、電源切れたら動いてるタイマーはどうなる。
デバイスや端末(クライアント)の処理が重くてタイマーの時間がズレたらどうする。
タイマーが動いてるときに、設定時間を変更したらどうなる。
などなど、、、
他にも、残り時間がわかりやすい画面や、音などでお知らせしてくれる機能とかもよくありますよね。 ( 実装してないけど、タイマーの表示形式 hh:mm:ss とか H時M分S秒 とかの変更はどうするとか、)
上の3つの例だけでも、データベース処理や、サーバーとの非同期通信、エラーハンドリングなど、およそ初心者のころには触りたくない分野がバンバンでてきます。
しかも、タイマーだから処理時間とかも極力短くしないといけない。
ということで、本気で使えるタイマーを考えはじめると結構奥が深くて、途中で放り投げそうになります ( →なりました。)
ただ幸いにも、テーマのわかりやすさのお陰か、約3ヶ月の開発期間ですが結構楽しく考えながら開発に取り組めました。
かつ、最後自分が使えばいいかな、くらいの機能やUIになっている(つもりな)ので、個人開発やってよかったなと思っています。
開発中も、世の中にあるWEBタイマーを検索して使ってみて、すごくよく出来てるなと思ってました。こういう、自分の開発テーマや近しいテーマのアプリを見ると「え、これどうやってるんだろ」という思考回路になるのも個人開発者のインターネットの楽しみ方かもしれません。
ちょっと短いですが、初回投稿( noteも初めて )ということで、タイマーをお題に個人開発をして、達成感とインターネットの楽しみ方を見つけたという内容です。
次回は、なんでタイマーなんか作ったの?あたりについて書きたいと思います。
Use Case.
#セルフタスク / #ミーテイング / #プレゼンテーション / #イベント / #ライブストリーム / #ウェビナー / #学会発表 / #オンライン授業・教育 / #ペアプロ・モブプロ