パッケージ、リポジトリ、アプリカテゴリを検索

timer_builder のカバー
パッケージ詳細v2.0.0

timer_builder

スケジュールされた、周期的、または動的に生成された時間イベントで自身を再構築するウィジェット。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
1.5万
いいね数
168
Pub ポイント
150

パッケージをインストール

flutter pub add timer_builder

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

TimerBuilder は、定期的なチックやカスタムのタイミングスケジュールなどの時間ベースのイベントに応じてUIを自動的に再構築するFlutterウィジェットです。手動での状態管理が不要なため、カウントダウンタイマー、ライブ時計、リアルタイム更新の作成が簡単になります。動的なタイミングロジックをサポートしており、実行中に更新間隔が変化するシナリオに最適です。Android、iOS、Web、macOS、Windows、Linuxなど、すべての主要プラットフォームで動作します。

用途

  • リアルタイムクロック表示
  • カウントダウンタイマー
  • ダイナミックな更新間隔
  • ライブデータの更新
  • アニメーションカウントダウン
  • 定期的なUIの更新

主な機能

  • 時刻イベントで再構築
  • 動的タイミングをサポート
  • クロスプラットフォーム互換性
  • 最小限のボイラープレート
  • シンプルな API
  • Timer オブジェクトの必要はありません

適している対象

  • タイマーを構築する開発者
  • ライブ更新が必要なアプリ
  • 時間に依存するコンテンツを備えたUI
  • シンプルなカウントダウンの実装
  • 手動でのタイマー管理を避けるプロジェクト

注意事項

  • 高頻度の更新には適していません
  • dispose の取り扱いには注意が必要です
  • 誤って使用するとパフォーマンスの問題が発生する可能性があります
  • 時刻ベースのトリガーに限定
  • 複雑なスケジューリングをサポートしていません

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

TimerBuilder

A widget that rebuilds itself on scheduled, periodic, or dynamically generated time events.

Here are some use cases for this widget:

  • When showing time since or until a specified event;
  • When the model updates frequently but you want to limit UI update frequency;
  • When showing current date or time;
  • When the representation a widget depends on a certain time event.

animated image

Examples

Periodic rebuild
import 'package:timer_builder/timer_builder.dart';

class ClockWidget extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return TimerBuilder.periodic(Duration(seconds: 1),
      builder: (context) {
        return Text("${DateTime.now()}");
      }
    );
  }
  
}
Rebuild on a schedule
import 'package:timer_builder/timer_builder.dart';

class StatusIndicator extends StatelessWidget {

  final DateTime startTime;
  final DateTime endTime;
  
  StatusIndicator(this.startTime, this.endTime);
  
  @override
  Widget build(BuildContext context) {
    return TimerBuilder.scheduled([startTime, endTime],
      builder: (context) {
        final now = DateTime.now();
        final started = now.compareTo(startTime) >= 0;
        final ended = now.compareTo(endTime) >= 0;
        return Text(started ? ended ? "Ended": "Started": "Not Started");
      }
    );
  }
  
}

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト