Monorepo unificado contendo as SDKs nativas iOS e Android da Dito, além de wrappers Flutter e React Native para integração com o CRM Dito.
Este monorepo contém:
- SDKs Nativas: Implementações nativas para iOS e Android
- Plugins Cross-Platform: Wrappers Flutter e React Native que fornecem APIs unificadas
- Logout Cross-Platform: Método público para limpar a identidade local de
identifye tracking sem invalidar token remoto ou limpar inbox - Documentação: Guias completos de integração e uso
- Exemplos: Apps de exemplo demonstrando o uso de cada plataforma
dito_sdk_flutter/
├── ios/ # SDK iOS nativa
│ └── README.md # Documentação iOS
├── android/ # SDK Android nativa
│ └── README.md # Documentação Android
├── flutter/ # Plugin Flutter
│ ├── example/ # App de exemplo Flutter
│ ├── README.md # Documentação Flutter
│ └── LICENSE # Licença Flutter
├── react-native/ # Plugin React Native
│ ├── example/ # App de exemplo React Native
│ └── README.md # Documentação React Native
├── docs/ # Documentação adicional
│ ├── push-notifications.md # Guia unificado de Push Notifications
│ └── todos.md # Lista de TODOs/FIXMEs
├── playbook/ # Roteiros de execução para agentes LLM
│ ├── playbook-integracao.md # Integrar a SDK num projeto
│ ├── run-local-test.md # Teste de push local (payload sintético)
│ └── run-prod-test.md # Teste de push real, disparado do painel
├── scripts/ # Scripts de build e release
├── LICENSE # Licença do repositório
└── README.md # Este arquivo
- iOS SDK - SDK nativa iOS com guia completo de instalação e uso
- Android SDK - SDK nativa Android com guia completo de instalação e uso
- Flutter Plugin - Plugin Flutter com guia completo
- React Native Plugin - Plugin React Native com guia completo
- Guia de Push Notifications - Guia unificado para todas as plataformas
- Lista de TODOs/FIXMEs - Itens pendentes e melhorias planejadas
Roteiros de execução escritos para serem operados por um agente LLM com acesso a shell, ao projeto e ao aparelho. Cada um tem fases, gates e critérios de parada — não são tutoriais para ler de ponta a ponta.
| Playbook | Para quê | Precisa de |
|---|---|---|
| Integração assistida | instalar e configurar a SDK num projeto: detecta a plataforma (nativa ou Flutter/RN), entrevista, propõe um plano em fases e só então aplica | o projeto alvo e as credenciais Dito |
| Teste de push local | provar renderização e clique com payload sintético injetado no app | emulador/simulador basta para parte dos casos |
| Teste de push em produção | provar entrega e clique reais, com reconciliação aparelho ↔ painel | aparelho físico e alguém disparando no painel |
O de integração termina onde os outros dois começam: ele prova que a SDK está instalada e inicializa, não que a campanha chega.
import 'package:dito_sdk/dito_sdk.dart';
// Inicializar SDK
await DitoSdk.initialize(
apiKey: "sua-api-key",
apiSecret: "seu-api-secret",
);
// Identificar usuário
await DitoSdk.identify(
id: 'user123',
name: 'John Doe',
email: 'john@example.com',
);
// Rastrear evento
await DitoSdk.track(
action: 'purchase',
data: {'product': 'item123', 'price': 99.99},
);
// Limpar identidade local após logout no app host
await DitoSdk.logout();import DitoSdk from '@ditointernet/dito-sdk';
// Inicializar SDK
await DitoSdk.initialize({
apiKey: "sua-api-key",
apiSecret: "seu-api-secret",
});
// Identificar usuário
await DitoSdk.identify({
id: 'user123',
name: 'John Doe',
email: 'john@example.com',
});
// Rastrear evento
await DitoSdk.track({
action: 'purchase',
data: { product: 'item123', price: 99.99 },
});
// Limpar identidade local após logout no app host
await DitoSdk.logout();Para exemplos completos e guias detalhados, consulte a documentação específica de cada plataforma.
- Flutter: Flutter 3.3.0+ e Dart 3.10.7+
- React Native: React Native 0.72.0+ e Node.js 16+
- iOS: Xcode 15.3+ (Swift 5.10) e iOS 16.0+
- Android: Android Studio e Android API 24+
- Melos: Para gerenciamento do monorepo Flutter
Opção 1: Script de Setup Automático (Recomendado)
cd flutter
./setup_melos.shOpção 2: Manual
Instalar Melos:
dart pub global activate melosBootstrap do monorepo Flutter:
cd flutter
melos bootstrapEste comando irá:
- Instalar dependências em todos os pacotes Flutter
- Criar links simbólicos entre os pacotes
- Executar hooks de pós-instalação
Análise e Formatação:
cd flutter
melos run analyze # Analisar todos os pacotes
melos run format # Formatar código
melos run format:check # Verificar formatação
melos run lint # Executar linter com warnings fataisTestes:
cd flutter
melos run test # Executar testes unitários
melos run test:integration # Executar testes de integração
melos run check # Executar todos os checks (format, analyze, test)Build:
cd flutter
melos run build:plugin # Build do plugin Flutter
melos run build:example # Build do app de exemplo
melos run clean # Limpar todos os pacotesExecutar App de Exemplo:
cd flutter
melos run run:android # Executar no Android
melos run run:ios # Executar no iOSGerenciamento de Dependências:
cd flutter
melos run pub:get # Executar pub get em todos os pacotes
melos run upgrade # Atualizar dependências./scripts/build-all.sh./scripts/release.shFlutter (usando Melos):
cd flutter
melos run run:android # ou melos run run:iosFlutter (tradicional):
cd flutter/example
flutter runReact Native:
cd react-native/example
npm install
npm run ios # ou npm run android- ✅ Inicialização do SDK
- ✅ Identificação de usuários
- ✅ Rastreamento de eventos
- ✅ Logout local de identidade de usuário
- ✅ Registro de tokens de dispositivo
- ✅ Interceptação de push notifications
- ✅ Tratamento de erros robusto
- ✅ Documentação completa
- 🔄 Métricas avançadas
- 🔄 A/B Testing
- 🔄 Personalização de notificações
Erro de inicialização no Android:
- Verifique se as credenciais estão configuradas no
AndroidManifest.xml - Certifique-se de que o SDK nativo está incluído como dependência
Erro de inicialização no iOS:
- Verifique se as credenciais estão configuradas no
Info.plist - No iOS 18+, configure o Firebase ANTES do Dito SDK
Push notifications não funcionam:
- Verifique se o método estático está sendo chamado corretamente
- Confirme que o campo
channelna notificação é igual a"Dito"
Para mais detalhes, consulte a seção de troubleshooting nos READMEs específicos de cada plataforma ou o guia unificado de Push Notifications.
Este projeto está licenciado sob uma licença proprietária que permite o uso das SDKs em aplicações comerciais e próprias dos clientes, mas proíbe modificação, cópia e redistribuição do código fonte.
Resumo dos Termos:
- ✅ Permite uso das SDKs em aplicações comerciais
- ✅ Permite uso em aplicações próprias dos clientes
- ❌ Proíbe modificação do código fonte
- ❌ Proíbe cópia e redistribuição do código
- ❌ Proíbe engenharia reversa
Veja LICENSE para detalhes completos dos termos de licenciamento.
Contribuições são bem-vindas! Por favor, leia nosso guia de contribuição antes de enviar PRs.
Para suporte, entre em contato através dos canais oficiais da Dito.