El diagrama UML de componentes está disponible en dos formatos:
- PlantUML (
ComponentDiagram.png) - Formato estándar para herramientas UML - Documentación Markdown (
ComponentDiagram.md) - Descripción detallada en texto
┌─────────────────────────────────────────────────────────────┐
│ Main Process (Electron) │
│ [main.ts] │
│ • createWindow() │
│ • IPC Handlers │
│ • File System Operations │
└──────────────────────┬──────────────────────────────────────┘
│ IPC
▼
┌─────────────────────────────────────────────────────────────┐
│ Preload Script │
│ [preload.ts] │
│ • contextBridge │
│ • IPC Bridge │
└──────────────────────┬──────────────────────────────────────┘
│ window.electron API
▼
┌─────────────────────────────────────────────────────────────┐
│ Renderer Process (React) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ App.tsx │ │ TitleBar.tsx │ │MainComponent │ │
│ └──────┬───────┘ └──────────────┘ └──────┬───────┘ │
│ │ │ │
│ └──────────────┬───────────────────┘ │
│ │ │
│ ┌──────────────┴───────────────┐ │
│ │ │ │
│ ┌──────▼──────┐ ┌─────────▼────────┐ │
│ │ExtractComp. │ │ CompressComponent│ │
│ └──────┬──────┘ └─────────┬────────┘ │
│ │ │ │
│ └──────────────┬───────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ Zustand Store │ │
│ │ [zustand-state] │ │
│ └─────────┬─────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ localStorage │ │
│ │ (Persistencia) │ │
│ └────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
FicherApp utiliza la arquitectura de procesos de Electron:
- Main Process: Proceso principal que gestiona la aplicación
- Renderer Process: Proceso que ejecuta React (UI)
- Preload Script: Script que actúa como puente seguro entre procesos
La comunicación entre procesos se realiza mediante:
- Main → Renderer:
ipcMain.handle()para recibir solicitudes - Renderer → Main:
ipcRenderer.invoke()para enviar solicitudes - Preload:
contextBridge.exposeInMainWorld()para API segura
El estado se gestiona con Zustand y se persiste automáticamente en localStorage.
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm start
# Compilar para producción
npm run package
# Crear instalador
npm run make- Abre la aplicación
- Haz clic en "Extraer Archivo"
- Selecciona un archivo comprimido (tar, gzip, zip)
- Selecciona los archivos a extraer
- Haz clic en "Extraer Seleccionados" o "Extraer Todo"
- Haz clic en "Comprimir Archivos"
- Selecciona el tipo de archivo (Tar, Gzip, Tgz, Zip)
- Selecciona archivos o carpetas a comprimir
- Selecciona los archivos específicos (si es carpeta)
- Haz clic en "Comprimir Seleccionados" o "Comprimir Todo"
- Context Isolation activado
- Node Integration desactivado
- Comunicación IPC segura
- TypeScript para tipado estricto
- Validación de datos en todos los handlers
- Los datos se persisten automáticamente al cambiar el estado
- El estado se restaura al reiniciar la aplicación
- La comunicación IPC es completamente tipada con TypeScript