Proyectos: Gestión de Procesos en Kotlin
Cada uno de los siguientes proyectos está diseñado para reforzar y aplicar los conceptos aprendidos en la gestión de procesos en Kotlin. Estos proyectos cubren desde la creación y manejo básico de procesos hasta la comunicación avanzada entre procesos y la integración con herramientas del sistema operativo.
Si deseas crear proyectos Kotlin Multiplatform (KMP) que incluyan soporte para escritorio, puedes utilizar el Kotlin Multiplatform Project Wizard
Proyecto 1: Monitor de Procesos sencillo
Descripción: Crea una aplicación que liste todos los procesos en ejecución en el sistema, mostrando su PID, nombre, usuario y uso de CPU/memoria.
Requisitos:
- La aplicación debe permitir filtrar procesos por nombre o usuario.
- Debe mostrar un resumen del uso total de CPU y memoria.
- Debe permitir finalizar un proceso seleccionado.
- Debe poder actualizar la lista de procesos al presionar un botón o seleccionar una opción de menú.
- Debe tener una interfaz gráfica sencilla para mostrar la información.
- También puede ser una aplicación de consola con menús interactivos, pero esta opción será menos valorada.
- Utilizar
ProcessBuilderpara ejecutar comandos del sistema comops,top, otasklistsegún el sistema operativo.- Debe detectarse el sistema operativo y ajustar los comandos en consecuencia.
- Implementar manejo de errores para casos como permisos insuficientes al intentar finalizar un proceso.
- Documentar el código y la lógica utilizada. Tecnologías: Kotlin, JavaFX o Compose for Desktop, comandos del sistema operativo.
Proyecto 2: Herramienta de Automatización de Tareas
Descripción: Desarrolla una herramienta que permita a los usuarios definir y ejecutar tareas automatizadas mediante scripts o comandos del sistema.
Requisitos:
- La herramienta debe permitir a los usuarios crear, editar y eliminar tareas.
- Cada tarea puede ser un comando del sistema o un script (por ejemplo, un script de shell o batch).
- Debe permitir programar la ejecución de tareas en intervalos regulares (por ejemplo, cada hora, diariamente).
- Debe registrar la salida y los errores de cada tarea en un archivo de log.
- Debe tener una interfaz gráfica para gestionar las tareas y ver los logs.
- Utilizar
ProcessBuilderpara ejecutar los comandos o scripts definidos por el usuario. - Implementar manejo de errores para casos como comandos inválidos o fallos en la ejecución.
- Documentar el código y la lógica utilizada.
Tecnologías: Kotlin, JavaFX o Compose for Desktop,
ProcessBuilder.
Proyecto 3: Lanzador de Juegos o Aplicaciones
Descripción: Crea una aplicación que permita a los usuarios lanzar juegos o aplicaciones instaladas en su sistema desde una interfaz centralizada. Requisitos:
- La aplicación debe escanear el sistema en busca de juegos o aplicaciones instaladas y listarlas.
- Debe permitir a los usuarios lanzar cualquier juego o aplicación con un solo clic.
- Debe mostrar información básica sobre cada juego o aplicación, como nombre, icono y ruta de instalación.
- Debe permitir a los usuarios agregar juegos o aplicaciones manualmente si no se detectan automáticamente.
- Utilizar
ProcessBuilderpara lanzar los juegos o aplicaciones. - Implementar manejo de errores para casos como rutas inválidas o fallos al iniciar la aplicación.
- Documentar el código y la lógica utilizada.
Tecnologías: Kotlin, JavaFX o Compose for Desktop,
ProcessBuilder.
Proyecto 4: Sistema de Comunicación entre Procesos (IPC)
Descripción: Desarrolla una aplicación que demuestre la comunicación entre procesos utilizando pipes o sockets. Requisitos:
- La aplicación debe consistir en dos procesos: un productor y un consumidor.
- El proceso productor debe generar datos (por ejemplo, números aleatorios, texto) y enviarlos al proceso consumidor.
- El proceso consumidor debe recibir los datos y procesarlos (por ejemplo, calcular la suma de números, contar palabras).
- Debe ser posible seleccionar entre varias posibilidades de procesos productores y mostrar el progreso en la interfaz.
- Utilizar pipes o sockets para la comunicación entre los procesos.
- Implementar manejo de errores para casos como fallos en la comunicación o procesos que no responden.
- Documentar el código y la lógica utilizada.
Tecnologías: Kotlin,
ProcessBuilder, JavaFX o Compose for Desktop, pipes o sockets.
Proyecto 5: Procesador de ficheros concurrente
Descripción: Crea una aplicación que procese múltiples ficheros de manera concurrente utilizando procesos separados.
Requisitos:
- La aplicación debe permitir al usuario seleccionar múltiples ficheros para procesar.
- Cada fichero debe ser procesado por un proceso separado, utilizando
ProcessBuilder. - El procesamiento puede ser una operación simple, como contar líneas, palabras o caracteres. Debe ser el usuario el que elija cuál de estas operaciones quiere realizar (pueden ser una o más de cada vez).
- La aplicación debe mostrar el progreso de cada proceso y el resultado final una vez que todos los procesos hayan terminado.
- Implementar manejo de errores para casos como ficheros no encontrados o fallos en el procesamiento.
- La aplicación debe mostrar la selección de los procesos a realizar sobre el fichero y mostrar el progreso en la interfaz.
- Documentar el código y la lógica utilizada.
Tecnologías: Kotlin,
ProcessBuilder, JavaFX o Compose for Desktop, concurrencia.