Skip to content

Calindra/dito-sdk-mobile

 
 

Repository files navigation

Dito SDK Monorepo

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.

📋 Visão Geral

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
  • Documentação: Guias completos de integração e uso
  • Exemplos: Apps de exemplo demonstrando o uso de cada plataforma

🏗️ Estrutura do Repositório

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
├── scripts/          # Scripts de build e release
├── LICENSE           # Licença do repositório
└── README.md         # Este arquivo

🚀 Navegação Rápida

⚡ Início Rápido

Flutter

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},
);

React Native

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 },
});

Para exemplos completos e guias detalhados, consulte a documentação específica de cada plataforma.

🛠️ Desenvolvimento

Pré-requisitos

  • Flutter: Flutter 3.3.0+ e Dart 3.10.7+
  • React Native: React Native 0.72.0+ e Node.js 16+
  • iOS: Xcode 14+ e iOS 16.0+
  • Android: Android Studio e Android API 24+
  • Melos: Para gerenciamento do monorepo Flutter

Configuração Inicial

Opção 1: Script de Setup Automático (Recomendado)

cd flutter
./setup_melos.sh

Opção 2: Manual

Instalar Melos:

dart pub global activate melos

Bootstrap do monorepo Flutter:

cd flutter
melos bootstrap

Este comando irá:

  • Instalar dependências em todos os pacotes Flutter
  • Criar links simbólicos entre os pacotes
  • Executar hooks de pós-instalação

Comandos Melos Disponíveis

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 fatais

Testes:

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 pacotes

Executar App de Exemplo:

cd flutter
melos run run:android      # Executar no Android
melos run run:ios          # Executar no iOS

Gerenciamento de Dependências:

cd flutter
melos run pub:get          # Executar pub get em todos os pacotes
melos run upgrade          # Atualizar dependências

Build de Todas as Plataformas

./scripts/build-all.sh

Release Coordenado

./scripts/release.sh

Executar Exemplos

Flutter (usando Melos):

cd flutter
melos run run:android  # ou melos run run:ios

Flutter (tradicional):

cd flutter/example
flutter run

React Native:

cd react-native/example
npm install
npm run ios  # ou npm run android

📚 Funcionalidades

✅ Implementado

  • ✅ Inicialização do SDK
  • ✅ Identificação de usuários
  • ✅ Rastreamento de eventos
  • ✅ Registro de tokens de dispositivo
  • ✅ Interceptação de push notifications
  • ✅ Tratamento de erros robusto
  • ✅ Documentação completa

🔄 Em Desenvolvimento

  • 🔄 Métricas avançadas
  • 🔄 A/B Testing
  • 🔄 Personalização de notificações

🐛 Troubleshooting

Problemas Comuns

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 channel na 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.

📄 Licença

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.

🤝 Contribuindo

Contribuições são bem-vindas! Por favor, leia nosso guia de contribuição antes de enviar PRs.

📞 Suporte

Para suporte, entre em contato através dos canais oficiais da Dito.

About

Fork do Dito SDK com Package.swift na raíz do projeto para permitir importação de dependência diretamente do GitHub

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 49.2%
  • Kotlin 25.7%
  • Shell 10.8%
  • Dart 8.8%
  • TypeScript 3.9%
  • Ruby 0.8%
  • Other 0.8%