Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.6.0

datetime_loop

Um pacote Flutter que fornece um widget para escutar a data e hora do sistema e disparar uma reconstrução com base na unidade de tempo especificada.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
274
Curtidas
11
Pontos Pub
160

Instalar pacote

flutter pub add datetime_loop

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote datetime_loop é uma utilidade do Flutter que oferece um widget para monitorar a data e hora atual do sistema, disparando reconstruções com base em intervalos de tempo configuráveis, como segundos, minutos ou horas. Ele simplifica as atualizações em tempo real em interfaces que exigem conteúdo dinâmico baseado no tempo, como relógios, contagens regressivas ou exibições de dados ao vivo. O widget escuta de forma eficiente as mudanças no horário do sistema sem sobrecarga desnecessária, garantindo desempenho suave em todas as plataformas. Ideal para aplicativos que precisam de atualizações periódicas vinculadas à progressão do tempo.

Casos de uso

  • exibição de relógio em tempo real
  • Cronômetros de contagem regressiva
  • Atualizações de dados ao vivo
  • Atualizações baseadas em tempo da interface
  • Agendamento de conteúdo dinâmico

Principais recursos

  • Reconstrói em intervalos de tempo especificados
  • Escuta eficiente do tempo do sistema
  • Suporte multiplataforma
  • Unidades de tempo configuráveis
  • Impacto mínimo no desempenho

Indicado para

  • Aplicativos com interfaces do usuário dependentes do tempo
  • Desenvolvedores que precisam de ouvintes de tempo leves
  • Projetos que exigem atualizações frequentes da IU
  • Aplicativos de relógio ou cronômetro
  • painéis em tempo real

Considerações

  • Pode causar reconstruções excessivas se o intervalo for muito curto
  • Requer manipulação cuidadosa do estado em widgets complexos
  • Não ideal para tarefas de fundo de longa duração
  • Melhor usado com componentes de interface leves ou imutáveis
  • Limitado ao monitoramento de tempo no nível da interface

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Clock Example

Buy Me A Coffee
Pub BSD 3-Clause License Pub
Pub likes Download Pub points

A Flutter package that provides a widget to listen to the system's datetime and trigger a rebuild based on the specified time unit

Support the project by giving the repo a ⭐ and showing some ❤️!

Usage

Import the package in your Dart code:

import 'package:datetime_loop/datetime_loop.dart';
Using DateTimeLoopBuilder

Use the DateTimeLoopBuilder widget to rebuild UI elements based on system time updates. You can provide a timeUnit for simple setups or a custom DateTimeLoopController for advanced control (e.g., pause/resume):

DateTimeLoopBuilder(
  timeUnit: TimeUnit.seconds,
  builder: (context, dateTime, child) {
    return Column(
      children: [
        Container(
          width: 200,
          height: 200,
          color: Color((math.Random().nextDouble() * 0xFFFFFF).toInt()).withOpacity(1.0),
        ),
        Text('$dateTime'),
      ],
    );
  }
)
Using DateTimeLoopController

The DateTimeLoopController provides a stream of datetime updates and supports advanced features like pausing and resuming updates, useful for optimizing resource usage (e.g., when the app is backgrounded):

final controller = DateTimeLoopController(timeUnit: TimeUnit.minutes);
controller.dateTimeStream.listen((dateTime) {
  print('Current time: $dateTime');
});

// Pause updates to save resources
controller.pause();

// Resume updates with an immediate trigger
controller.resume(triggerImmediate: true);

// Use the controller with DateTimeLoopBuilder
DateTimeLoopBuilder(
  controller: controller,
  builder: (context, dateTime, child) {
  return Text('Time: ${dateTime.toString().split('.').first}');
  },
);

// Dispose of the controller when done
controller.dispose();
Testing with getNow

Both DateTimeLoopBuilder and DateTimeLoopController support a getNow parameter that allows you to mock the system time. This is particularly useful for testing and simulating different time scenarios:

// Example: Testing with a mocked time
DateTime customTime = DateTime(2025, 10, 31, 12, 0, 0);

DateTimeLoopBuilder(
  timeUnit: TimeUnit.seconds,
  getNow: () => customTime,
  builder: (context, dateTime, child) {
    return Text('Mocked time: $dateTime');
  },
)

// Example: Using getNow with DateTimeLoopController
final controller = DateTimeLoopController(
  timeUnit: TimeUnit.minutes,
  getNow: () => customTime,
);

This feature enables:

  • Unit Testing: Write deterministic tests by controlling the datetime value
  • Time Simulation: Simulate different time scenarios without waiting for real time to pass
  • Debugging: Test edge cases and time-dependent behavior

You can check more examples of using this widget here

Issues and Feedback

Please file any issues or feedback here.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.