Androidアプリ開発 個人開発 自作アプリ

Voice Interval Timerを作った理由|音声で案内するインターバルタイマーの個人開発記録

はじめに

勉強、筋トレ、ストレッチ、作業時間の管理などでタイマーを使う場面は多くあります。

スマホには標準のタイマーアプリもありますが、実際に使っていると「画面を見なくても残り時間が分かれば便利だな」と感じることがあります。

たとえば、運動中や作業中は、スマホ画面を毎回確認できないことがあります。
筋トレ中で手が離せなかったり、ストレッチ中でスマホが見えない位置にあったり、作業に集中していて画面を見たくないこともあります。

そこで、音声で時間を案内してくれるインターバルタイマーアプリ 「Voice Interval Timer」 を作成しました。

この記事では、アプリの宣伝ではなく、なぜこのアプリを作ろうと思ったのか、どのような利用シーンを想定したのか、個人開発でどのような点を意識したのかをまとめます。


普通のタイマーで不便だと感じたこと

通常のタイマーアプリは、時間をセットして開始するだけなら十分便利です。

しかし、インターバルトレーニングや集中作業で使う場合、少し不便に感じることがありました。

特に気になったのは、以下の点です。

  • 残り時間を確認するために画面を見る必要がある
  • 音が鳴るまで、あと何秒か分かりにくい
  • 作業中や運動中にスマホを触りにくい
  • 複数セットを管理しにくい
  • 休憩時間と作業時間を切り替えるのが面倒
  • 終了音だけでは状況が分かりにくい

単純なキッチンタイマーのような使い方であれば問題ありません。
しかし、作業と休憩を繰り返すような用途では、画面を見なくても状態が分かる仕組みがあると便利です。

音声案内を入れたいと思った理由

Voice Interval Timerで一番入れたかったのは、音声案内です。

タイマーの終了時に音が鳴るだけでなく、

  • 開始
  • 残り時間
  • 休憩開始
  • 次のセット
  • 終了

などを音声で案内できれば、画面を見なくても状況が分かります。

たとえば、運動中に「残り10秒」「休憩開始」「次のセットを開始します」と音声で案内されると、スマホを確認せずに次の動作へ移れます。

作業用タイマーとして使う場合も、「作業開始」「休憩時間です」と案内されることで、集中と休憩の切り替えがしやすくなります。

想定した利用シーン

このアプリは、主に以下のような場面で使うことを想定しました。

1. 筋トレ・自宅トレーニング

筋トレでは、運動時間と休憩時間を繰り返すことが多いです。

たとえば、

  • 30秒運動
  • 10秒休憩
  • 8セット繰り返し

のような使い方です。

この場合、毎回スマホ画面を見るのは面倒です。
音声で残り時間や次の動作を案内できれば、運動に集中しやすくなります。

2. ストレッチ

ストレッチでは、姿勢によってスマホ画面が見えにくいことがあります。

そのため、音声で「残り10秒」「次のストレッチです」と案内できると便利です。

画面を見ずに流れを把握できるため、ストレッチの姿勢を崩さずに続けやすくなります。

3. 勉強や作業の集中タイマー

勉強や作業では、一定時間集中して、その後に短い休憩を取る方法があります。

タイマーを見すぎると集中が切れることもあるため、必要なタイミングだけ音声で案内されると便利です。

たとえば、

  • 25分作業
  • 5分休憩
  • 4セット繰り返し

のような使い方を想定しました。

4. リハビリや反復練習

同じ動作を一定時間繰り返すような場面でも、音声案内タイマーは使いやすいと感じました。

スマホを操作しなくても次のタイミングが分かるため、同じ流れを繰り返す作業に向いています。


最初に考えた機能

最初に考えた機能は、以下のようなものです。

  • タイマー作成
  • タイマー一覧表示
  • 作業時間の設定
  • 休憩時間の設定
  • セット数の設定
  • 音声案内の有無
  • バイブレーションの有無
  • 一時停止
  • 停止
  • 実行履歴

この中で、最初のバージョンでは機能を増やしすぎないようにしました。

最も重要なのは、「設定した時間を正しくカウントし、必要なタイミングで音声案内すること」 です。

そのため、まずは基本的なタイマー実行と音声案内を優先しました。


MVPとして優先した機能

個人開発では、最初から全部の機能を作ろうとすると完成まで時間がかかります。

そこで、Voice Interval Timerでは、最初に作る機能を以下に絞りました。

優先度機能理由
タイマー作成アプリの基本機能
タイマー一覧登録済みタイマーを選ぶため
タイマー実行実際に使う中心機能
音声案内アプリの特徴になるため
一時停止・停止実用上必要なため
バイブレーション音を出しにくい場面で使える
実行履歴後から確認できる
テーマ変更初期版では必須ではない

最初から多機能にするのではなく、まずはタイマーとして正しく使える状態を目指しました。


画面構成で意識したこと

Voice Interval Timerでは、画面構成をできるだけ分かりやすくすることを意識しました。

想定した画面は以下です。

  • タイマー一覧画面
  • タイマー作成・編集画面
  • タイマー実行画面
  • 履歴画面
  • 設定画面

特に重要なのは、タイマー実行画面です。

タイマー実行中は、ユーザーが細かい操作をしたくない場面が多いです。
そのため、残り時間を大きく表示し、開始・一時停止・停止ボタンを分かりやすく配置することを意識しました。

タイマー実行画面で重視したこと

タイマー実行画面では、以下の点を重視しました。

  • 残り時間を大きく表示する
  • 現在が作業時間か休憩時間か分かるようにする
  • 何セット目かを表示する
  • 一時停止ボタンを押しやすくする
  • 停止ボタンを分かりやすくする
  • 音声案内の状態が分かるようにする

特に、残り時間は一番重要な情報です。

そのため、画面中央に大きく表示し、細かい情報は周辺に配置する形が使いやすいと考えました。


音声案内の設計で考えたこと

音声案内は便利ですが、案内が多すぎると逆に邪魔になります。

そのため、どのタイミングで音声を出すかを考える必要があります。

すべてのタイミングで音声を出すと多すぎる場合もあるため、設定でオン・オフできるようにするのがよいと考えました。

音声案内の文言例

音声案内では、短く分かりやすい文言が重要です。

たとえば、以下のような文言を想定しました。

タイミング音声文言
開始時タイマーを開始します
作業開始作業時間です
残り10秒残り10秒です
休憩開始休憩時間です
次セット開始次のセットを開始します
終了時タイマーが終了しました

長い文章だと、タイマーのテンポを邪魔してしまいます。

そのため、音声案内はできるだけ短く、すぐ理解できる表現にすることを意識しました。


実装で気をつけたいこと

音声案内タイマーを作る場合、通常のタイマーよりも気をつける点が増えます。

1. バックグラウンド時の動作

タイマーアプリでは、画面を閉じたり、別のアプリを開いたりしても、タイマーが動き続ける必要があります。

ただし、Androidではバックグラウンド動作に制限があるため、実装方法を考える必要があります。

単純に画面上のカウントダウンだけで作ると、アプリがバックグラウンドに回ったときに正しく動かない可能性があります。

2. 音声読み上げのタイミング

音声案内は、指定したタイミングで正確に再生される必要があります。

しかし、端末の状態や処理のタイミングによって、少し遅れることがあります。

そのため、音声案内のタイミングは、カウントダウン処理と合わせて慎重に設計する必要があります。

3. 音声が重ならないようにする

短い間隔で案内が続くと、音声が重なって聞き取りにくくなる場合があります。

たとえば、残り5秒の案内と終了案内が近すぎると、音声が連続してしまいます。

そのため、案内の間隔や優先順位を決めることが重要です。

4. 音を出せない環境への対応

ジムや自宅では音声案内が便利ですが、図書館や電車内では音を出せません。

そのため、音声案内だけでなく、バイブレーションや画面表示でも分かるようにしておくと使いやすくなります。


データ構造で考えたこと

タイマーアプリでは、保存するデータを最初に整理しておくことが大切です。

たとえば、タイマー情報として以下のような項目が必要になります。

タイマー情報

項目内容
タイマーIDタイマーを識別するID
タイマー名勉強タイマー、筋トレタイマーなど
作業時間作業する時間
休憩時間休憩する時間
セット数繰り返し回数
音声案内有効 / 無効
バイブレーション有効 / 無効
作成日時作成した日時
更新日時更新した日時

実行履歴

項目内容
履歴ID実行履歴を識別するID
タイマーIDどのタイマーを実行したか
実行日時実行した日時
完了したか最後まで実行したか
実行セット数実際に行ったセット数

このように、タイマー設定と実行履歴を分けておくと、後から履歴表示や分析機能を追加しやすくなります。


個人開発で難しいと感じたこと

Voice Interval Timerのようなアプリは、一見シンプルに見えます。

しかし、実際に考えてみると難しい点があります。

1. シンプルさと機能数のバランス

タイマーアプリは、機能を増やそうと思えばかなり増やせます。

  • 音声案内
  • バイブレーション
  • 履歴
  • 通知
  • プリセット
  • テーマ変更
  • カスタム音声
  • クラウド同期

しかし、機能を増やしすぎると、設定項目が多くなり、使い始めるまでが面倒になります。

そのため、最初は「作成してすぐ使えること」を優先しました。

2. 音声案内を邪魔にしないこと

音声案内はこのアプリの特徴ですが、頻度が多すぎると邪魔になります。

特に集中作業では、案内が多いと逆に集中が切れる可能性があります。

そのため、案内するタイミングを絞ったり、設定で変更できるようにすることが重要だと感じました。

3. 端末ごとの差

Android端末はメーカーやOSバージョンによって動作が少し違う場合があります。

音声、バイブレーション、バックグラウンド動作、通知などは端末差が出やすい部分です。

そのため、できるだけ複数の端末で確認する必要があると感じました。


今後追加したい機能

今後、機能を追加するなら以下のようなものを考えています。

ただし、最初からすべて追加するのではなく、実際に使いながら必要な機能を少しずつ追加していく方がよいと考えています。


開発して感じたこと

Voice Interval Timerを考えてみて感じたのは、タイマーアプリはシンプルに見えて、実用性を高めようとすると設計が重要になるということです。

ただ時間をカウントするだけなら簡単そうに見えます。

しかし、実際に使いやすくするには、

  • どのタイミングで案内するか
  • 画面を見なくても分かるか
  • 音を出せない場面に対応できるか
  • バックグラウンドでも動くか
  • 設定項目を増やしすぎていないか

を考える必要があります。

小さなアプリでも、利用シーンを具体的に考えることで、必要な機能と不要な機能が見えやすくなると感じました。

まとめ

今回は、Androidアプリ「Voice Interval Timer」を作った理由と、開発時に考えたことをまとめました。

このアプリでは、通常のタイマーに加えて、音声案内によって画面を見なくても状況が分かることを目指しました。

特に、

  • 筋トレ
  • ストレッチ
  • 勉強
  • 作業時間管理
  • 反復練習

のような場面で使いやすいアプリにしたいと考えました。

個人開発では、最初から多機能にするよりも、まずは「このアプリで一番解決したいこと」を明確にすることが大切です。

Voice Interval Timerの場合は、画面を見なくてもタイマーの状態が分かることを中心に設計しました。

今後も、実際の使いやすさを確認しながら、少しずつ改善していきたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です