Aplicación Flutter para escaneo de códigos QR y visualización de precios de criptomonedas con soporte multiplataforma para Android y Windows.
- Escáner QR: Escanea códigos QR usando la cámara del dispositivo
- Entrada Manual: Introduce códigos manualmente si es necesario
- Visualización de Criptomonedas: Muestra información de criptomonedas desde la API de CoinGecko
- Autenticación PIN: PIN seguro de 4 dígitos con máximo 3 intentos
- Diseño Responsive: Optimizado para dispositivos móviles
- Proceso de Bandeja del Sistema: Se ejecuta en segundo plano con icono en la bandeja del sistema
- Menú Contextual: Click derecho en el icono muestra la opción "Mostrar UI"
- Flujo PIN: Al hacer clic en "Mostrar UI" se abre la autenticación PIN
- UI Completa: Después del PIN, acceso a la interfaz completa del escáner de criptomonedas
- Controles de Ventana: La ventana PIN incluye botones minimizar, maximizar, cerrar
- Proceso único: PIN → Pantalla Principal
- Flujo estándar de aplicación móvil
- Ejecutable único con integración de bandeja del sistema
- Proceso de bandeja en segundo plano con ventana oculta
- Click en icono de bandeja → Abre autenticación PIN
- PIN → Pantalla Principal (misma funcionalidad que móvil)
lib/
├── main.dart # Punto de entrada Android/iOS
├── tray_main.dart # Punto de entrada bandeja del sistema Windows
├── models/
│ └── cryptocurrency.dart # Modelo de datos de criptomoneda
├── providers/
│ └── app_provider.dart # Gestión de estado
├── screens/
│ ├── pin_screen.dart # Autenticación PIN
│ ├── main_screen.dart # Interfaz principal de la aplicación
│ └── qr_scanner_screen.dart # Escáner de códigos QR
├── services/
│ ├── api_service.dart # Integración API CoinGecko
│ └── auth_service.dart # Servicio de autenticación PIN
├── utils/
│ └── responsive_helper.dart # Utilidades de diseño responsive
└── widgets/
└── crypto_skeleton.dart # Widget de esqueleto de carga
- Flutter SDK (3.0.0 o superior)
- Dart SDK (3.0.0 o superior)
- Android SDK (para compilaciones Android)
- Visual Studio Build Tools (para compilaciones Windows)
- Clonar el repositorio:
git clone https://github.com/DarkCodex29/Exeos-Crypto
cd Exeos-Crypto- Instalar dependencias:
flutter pub get- Habilitar Windows desktop (si compilas para Windows):
flutter config --enable-windows-desktop# Desarrollo
flutter run -d android
# APK de producción
flutter build apk --release# Desarrollo
flutter run -d ios
# Producción
flutter build ios --release# Desarrollo (Bandeja del Sistema)
flutter run -d windows --target lib/tray_main.dart
# Desarrollo (Flujo Móvil)
flutter run -d windows --target lib/main.dart
# Compilación de Producción
build.bat
# o
./build.shEl script de compilación crea crypto_scanner.exe con funcionalidad de bandeja del sistema.
- Ejecutar la aplicación
- Configurar PIN de 4 dígitos (primera vez)
- Introducir PIN para acceder a la pantalla principal
- Usar escáner QR o entrada manual
- Ver información de criptomonedas
- Ejecutar
crypto_scanner.exe - La aplicación se inicia en la bandeja del sistema (buscar icono en área de notificación)
- Click derecho en icono de bandeja → "Mostrar UI"
- Introducir PIN (configurar en primer uso)
- Acceder a la interfaz completa del escáner de criptomonedas
- Cerrar ventana para volver a la bandeja
Usa la API pública de CoinGecko:
- Endpoint:
https://api.coingecko.com/api/v3/coins/markets - No requiere clave API
- Límite de velocidad: 50 solicitudes/minuto
flutter- Frameworkprovider- Gestión de estadohttp- Solicitudes HTTPshared_preferences- Almacenamiento local
mobile_scanner- Escaneo de códigos QR
window_manager- Gestión de ventanastray_manager- Integración de bandeja del sistema
responsive_helper- Utilidades responsive personalizadas
- Autenticación PIN de 4 dígitos
- Máximo 3 intentos de PIN
- Almacenamiento local seguro
- Validación de entrada
- Manejo de errores
# Ejecutar todas las pruebas
flutter test
# Análisis estático
flutter analyze# Flujo Android/iOS en Windows (para pruebas)
flutter run -d windows --target lib/main.dart
# Flujo de bandeja del sistema Windows
flutter run -d windows --target lib/tray_main.dartbuild.bat- Script batch de Windowsbuild.sh- Script shell Unix
Ambos crean un ejecutable único crypto_scanner.exe con funcionalidad de bandeja.
- Icono de bandeja no visible: Verificar configuración del área de notificación de Windows
- Fallo en compilación: Asegurar que Visual Studio Build Tools estén instalados
- Flutter no encontrado: Agregar Flutter al PATH del sistema
- Permisos de cámara: Conceder acceso a la cámara para escaneo QR
- Errores de red: Verificar conexión a internet para llamadas a la API
- PIN bloqueado: Esperar tiempo de espera o reinstalar aplicación
- Usa el paquete
tray_managerpara soporte de bandeja multiplataforma - Ventana oculta de 1x1 píxel mantiene el contexto de Flutter
- Redimensionamiento dinámico de ventana para diferentes estados de UI
- Limpieza adecuada al salir de la aplicación
- Puntos de ruptura: Móvil (<600px), Tablet (600-1200px), Escritorio (>1200px)
- Diseños adaptativos y dimensionamiento de componentes
- Ajustes de UI específicos por plataforma
- Patrón Provider para estado reactivo
- Persistencia de estado de autenticación
- Caché de datos de API y manejo de errores
Gianpierre Mio
- GitHub: @DarkCodex29
- Proyecto: Exeos-Crypto
Este proyecto es para propósitos de demostración técnica.