hokusai pocket은 Ruby 개발을 기반으로 하면서도 C 언어 컴파일러와 빌드 도구를 활용하는 독특한 개발 환경을 제공합니다.
프로젝트 설치 및 구조
프로젝트 설정은 hokusai-pocket new 명령어를 통해 이루어지며, 다음과 같은 표준 디렉토리 구조를 생성합니다.
-
.pocket: 설정 파일 (Gem 정의) -
src/app.rb: 기본 애플리케이션 진입점 -
dist/: 컴파일된 앱이 저장되는 위치 (기본, 웹 타겟 등) -
vendor/:mruby,Raylib,tree-sitter등 핵심 라이브러리 소스 코드 -
target/: 빌드된 바이너리, 헤더, 라이브러리 (예:mrbc,libmruby.a,raylib.h)
개발 워크플로우
주요 명령어는 다음과 같습니다.
-
hokusai-pocket compile -t <target>: 다양한 타겟 시스템을 위해vendor소스 코드를 다시 컴파일합니다. -
hokusai-pocket dev -t <target> -a <hokusai app>: 특정 타겟 또는 호스트 시스템에서src/app.rb를 컴파일하고 실행합니다.
Hokusai 애플리케이션 백엔드
hokusai 애플리케이션은 반드시 Hokusai::Backend 문으로 끝나야 하며, Hokusai::Backend.run 블록 내에서 애플리케이션의 타이틀, FPS, 너비, 높이 등을 설정할 수 있습니다. 폰트 등록 및 활성화와 같은 after_load 훅을 통해 추가적인 초기화 작업을 수행할 수 있습니다. require_relative를 통해 여러 Ruby 파일을 하나의 큰 파일로 병합하여 mrbc로 컴파일하는 방식도 지원합니다.
개발 환경 구성
hokusai pocket 자체 개발을 위해서는 Crystal 언어가 추가적인 전제 조건으로 필요하며, shards build 명령어로 바이너리를 빌드할 수 있습니다. Barista라는 도구를 사용하여 빌드 프로세스를 관리합니다.