syncly 1.1.1
syncly: ^1.1.1 copied to clipboard
Sistema de sincronização independente para aplicações Flutter
Changelog #
Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
O formato é baseado em Keep a Changelog, e este projeto adere ao Semantic Versioning.
1.1.1 05/06/2025 #
🔧 Correções #
- Inicialização do SyncInitializer: Corrigido erro "Bad state: SyncInitializer não foi inicializado" que ocorria quando serviços tentavam acessar o
SyncInitializer
antes de sua inicialização completa - Injeção de Dependência Lazy: Implementada inicialização lazy no
SynclyService
para evitar chamadas prematuras aoISyncService.getInstance()
- TodoLocalDatasource: Modificado para usar
Modular.get<AppSyncService>()
de forma lazy, evitando dependências circulares durante a inicialização - Ordem de Inicialização: Garantida a ordem correta de inicialização dos serviços, com o
SyncInitializer
sendo inicializado antes de qualquer acesso aos serviços de sincronização
🛠️ Melhorado #
- Estabilidade: Eliminadas condições de corrida durante a inicialização da aplicação
- Arquitetura: Melhorada a gestão de dependências para evitar inicializações prematuras
- Robustez: Sistema mais resiliente a problemas de ordem de inicialização
0.1.0 04/06/2025 #
🚀 Adicionado #
- Sistema de Notificações Interno: Novo
SyncNotificationService
centraliza toda a lógica de notificações - Configuração Simplificada: Desenvolvedores agora só precisam definir
enableNotifications = true
- Padrão Singleton: Garantia de uma única instância do serviço de notificações
- Logs de Desenvolvimento: Sistema de logs detalhados para facilitar debug e desenvolvimento
- Estratégias de Download Flexíveis: Agora é possível passar estratégias de download diretamente no método
SyncInitializer.initialize()
- Parâmetro
downloadStrategies
: Novo parâmetro opcional noinitialize()
para maior flexibilidade
🔄 Modificado #
- BREAKING CHANGE: Removidos métodos de notificação obrigatórios do
SyncConfig
initializeNotifications()
- agora gerenciado internamenteshowNotification()
- substituído pelo serviço internoshowProgressNotification()
- substituído pelo serviço internocancelNotification()
- substituído pelo serviço internocancelAllNotifications()
- substituído pelo serviço internoareNotificationsEnabled()
- removido, useenableNotifications
property
- SyncConfigurator: Atualizado para usar o serviço interno de notificações
- Todos os Serviços: Migrados para usar
SyncNotificationService.instance
🛠️ Melhorado #
- Experiência do Desenvolvedor: Menos código boilerplate necessário
- Manutenibilidade: Lógica de notificações centralizada em um local
- Flexibilidade: Fácil extensão e customização do sistema de notificações
- Compatibilidade: Propriedade
enableNotifications
mantida para compatibilidade - Testabilidade: Estratégias de download podem ser facilmente mockadas em testes
- Modularidade: Estratégias podem ser definidas em módulos separados e reutilizadas
📚 Documentação #
- Atualizada documentação HTML com novo sistema de notificações
- README atualizado com exemplos simplificados
- Removidos exemplos de implementação de métodos de notificação obsoletos
🔧 Correções #
- Corrigido import incorreto em
sync_download_strategy.dart
- Removidas referências obsoletas a métodos de notificação
- Validação completa com
flutter analyze
sem erros
0.0.1 03/06/2025 #
Corrigido #
- Correção de parâmetros
isSuccess
eerror
na classeSyncHttpResponse
- Substituição de
print
pordebugPrint
nos arquivos de exemplo - Remoção de imports desnecessários (
dart:typed_data
) - Implementação completa da classe
SyncConfig
com todos os métodos obrigatórios
Adicionado #
- Sistema completo de envio de erros para backend via
SyncErrorReporter
- Documentação detalhada do sistema de envio de erros em
sync_documentation.html
- Implementação de métodos HTTP (GET, POST, PUT, DELETE, PATCH, download, upload) usando Dio
- Métodos de autenticação usando SharedPreferences
- Sistema de notificações com callbacks configuráveis
- Estratégias de download e limpeza de dados
Melhorado #
- Documentação atualizada com exemplos práticos de uso
- Estrutura de configuração mais robusta e extensível
- Tratamento de erros aprimorado com logging estruturado
1.0.0 02/06/2025 #
Adicionado #
- Sistema de sincronização bidirecional completo
- Sincronização em background com WorkManager
- Sistema de tema independente (SyncTheme)
- Widgets de UI prontos (SyncIndicator, SyncDetailsBottomSheet)
- Gerenciamento de conectividade automático
- Sistema de logs e debug configurável
- Tratamento robusto de erros
- Arquitetura baseada em estratégias (Strategy Pattern)
- Configuração centralizada via SyncConfigurator
- Suporte a múltiplas estratégias de download
- Sistema de notificações configurável
- Armazenamento local com SharedPreferences
- Geração automática de UUIDs para logs
- Cliente HTTP configurável com Dio
Características Técnicas #
- Injeção de dependência com GetIt
- Interfaces bem definidas para extensibilidade
- Padrão Provider para configuração
- ValueNotifier para reatividade
- Suporte a temas claro e escuro
- Logs estruturados com categorias
- Cleanup automático de dados antigos
- Relatórios de erro configuráveis
Dependências #
- Flutter SDK >=3.10.0
- Dart SDK >=3.0.0
- dio: ^5.4.0
- get_it: ^7.6.4
- workmanager: ^0.5.2
- shared_preferences: ^2.2.2
- uuid: ^4.2.1
Documentação #
- README completo com exemplos de uso
- Documentação de arquitetura
- Guias de implementação
- Exemplos de configuração