traderpal_connect 1.0.0-beta.2 copy "traderpal_connect: ^1.0.0-beta.2" to clipboard
traderpal_connect: ^1.0.0-beta.2 copied to clipboard

[BETA] TraderPal Connect SDK for Flutter - A comprehensive SDK for integrating TraderPal services into Flutter applications with JWT authentication and subscription management. This is a beta version [...]

TraderPal Connect #

TraderPal Connect es un SDK completo de Flutter para integrar servicios de TraderPal en aplicaciones Flutter. Proporciona una interfaz de usuario completa y moderna para aplicaciones de trading e inversión, con autenticación JWT, gestión de suscripciones, y una arquitectura escalable basada en Clean Architecture.

📋 Información del Proyecto #

  • Versión: 1.0.0-beta.2
  • Flutter: >=3.24.0 (compatible con 3.27.1 y 3.35+)
  • Dart SDK: >=3.4.0 <4.0.0
  • Licencia: Ver LICENSE
  • Estado: Beta - Versión de prueba temprana

✅ Versiones Probadas y Certificadas #

  • Flutter 3.27.1 (Dart 3.6.0) - Versión de referencia actual
  • Flutter 3.35+ (Dart 3.6.x+) - Compatible y probado

📱 Requisitos de Plataforma #

  • iOS: 15.5+ (compatible con iOS 12+)
  • Android: minSdkVersion 24 (API 24+)
  • Gradle: 8.6.1 - 8.11.1
  • Kotlin: 2.1.0

✨ Características Principales #

🔐 Autenticación y Seguridad #

  • Autenticación JWT: Validación de tokens JWT con verificación de expiración
  • Gestión de Suscripciones: Validación automática del estado de suscripción
  • Validación de Cuenta: Verificación del estado de la cuenta del usuario

🎨 Interfaz de Usuario #

  • Tema Oscuro/Claro: Soporte completo para ambos modos de visualización
  • Diseño Responsive: Optimizado para diferentes tamaños de pantalla
  • Componentes Reutilizables: Widgets pre-construidos para funcionalidades comunes
  • Animaciones Fluidas: Integración con flutter_animate para transiciones suaves

📊 Funcionalidades de Trading #

  • Portfolio: Visualización y gestión de portafolios
  • Búsqueda de Activos: Búsqueda avanzada de acciones y activos
  • Órdenes: Gestión completa de órdenes de compra y venta
  • Actividad Financiera: Historial detallado de transacciones
  • Favoritos: Gestión de activos favoritos
  • Gráficos: Visualización de datos con syncfusion_flutter_charts

💰 Gestión Financiera #

  • Depósitos: Múltiples métodos de pago (tarjeta, transferencia bancaria, QR)
  • Retiros: Procesamiento de retiros
  • Funding: Gestión de fondos y operaciones financieras
  • Reportes: Estados de cuenta mensuales y confirmaciones de operaciones
  • Documentos: Gestión de documentos y formularios (W8-BEN)

🏗️ Arquitectura #

  • Clean Architecture: Estructura organizada por capas
  • State Management: Riverpod para gestión de estado reactiva
  • API Service: Cliente HTTP robusto con manejo de errores normalizado
  • Providers: Providers especializados (Auth, User, Market, Navigation)
  • Configuración: Sistema flexible de variables de entorno

🚀 Inicio Rápido #

Prerequisitos #

  • Flutter SDK ^3.9.2
  • Dart SDK ^3.9.2
  • Cuenta de TraderPal con token JWT válido

Instalación #

Agrega traderpal_connect a tu pubspec.yaml:

dependencies:
  traderpal_connect: ^1.0.0-beta.1

Luego ejecuta:

flutter pub get

Configuración Inicial #

  1. Configurar variables de entorno (opcional):

Crea un archivo .env en la raíz de tu proyecto:

API_BASE_URL=https://your-api-url.com/v1
DEBUG_MODE=true
LOG_LEVEL=info
  1. Inicializar el SDK:
import 'package:flutter/material.dart';
import 'package:traderpal_connect/traderpal_connect.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Cargar variables de entorno (opcional)
  await dotenv.load(fileName: ".env");

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Mi App',
      home: const HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // Inicializar y abrir el SDK
            await TraderPalSDK.initialize(
              token: 'tu-jwt-token-aqui',
              userId: 'tu-user-id',
              context: context,
              mode: 'dark', // o 'light'
              onComplete: () {
                print('SDK inicializado correctamente');
              },
              onCancel: () {
                print('Usuario canceló');
              },
              onError: (error) {
                print('Error: $error');
              },
            );
          },
          child: const Text('Abrir TraderPal Connect'),
        ),
      ),
    );
  }
}

📦 Dependencias Principales #

Dependencias Core #

  • dio: ^5.4.0 - Cliente HTTP para llamadas API
  • flutter_riverpod: ^2.5.1 - Gestión de estado reactiva
  • flutter_dotenv: ^5.1.0 - Gestión de variables de entorno

Dependencias UI #

  • google_fonts: ^6.3.2 - Fuentes de Google (Inter)
  • flutter_svg: ^2.2.1 - Soporte para archivos SVG
  • flutter_animate: ^4.5.2 - Animaciones fluidas
  • syncfusion_flutter_charts: ^31.1.25 - Gráficos avanzados
  • table_calendar: ^3.1.2 - Calendarios interactivos

Dependencias de Funcionalidad #

  • url_launcher: ^6.3.0 - Lanzamiento de URLs externas
  • webview_flutter: ^4.10.0 - Integración de WebViews

Dependencias de Desarrollo #

  • flutter_lints: ^5.0.0 - Reglas de linting
  • flutter_test: SDK de testing de Flutter

📁 Estructura del Proyecto #

lib/
├── traderpal_connect.dart          # Archivo principal de exportación
└── src/
    ├── app/
    │   ├── traderpal_app.dart      # Widget principal de la aplicación
    │   ├── layouts/                 # Layouts reutilizables
    │   └── themes/
    │       └── colors.dart         # Sistema de colores y temas
    ├── config/
    │   └── env_config.dart         # Configuración de entorno
    ├── models/                      # Modelos de datos
    │   ├── user_models.dart
    │   ├── portfolio_models.dart
    │   ├── deposit_models.dart
    │   ├── order_models.dart
    │   └── ...
    ├── presentation/
    │   ├── pages/                   # Páginas de la aplicación
    │   │   ├── home/                # Página principal
    │   │   ├── search/              # Búsqueda de activos
    │   │   ├── account/             # Gestión de cuenta
    │   │   ├── portfolio/           # Portafolio
    │   │   ├── deposit/             # Depósitos
    │   │   ├── withdraw/           # Retiros
    │   │   ├── funding/             # Funding
    │   │   ├── orders/              # Órdenes
    │   │   ├── stocks/              # Detalles de acciones
    │   │   ├── buy/                 # Compra
    │   │   ├── sell/                # Venta
    │   │   ├── favorites/           # Favoritos
    │   │   ├── financial_activity/  # Actividad financiera
    │   │   ├── reports/             # Reportes
    │   │   ├── documents/           # Documentos
    │   │   ├── menu/                # Menú
    │   │   └── welcome/             # Pantalla de bienvenida
    │   └── widgets/                 # Widgets reutilizables
    │       ├── bottom_menu.dart
    │       ├── base_amount_page.dart
    │       ├── amount_page/
    │       └── ...
    ├── providers/                   # Providers de Riverpod
    │   ├── auth_provider.dart
    │   ├── user_provider.dart
    │   ├── market_provider.dart
    │   └── navigation_provider.dart
    └── services/                    # Servicios de negocio
        ├── api_service.dart
        ├── subscription_service.dart
        └── api/                     # Servicios API específicos
            ├── user_api.dart
            ├── market_api.dart
            ├── order_api.dart
            ├── deposit_api.dart
            └── ...

🎨 Sistema de Colores #

El paquete incluye un sistema de colores completo con escalas para diferentes modos:

  • Escala Gris: 13 tonos (0-12) para modo claro y oscuro
  • Escala Azul: 13 tonos para elementos primarios
  • Escala Verde: 13 tonos para elementos de éxito/ganancia
  • Escala Amarilla: 13 tonos para advertencias
  • Escala Roja: 13 tonos para errores/pérdidas
  • Escala Morada: 13 tonos para elementos especiales
  • Escala Rosa: 13 tonos para elementos destacados
  • Escala Naranja: 13 tonos para elementos de atención

Uso del Sistema de Colores #

import 'package:traderpal_connect/traderpal_connect.dart';

// Modo oscuro (por defecto)
AppColors.setMode(ColorMode.dark);
Color backgroundColor = AppColors.background;
Color primaryColor = AppColors.blue6;

// Modo claro
AppColors.setMode(ColorMode.light);
Color backgroundColor = AppColors.background;

📱 Páginas Disponibles #

Páginas Principales #

  • HomePage: Página principal con resumen de cuenta y opciones rápidas
  • SearchPage: Búsqueda avanzada de activos financieros
  • AccountPage: Gestión completa de la cuenta del usuario
  • PortfolioPage: Visualización y gestión de portafolios
  • MenuPage: Menú de opciones y configuración

Páginas de Trading #

  • StocksPage: Detalles de acciones con gráficos y análisis
  • BuyPage: Interfaz de compra de activos
  • SellPage: Interfaz de venta de activos
  • OrdersPage: Gestión de órdenes pendientes y ejecutadas

Páginas Financieras #

  • DepositPage: Depósitos con múltiples métodos de pago
  • WithdrawPage: Retiros (InSwitch y Wire Transfer)
  • FundingPage: Gestión de fondos
  • FinancialActivityPage: Historial de actividad financiera

Páginas Adicionales #

  • FavoritesPage: Gestión de activos favoritos
  • ReportsPage: Reportes y documentos
  • DocumentsPage: Gestión de documentos
  • WelcomePage: Pantalla de bienvenida y términos

🔧 Uso Avanzado #

Inicialización del API Service #

import 'package:traderpal_connect/traderpal_connect.dart';

// Inicializar el servicio API
final apiService = ApiService();
await apiService.initialize();

// Validar suscripción
final result = await apiService.validateSubscription('tu-token');

Uso de Providers #

import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:traderpal_connect/traderpal_connect.dart';

class MyWidget extends ConsumerWidget {
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final userStatus = ref.watch(userStatusProvider);

    return userStatus.when(
      data: (status) => Text('Usuario: ${status.userId}'),
      loading: () => CircularProgressIndicator(),
      error: (err, stack) => Text('Error: $err'),
    );
  }
}
import 'package:traderpal_connect/traderpal_connect.dart';

// Navegar a una página específica
GlobalNavigation.navigateToPage(2); // Navega a AccountPage

// Cerrar el SDK
TraderPalSDK.close(context);

🧪 Testing #

Para ejecutar las pruebas del paquete:

flutter test

📝 API Reference #

Clases Principales #

TraderPalSDK

Clase estática principal para inicializar y gestionar el SDK.

Métodos principales:

  • initialize(): Inicializa el SDK con token y userId
  • close(): Cierra el SDK y regresa a la app del cliente
  • accountClosed(): Verifica si la cuenta está cerrada

TraderPalApp

Widget principal que configura la aplicación con tema y navegación.

ApiService

Servicio para realizar llamadas API con manejo de errores normalizado.

Métodos principales:

  • initialize(): Inicializa el cliente HTTP
  • validateSubscription(): Valida el estado de suscripción

SubscriptionService

Servicio para validar tokens JWT y suscripciones.

Métodos principales:

  • validateSubscription(): Valida un token JWT y retorna el estado

AppColors / AppColorsDark

Sistema de colores completo con escalas para diferentes tonos y modos.

Providers Disponibles #

  • authProvider: Gestión de autenticación y tokens
  • userStatusProvider: Estado del usuario
  • marketProvider: Datos de mercado
  • navigationProvider: Control de navegación

Widgets Reutilizables #

  • BottomMenu: Menú de navegación inferior
  • BaseAmountPage: Página base para entrada de montos
  • TraderPalFooter: Footer personalizado
  • MarketStatus: Indicador de estado del mercado
  • SearchResultCard: Tarjeta de resultado de búsqueda
  • DateFilterScreen: Filtro de fechas
  • ConfirmationScreen: Pantalla de confirmación

🔒 Seguridad #

  • Validación automática de tokens JWT
  • Verificación de expiración de tokens
  • Manejo seguro de credenciales
  • Validación de suscripciones en tiempo real

🌐 Plataformas Soportadas #

  • ✅ Android
  • ✅ iOS
  • ✅ Web

📄 Licencia #

Este proyecto está bajo la Licencia especificada en el archivo LICENSE.

🤝 Contribuir #

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📞 Soporte #

Para soporte técnico o consultas sobre el paquete:

  • Crea un issue en el repositorio
  • Contacta al equipo de desarrollo de TraderPal

📚 Ejemplo Completo #

Para ver un ejemplo completo de cómo usar este paquete, consulta el directorio /example.

Ejecutar el ejemplo #

cd example
flutter pub get
flutter run

Desarrollado por TraderPal con ❤️ para la comunidad Flutter

Versión Beta: Esta es una versión beta para pruebas tempranas y retroalimentación. Algunas funcionalidades pueden estar en desarrollo activo.

0
likes
0
points
28
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

[BETA] TraderPal Connect SDK for Flutter - A comprehensive SDK for integrating TraderPal services into Flutter applications with JWT authentication and subscription management. This is a beta version for early testing and feedback.

Repository (GitHub)
View/report issues

Topics

#sdk #authentication #jwt #subscription #traderpal

License

unknown (license)

Dependencies

dio, flutter, flutter_animate, flutter_dotenv, flutter_riverpod, flutter_svg, google_fonts, syncfusion_flutter_charts, table_calendar, url_launcher, webview_flutter

More

Packages that depend on traderpal_connect