Hokusai Pocket es un proyecto innovador que permite crear aplicaciones y juegos portátiles utilizando el framework Hokusai, construido sobre Ruby. Su principal objetivo es facilitar el desarrollo de software que pueda ejecutarse en una amplia variedad de plataformas sin necesidad de una instalación compleja. Piensa en ello como una forma de empaquetar tu aplicación Ruby en un único ejecutable que se puede distribuir fácilmente.
¿Cómo funciona? Hokusai Pocket se basa en barista, una herramienta que se encarga de compilar las dependencias necesarias (mruby, tree-sitter, raylib) y generar el ejecutable hokusai-pocket. Este ejecutable, a su vez, se utiliza para ejecutar aplicaciones Hokusai escritas en Ruby. El proceso de compilación se simplifica con comandos como barista cli, que automatiza la creación de las bibliotecas necesarias. Además, ofrece la posibilidad de construir ejecutables específicos para diferentes sistemas operativos (Windows, macOS, Linux) y, aunque está en desarrollo, incluso para plataformas más exóticas como Nintendo Switch o Android.
¿Para qué sirve y quién lo usaría? Hokusai Pocket es ideal para desarrolladores Ruby que buscan una forma sencilla de distribuir sus aplicaciones, especialmente aquellos que trabajan con frameworks como Hokusai o DragonRuby (que se basa en Hokusai). Es útil para crear juegos, herramientas de línea de comandos, o cualquier aplicación que requiera una distribución fácil y multiplataforma. El ejemplo proporcionado, counter.rb, ilustra cómo crear una aplicación simple con Hokusai, definiendo su interfaz de usuario con un lenguaje de marcado similar a HTML/CSS y utilizando Ruby para la lógica de la aplicación.
Consideraciones importantes: El proyecto se encuentra en desarrollo activo, por lo que es probable que experimente cambios. La documentación indica que no se recomienda utilizar mrbgems para construir el proyecto, sugiriendo que se sigan las instrucciones proporcionadas por barista. La compilación cruzada para diferentes plataformas está en desarrollo y requiere el uso de Docker. El proyecto también incluye una implementación básica de require_relative, que consolida el código Ruby en un único archivo para su compilación. La estructura del proyecto incluye directorios para el ejecutable, gramática, código Ruby, archivos C de soporte y el archivo de construcción (Brewfile). Finalmente, el proyecto se inspira en otros frameworks como Taylor, Ruby 2D y DragonRuby, demostrando su integración en el ecosistema de desarrollo Ruby.
