La gema Ruby ci_uy, el validador de números de Cédulas de Identidad Uruguaya, me ha servido mucho como ejercicio para practicar y aprender cosas nuevas en programación. Ya usé el algoritmo para programar y empaquetar código en Rust, Crystal y Go. Es lo suficientemente simple como para escribirlo en un lenguaje que recién estoy aprendiendo, pero también termina teniendo una utilidad final. Y ya tengo los tests hechos, es sólo cuestión de portarlos a otros lenguajes 🤪

Algo que estaba pendiente y tenía ganas de desarrollar desde hace mucho tiempo era una interfaz gráfica de escritorio (ya existe una versión web). Alguna vez consideré probar hacer algo con Mono, e incluso estuve mirando para hacer algo con Godot. Siempre con el fin de aprender más que de generar una aplicación que sirva de mucho.

En algún momento me encontré con libui: Una biblioteca portátil en Ruby para desarrollar interfaces gráficas de usuario. No tiene dependencias en Ruby, llama a funciones C a través de la librería Ruby estándar. El código es algo raro, no es orientado a objetos, más bien como un DSL estructurado. Pero el resultado final es decente, y en total fueron menos de 100 líneas de código:

ci_ui

Diría que libui es una buena herramienta para desarrollar interfaces gráficas de usuario de escritorio sencillas. La documentación está basada más que nada en código de ejemplo. Así que me resultó ideal para mi encare a la programación: ir metiendo mano y cambiando cosas hasta que anda.

Hace mucho tiempo que no pruebo otras biblioteca similares en Ruby. Recuerdo intentar hacer algo con las integraciones Ruby y GTK, pero no llegué muy lejos. Habiendo pasado parte mi carrera desarrollando aplicaciones de escritorio, cada tanto me dan ganas de volver a ese mundo a programar (siempre que no sea con Java [1] [2] 😆).

El código fuente está disponible en GitHub. Por ahora no tengo ningún cambio en mente para esta gema, aunque recientemente actualicé el proceso de testing para incluir Ruby 3 y asegurar compatibilidad con esta última versión estable de Ruby.

No hay comentarios en este post

Feed de comentarios

Dejar un comentario

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.

Toasty!