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
SyncInitializerantes de sua inicialização completa - Injeção de Dependência Lazy: Implementada inicialização lazy no
SynclyServicepara 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
SyncInitializersendo 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
SyncNotificationServicecentraliza 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
SyncConfiginitializeNotifications()- 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, useenableNotificationsproperty
- 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
enableNotificationsmantida 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 analyzesem erros
0.0.1 03/06/2025 #
Corrigido #
- Correção de parâmetros
isSuccesseerrorna classeSyncHttpResponse - Substituição de
printpordebugPrintnos arquivos de exemplo - Remoção de imports desnecessários (
dart:typed_data) - Implementação completa da classe
SyncConfigcom 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