traderpal_connect 1.0.0-beta.2
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_animatepara 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 #
- 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
- 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'),
);
}
}
Navegación Programática #
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 userIdclose(): Cierra el SDK y regresa a la app del clienteaccountClosed(): 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 HTTPvalidateSubscription(): 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 #
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - 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.