トレーニング用のFlutterインターバルタイマーアプリです。
- 詳細な時間設定: 分と秒で個別に設定可能(例:2分30秒)
- 時間が0になると音と振動で通知
- 大型の開始ボタンで操作しやすい
- トレーニング時間: 分・秒で詳細設定
- 休憩時間: 分・秒で詳細設定
- 指定したサイクル数だけ繰り返し実行(0で無限ループ)
- 各フェーズ(トレーニング/休憩)の切り替え時に通知
- 現在のフェーズとサイクル数をリアルタイム表示
- 音効果: システムのデフォルト通知音による通知
- イヤホン接続時:イヤホンから音声出力
- イヤホン非接続時:本体スピーカーから音声出力
- 振動: スマートフォンでの触覚フィードバック
- 通常時:ブル、ブル、ブル×2回(フェーズ切り替え時)
- サイクル/終了時:ブ〜〜ン1秒(各サイクル完了、全体終了時)
- 最適化されたレイアウト: タイマー表示を最上部に配置、コンパクトなデザイン
- 効率的な時間設定: アップ/ダウンボタン(分:5分単位、秒:10秒単位)とクリアボタン
- 改善されたUX: キーボード自動非表示、開始ボタン動的無効化
- 色による状態表示: 緑(停止/休憩)、青(動作中)、黄(残り15秒)、赤(残り5秒)
- フローティング表示: インターバル時のサイクル進行状況を画面左上に固定表示
- 大型開始ボタン: 初期画面で目立つ、タップしやすいボタン
- 動的インターフェース: タイマー状態に応じてボタンが変化
- 入力支援: 空フィールドは自動的に「0」を表示
- 開始: 大型ボタンでタイマーを開始
- 一時停止: 実行中のタイマーを一時停止
- 再開: 一時停止中のタイマーを再開
- 停止: タイマーを停止してクリア
- Flutter SDK
- Dart SDK
# 依存関係のインストール
flutter pub get
# アプリの実行
flutter run# 全てのテストを実行
flutter test
# 静的解析
flutter analyze# Android
flutter build apk
# iOS
flutter build ios
# Web
flutter build web
# Windows
flutter build windows
# Linux
flutter build linux
# macOS
flutter build macosこのアプリは複数のプラットフォーム向けにビルドされたバイナリとして配布されています。
GitHub Releases: https://github.com/L7G45FRF/interval_timer/releases
- APKファイルをダウンロード: 最新リリースから
interval-timer-android-*.apkを取得 - セキュリティ設定を変更: Android端末で「設定」→「セキュリティ」→「提供元不明のアプリ」を許可
- APKをインストール: ダウンロードしたAPKファイルをタップしてインストール
- セキュリティ警告: Google Play外のアプリのため、インストール時に警告が表示されます
- 自動更新なし: 新バージョンは手動でダウンロード・インストールが必要です
- 自己責任: 野良APKのインストールは自己責任で行ってください
- ZIPファイルをダウンロード: 最新リリースから
interval-timer-windows-*.zipを取得 - 解凍: 適当なフォルダに解凍
- 実行:
interval_timer.exeを起動
- Windows 10以降(64ビット)
- 初回実行時にWindows Defenderの警告が表示される場合があります
- 「詳細情報」→「実行」で起動できます
- tar.gzファイルをダウンロード: 最新リリースから
interval-timer-linux-*.tar.gzを取得 - 解凍:
tar -xzf interval-timer-linux-*.tar.gz - 実行権限を付与(必要に応じて):
chmod +x interval_timer
- 実行:
./interval_timer
- Ubuntu 20.04以降、またはそれに相当するLinuxディストリビューション(64ビット)
- GTK 3.0以降
- ディストリビューションによっては追加の依存パッケージが必要な場合があります
- 依存関係が不足している場合は、以下をインストールしてください:
sudo apt-get install libgtk-3-0 libblkid1 liblzma5
開発者向け: 新しいリリースを作成するには:
# バージョンタグを作成してプッシュ
git tag v1.0.0
git push origin v1.0.0これにより、GitHub Actionsが自動的にAndroid、Windows、Linux向けのビルドを実行し、Releaseページに公開します。
アプリアイコンを変更する場合:
assets/icons/app_icon.pngを新しいアイコン画像に置き換え- アイコンを再生成:
dart run flutter_launcher_icons対応プラットフォーム:
- Android(アダプティブアイコン対応)
- iOS(各種サイズ自動生成)
- Web(PWA対応)
- Linux
lib/
├── main.dart # アプリのエントリーポイント
├── models/
│ └── timer_state.dart # タイマーの状態モデル
├── services/
│ ├── timer_service.dart # タイマーのビジネスロジック
│ └── notification_service.dart # 音と振動の通知サービス
└── screens/
└── timer_screen.dart # メイン画面のUI
- フレームワーク: Flutter
- 状態管理: Stream-based architecture
- 音声再生: flutter_ringtone_player package
- 振動制御: vibration package
- アイコン生成: flutter_launcher_icons package
- 対応プラットフォーム: Android, iOS, Web, Windows, macOS, Linux
- タイマーの種類を選択:カウントダウンまたはインターバル
- 効率的な時間設定:
- 直接入力: 分と秒フィールドに数値入力
- アップ/ダウンボタン: 分は5分単位、秒は10秒単位で調整
- クリアボタン: 分・秒を一括で0にリセット
- カウントダウン:分と秒を設定(例:5分30秒)
- インターバル:
- トレーニング時間を設定(例:1分30秒)
- 休憩時間を設定(例:45秒)
- サイクル数を入力(0で無限ループ)
- 大型開始ボタンをタップしてタイマーを開始(分・秒がともに0の場合は無効)
- 状況に応じたコントロール:
- 実行中:一時停止・停止ボタンが表示
- 一時停止中:再開・停止ボタンが表示
- キーボード自動非表示: 入力完了時や画面タップで自動的にキーボードが閉じます
- コンパクト表示: 標準的な画面サイズでスクロール不要の最適化されたレイアウト
- 自動補完: 入力フィールドを空のままにすると、フォーカスを外した時に「0」が自動入力
- 柔軟な設定: 秒のみの設定(例:0分45秒)や長時間設定(例:120分0秒)も可能
- 直感的な色分け:
- 緑:停止中またはインターバル休憩中
- 青:タイマー動作中(通常時)
- 黄:残り15秒以下の警告
- 赤:残り5秒以下の緊急警告
- フローティングサイクル表示: インターバル時に画面左上にサイクル進行状況を常時表示
タイマーが終了すると、音と振動(対応デバイス)で通知されます。インターバルタイマーでは各フェーズの切り替え時にも通知が行われます。