Crear un contador de acciones por minuto (APM) para Windows que monitoree clicks de mouse y teclas presionadas, con overlay para videojuegos y dashboard completo.
- Backend: Rust (Tauri)
- Frontend: React + TypeScript + Tailwind CSS
- Monitoreo: Windows API (GetAsyncKeyState, SetWindowsHookEx)
- UI: Tauri + WebView nativo
- Build: Tauri CLI
-
Eliminar proyecto Flutter anterior - Instalar Rust y Tauri CLI
- Crear proyecto Tauri base
- Configurar estructura de carpetas
- Setup básico de React + TypeScript
- Configurar Tailwind CSS
- Implementar hook de teclado en Rust
- Implementar hook de mouse en Rust
- Crear sistema de conteo de acciones
- Implementar cálculo de APM en tiempo real
- Sistema de eventos entre Rust y Frontend
- Diseño de interfaz principal
- Componente de APM en tiempo real
- Gráfico de historial de APM
- Estadísticas detalladas (clicks vs teclas)
- Botones de control (start/stop/reset)
- Implementar system tray en Rust
- Menú contextual del tray
- Minimizar a tray
- Mostrar/ocultar ventana principal
- Indicador visual de estado en tray
- Ventana overlay transparente
- Posicionamiento configurable
- Mostrar APM actual en overlay
- Overlay siempre visible (topmost)
- Configuración de opacidad y tamaño
- Panel de configuraciones
- Configurar hotkeys
- Configurar overlay (posición, tamaño, opacidad)
- Configurar filtros de aplicaciones
- Guardar configuraciones en archivo
- Historial de sesiones
- Exportar estadísticas
- Perfiles de usuario
- Detección automática de juegos
- Estadísticas por aplicación
- Optimizar rendimiento
- Reducir uso de CPU/RAM
- Mejorar UI/UX
- Testing exhaustivo
- Preparar para distribución
┌─────────────────────────────────────┐
│ APM Counter [_][□][×]│
├─────────────────────────────────────┤
│ │
│ APM ACTUAL: 245 │
│ │
│ ┌─────────────────────────────┐ │
│ │ Gráfico APM │ │
│ │ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ │ │
│ └─────────────────────────────┘ │
│ │
│ Clicks: 1,234 │ Teclas: 2,456 │
│ Tiempo: 05:23 │ Promedio: 198 │
│ │
│ [Start] [Stop] [Reset] [Settings] │
└─────────────────────────────────────┘
┌─────────────┐
│ APM: 245 │
│ ⌨️ 156 🖱️ 89 │
└─────────────┘
apm-counter/
├── src-tauri/ # Backend Rust
│ ├── src/
│ │ ├── main.rs # Punto de entrada
│ │ ├── input_monitor.rs # Monitoreo de input
│ │ ├── apm_calculator.rs # Cálculos APM
│ │ ├── tray.rs # System tray
│ │ └── overlay.rs # Ventana overlay
│ ├── Cargo.toml
│ └── tauri.conf.json
├── src/ # Frontend React
│ ├── components/
│ │ ├── Dashboard.tsx
│ │ ├── APMDisplay.tsx
│ │ ├── Chart.tsx
│ │ ├── Settings.tsx
│ │ └── Overlay.tsx
│ ├── hooks/
│ │ └── useAPM.ts
│ ├── utils/
│ └── App.tsx
├── public/
├── package.json
└── README.md
[dependencies]
tauri = { version = "1.0", features = ["api-all"] }
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
winapi = "0.3" # Para hooks de Windows
tray-icon = "0.8" # System tray{
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"@tauri-apps/api": "^1.2.0",
"recharts": "^2.5.0",
"tailwindcss": "^3.2.0"
}
}# Instalar Tauri CLI
cargo install tauri-cli
# Crear proyecto
cargo tauri init
# Desarrollo
cargo tauri dev
# Build para producción
cargo tauri build- APM calculado correctamente
- Overlay funcional en juegos
- Uso de RAM < 50MB
- Uso de CPU < 2%
- Ejecutable final < 20MB
- Tiempo de inicio < 2 segundos
- Gamer Casual: Ver APM mientras juega
- Gamer Competitivo: Analizar rendimiento y mejorar
- Streamer: Mostrar APM en stream
- Desarrollador: Monitorear productividad
- Configurar entorno de desarrollo
- Crear proyecto Tauri base
- Implementar monitoreo básico
- Crear dashboard mínimo viable
- Iterar y mejorar
Fecha de inicio: $(date) Estimación: 7 días Prioridad: Alta