Skip to content

L7G45FRF/interval_timer

Repository files navigation

インターバルタイマー

トレーニング用のFlutterインターバルタイマーアプリです。

機能

カウントダウンタイマー

  • 詳細な時間設定: 分と秒で個別に設定可能(例:2分30秒)
  • 時間が0になると音と振動で通知
  • 大型の開始ボタンで操作しやすい

インターバルタイマー

  • トレーニング時間: 分・秒で詳細設定
  • 休憩時間: 分・秒で詳細設定
  • 指定したサイクル数だけ繰り返し実行(0で無限ループ)
  • 各フェーズ(トレーニング/休憩)の切り替え時に通知
  • 現在のフェーズとサイクル数をリアルタイム表示

通知機能

  • 音効果: システムのデフォルト通知音による通知
    • イヤホン接続時:イヤホンから音声出力
    • イヤホン非接続時:本体スピーカーから音声出力
  • 振動: スマートフォンでの触覚フィードバック
    • 通常時:ブル、ブル、ブル×2回(フェーズ切り替え時)
    • サイクル/終了時:ブ〜〜ン1秒(各サイクル完了、全体終了時)

UI・操作性

  • 最適化されたレイアウト: タイマー表示を最上部に配置、コンパクトなデザイン
  • 効率的な時間設定: アップ/ダウンボタン(分: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

Android版(野良APKダウンロード)

インストール方法

  1. APKファイルをダウンロード: 最新リリースからinterval-timer-android-*.apkを取得
  2. セキュリティ設定を変更: Android端末で「設定」→「セキュリティ」→「提供元不明のアプリ」を許可
  3. APKをインストール: ダウンロードしたAPKファイルをタップしてインストール

注意事項

  • セキュリティ警告: Google Play外のアプリのため、インストール時に警告が表示されます
  • 自動更新なし: 新バージョンは手動でダウンロード・インストールが必要です
  • 自己責任: 野良APKのインストールは自己責任で行ってください

Windows版

インストール方法

  1. ZIPファイルをダウンロード: 最新リリースからinterval-timer-windows-*.zipを取得
  2. 解凍: 適当なフォルダに解凍
  3. 実行: interval_timer.exeを起動

システム要件

  • Windows 10以降(64ビット)

注意事項

  • 初回実行時にWindows Defenderの警告が表示される場合があります
  • 「詳細情報」→「実行」で起動できます

Linux版

インストール方法

  1. tar.gzファイルをダウンロード: 最新リリースからinterval-timer-linux-*.tar.gzを取得
  2. 解凍:
    tar -xzf interval-timer-linux-*.tar.gz
  3. 実行権限を付与(必要に応じて):
    chmod +x interval_timer
  4. 実行:
    ./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ページに公開します。

アプリアイコンの更新

アプリアイコンを変更する場合:

  1. assets/icons/app_icon.png を新しいアイコン画像に置き換え
  2. アイコンを再生成:
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

使用方法

基本的な流れ

  1. タイマーの種類を選択:カウントダウンまたはインターバル
  2. 効率的な時間設定
    • 直接入力: 分と秒フィールドに数値入力
    • アップ/ダウンボタン: 分は5分単位、秒は10秒単位で調整
    • クリアボタン: 分・秒を一括で0にリセット
    • カウントダウン:分と秒を設定(例:5分30秒)
    • インターバル
      • トレーニング時間を設定(例:1分30秒)
      • 休憩時間を設定(例:45秒)
      • サイクル数を入力(0で無限ループ)
  3. 大型開始ボタンをタップしてタイマーを開始(分・秒がともに0の場合は無効)
  4. 状況に応じたコントロール
    • 実行中:一時停止・停止ボタンが表示
    • 一時停止中:再開・停止ボタンが表示

便利な機能

  • キーボード自動非表示: 入力完了時や画面タップで自動的にキーボードが閉じます
  • コンパクト表示: 標準的な画面サイズでスクロール不要の最適化されたレイアウト
  • 自動補完: 入力フィールドを空のままにすると、フォーカスを外した時に「0」が自動入力
  • 柔軟な設定: 秒のみの設定(例:0分45秒)や長時間設定(例:120分0秒)も可能
  • 直感的な色分け:
    • 緑:停止中またはインターバル休憩中
    • 青:タイマー動作中(通常時)
    • 黄:残り15秒以下の警告
    • 赤:残り5秒以下の緊急警告
  • フローティングサイクル表示: インターバル時に画面左上にサイクル進行状況を常時表示

タイマーが終了すると、音と振動(対応デバイス)で通知されます。インターバルタイマーでは各フェーズの切り替え時にも通知が行われます。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors