지난 글에서 맥루비(MacRuby)를 소개했었다. 현재 맥루비는 0.2 버전이 공개되었고, RubyConf 즈음 발표될 0.3 버전은 첫 안정버전이 될 예정이다. 그런데 0.3 버전에 포함될 기능 중 눈에 띄는 것이 하나 있다. 바로 HotCocoa다(개발버전 trunk에서 사용할 수 있다). 뜨거운 루비가 아니라 뜨거운 코코아 ^^
HotCocoa는 Rucola처럼 루비스럽게 코코아를 사용하기 위한 DSL이다. 하지만 프레임워크보다는 API의 접근 방식을 취했다. 코코아 자체가 훌륭한 프레임워크이니까 이게 더 자연스러운 느낌이다.
이 글을 통해 HotCocoa를 처음 접한다면, '도대체 뭐에 쓰는 물건인고?'라는 반응이 당연할 것이다. 아래 코드를 보자.
NSWindow를 하나 만드는 코드인데, 그리 예쁘지않다. 흉직하다는 표현이 어울릴지도 모르겠다. HotCocoa는 이 문제를 해결하려고 한다. 이런 식으로 말이다.
적당한 이름의 DSL과 상황에 맞는 기본값(위의 styleMask처럼)이 제공해 군더더기 코드를 빼자는 것이 HotCocoa의 목적이다. 보다 루비스러운 코코아 API를 만드는 것이다.
그리고 아래 코드처럼 이벤트 처리에는 루비의 블럭 문법을 잘 활용한다.
HotCocoa를 이용하면 인터페이스 빌더 없이도 간편하게 루비로 간단한 UI를 가진 코코아 애플리케이션을 개발할 수 있다.
02 컨트롤 다루기 - 한줄 말하기 애플리케이션에서 루비 코코아로 만들었고, 맥루비(MacRuby) - 루비 코코아의 새로운 도전에서 맥루비로 만들었던 애플리케이션을 이번에는 HotCocoa로 다시 만들어보자.
코드는 아래가 전부다. 따로 NIB 파일이 필요하지도 않다. 마치 무거운 레일스 애플리케이션 대신 Sinatra로 가볍게 애플리케이션을 만드는 느낌이다.
API가 더 늘어나 좀 더 유창한 루비(?)를 구사할 수 있다면, 꽤 재미있어질 것 같다. 그리고 Nib2HotCocoa와 같은 변환기도 하나 있으면 좋겠다.
No comments yet.
You must be logged in to add your own comment.