Descripción del proyecto
AppAtajos es una aplicación desarrollada para macOS cuyo objetivo principal es reducir la fricción al utilizar herramientas de inteligencia artificial en tareas cotidianas. La idea central consiste en permitir que el usuario seleccione texto en cualquier aplicación, pulse un atajo de teclado previamente configurado y obtenga una respuesta generada por IA sin necesidad de cambiar manualmente de contexto.
El proyecto nace como Trabajo de Fin de Grado y se plantea como una herramienta de productividad centrada en el uso de prompts persistentes. A diferencia de un chatbot tradicional, la aplicación se basa en acciones rápidas reutilizables: corregir un texto, resumirlo, traducirlo, reformularlo o aplicar cualquier plantilla definida por el usuario.
Proyecto TFGObjetivo principal
El objetivo de AppAtajos es ofrecer un sistema ligero, rápido y extensible que permita ejecutar acciones de inteligencia artificial mediante atajos globales del sistema. Para ello, la aplicación combina captura de texto seleccionado, plantillas de prompts, ejecución sobre modelos de IA y devolución del resultado de forma integrada en el flujo de trabajo del usuario.
Funcionalidades principales
Atajos globales
Permite asociar combinaciones de teclas a acciones concretas, de forma que el usuario pueda ejecutar prompts desde cualquier aplicación de macOS.
Captura de texto seleccionado
La aplicación obtiene el texto que el usuario tiene seleccionado en la aplicación activa para utilizarlo como entrada dentro de una plantilla de prompt.
Prompts reutilizables
Cada atajo puede estar vinculado a una plantilla personalizada, permitiendo automatizar tareas frecuentes como resumir, corregir, traducir o reescribir texto.
Integración con modelos IA
El sistema está diseñado para comunicarse con proveedores de inteligencia artificial, priorizando inicialmente modelos locales mediante Ollama.
Tecnologías utilizadas
- Swift: lenguaje principal utilizado para el desarrollo de la aplicación.
- SwiftUI: framework empleado para la construcción de la interfaz gráfica.
- AppKit: utilizado para integraciones específicas con el sistema operativo macOS.
- SwiftData: tecnología empleada para la persistencia local de datos.
- KeyboardShortcuts: librería utilizada para la gestión de atajos globales.
- Ollama: motor local utilizado para ejecutar modelos de inteligencia artificial.
- URLSession: utilizado para la comunicación HTTP con los proveedores de IA.
Arquitectura del sistema
La aplicación se ha diseñado siguiendo una arquitectura hexagonal, separando claramente el núcleo de dominio de las tecnologías externas. Esta decisión permite que la lógica principal de la aplicación no dependa directamente de frameworks concretos como SwiftUI, SwiftData, AppKit u Ollama.
El núcleo contiene las entidades principales y los casos de uso, mientras que las integraciones con el sistema operativo, la persistencia local, los atajos de teclado y los proveedores de inteligencia artificial se implementan mediante adaptadores externos.
Esta separación facilita la evolución del sistema, mejora su mantenibilidad y permite sustituir o ampliar componentes concretos sin afectar al funcionamiento principal de la aplicación.
Flujo de funcionamiento
- El usuario selecciona texto en cualquier aplicación de macOS.
- Ejecuta un atajo global previamente configurado.
- La aplicación captura el texto seleccionado.
- Se construye el prompt aplicando la plantilla asociada al atajo.
- El prompt se envía al proveedor de inteligencia artificial correspondiente.
- La respuesta se muestra al usuario o se utiliza para sustituir el texto original.
Retos técnicos
Uno de los principales retos del proyecto es la integración con el sistema operativo. Al tratarse de una aplicación que necesita interactuar con otras aplicaciones, capturar texto seleccionado y ejecutar atajos globales, es necesario gestionar permisos específicos de macOS, como los permisos de accesibilidad.
Otro aspecto relevante es la organización de la concurrencia y la persistencia local, especialmente al trabajar con SwiftData y operaciones asíncronas. Para evitar acoplamientos innecesarios, se plantea una separación clara entre la lógica de dominio, la infraestructura y la interfaz de usuario.
Estado del proyecto
Actualmente, AppAtajos se encuentra en fase de desarrollo como parte del Trabajo de Fin de Grado. El MVP se centra en macOS e incluye la creación de atajos, la captura de texto seleccionado, la ejecución de prompts y la integración inicial con modelos locales de inteligencia artificial.
Conclusión
AppAtajos busca ofrecer una forma más rápida y natural de utilizar inteligencia artificial en el escritorio. Su propuesta se basa en convertir acciones repetitivas con IA en atajos reutilizables, permitiendo que el usuario mantenga el foco en la tarea que está realizando sin depender constantemente de interfaces externas.

