Skip to content

ditointernet/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

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •