26
27

【Reactアプリ100本ノック】04 Timer

Last updated at Posted at 2023-11-03

bandicam 2023-11-03 16-04-10-941.jpg

はじめに

こんにちは!!@Sicut_studyです!

こちらの記事が嬉しいことに多くの方に見ていただきました。
そこでReactが多くの初心者の方に注目されているんだなということを実感させられました。

私の記事では何度も言っている通り

最速で学ぶならとにかく何か作る

というのが大事になってきます。そこで 「Reactアプリ100本ノック」 というのに挑戦していこうかと思います。徐々に難易度を挙げていってどこまでお題を作りきれるかの腕試しでやっていただければと思います。

今回はさらに状態管理を応用的に利用して、効果音を流すライブラリも使用してみます

前回のお題

Reactアプリ100本ノックルール

  • 主要なライブラリやフレームワークはReactである必要がありますが、その他のツールやライブラリ(例: Redux, Next.js, Styled Componentsなど)を組み合わせて使用することは自由
  • TypeScriptを利用する
  • 要件をみたせばデザインなどは自由

04. Timer

image.png

問題

タイマーアプリを作成します

目的

タイマーアプリでは、Reactの根幹をなす状態管理、ライフサイクルメソッド、そしてイベント処理の実践を通じて、Reactの基礎を固めます

またsetTimeoutなど指定した時間に何かを実行するという関数を学んでいきます

達成条件

  1. ユーザーは分と秒を入力してタイマーを設定できる。
  2. スタートボタンを押すとカウントダウンが開始される。
  3. 時間が0になったら、ユーザーに通知される (効果音が鳴る)
  4. 一時停止ボタンを押すとカウントダウンが停止し、再開ボタンでカウントダウンが再開される。
  5. リセットボタンでタイマーが設定時間に戻る。
  6. 無効な時間(例:負の時間、非数値、60分以上の値)が入力された場合、エラーメッセージが表示される。

実際に解いてみた

利用技術

  • React
  • TypeScript
  • Vite
  • Emotion
  • use-sound

解答時間 : 1.5時間

円形のプログレスバーを実装してみたのでけっこう大変でした。
またuse-soundを利用して0秒になったら効果音がなるようにしてみました
タイマーを使う人にとっては大事な機能になります

image.png

次回

おわりに

React100本ノックの記事を地道に上げていこうと思いますので、一緒に挑戦したい方は @Sicut_study をフォローいただけるととてもうれしく思います。
ここまで読んでいただけた方はぜひいいねストックよろしくお願いします。

少し宣伝します🔥🔥🔥🔥🔥

これからエンジニアになろうとしている人を本気でコーチングして3か月の期間で立派なエンジニアにするようなチャレンジをしてみたいなと考えております。

もし、本気でエンジニアを目指してコーチングを受けてみたいという方がいれば、Twitterに「プログラミング教えてほしいです」みたいなリプライ送っていただけたらなと思います!!

以上です。
今週もプログラミング頑張りましょう!

bandicam 2023-10-04 20-58-54-525.jpg

参考

26
27
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
26
27