0

MacRuby

Posted by M on 02:30 in
MacRuby jest implementacją języka Ruby przeniesioną na platformę Mac OS X i umożliwiającą wykorzystanie wszelkich dobrodziejstw Objective-C. Nie należy jednak mylić tego z mostem, pomiędzy obydwoma językami, jakim jest RubyCocoa. Najnowsza wersja - połóweczka - wykorzystuje LLVM (Low-Level Virtual Machine), zamiast YARV, dzięki czemu zyskała na szybkości. Do kompletu dostajemy także HotCocoa - cienką warstwę, która potrafi usprawnić i przyspieszyć tworzenie aplikacji korzystających z API Cocoa. I jako ostatni bonus, wsparcie, dla wprowadzonego w śnieżnym kociaku, Grand Central Dispatch.

require 'rubygems'
require 'hotcocoa'
include HotCocoa
application do |app|
  win = window :size => [100,50]
  b = button :title => 'Hello'
  b.on_action { puts 'World!' }
  win << b
end

Patrząc na powyższy przykład jedno nasuwa się na myśl - krócej napisać aplikację okienkową na maka będzie ciężko. Po kilku godzinach okazuje się jednak, że zrobienie większości rzeczy wymagać będzie i tak mozolnego grzebania w dokumentacji Cocoa i używaniu wszystkich klas bez pośrednictwa HotCocoa. Wystarczy szybki rzut oka na status by się przekonać jak wiele zostało jeszcze do zrobienia.

Odnośnie samego sposobu tworzenia aplikacji, istnieją dwie drogi - Ruby-way i ObjC-way. Ta pierwsza wykorzystuje HotCocoa, druga skłania się ku użyciu samego MacRuby i będzie bliższa dla miłośników XCode :) Znajdziemy w nim odpowiedni szablon aplikacji, który wygeneruje nam na dzień dobry plik main.m:

#import 

int main(int argc, char *argv[])
{
    return macruby_main("rb_main.rb", argc, argv);
}

a także rb_main.rb, którego zadaniem jest załadowanie wszystkich plików Ruby'ego w projekcie.
Wszystko się tu wyklikuje, przeciąga, używa edytora GUI,  upuszcza, przygotowuje targety, linkuje frameworki. Napewno dobre dla ludzi mających już doświadczenie z C i XCode.

Dla tych, którym bliżej jednak do języków skryptowych, przyjaźniejsza może okazać się pierwsza droga z wykorzystaniem HotCocoa, ulubionego edytora i wiersza poleceń. Nowego projektu się nie wyklikuje, a tworzy poleceniem:

hotcocoa demo

w efekcie czego otrzymamy katalog, a w nim:


Teraz wystarczy z wiersza poleceń wykonać komendę:

macrake build run

i cieszyć się pierwszą aplikacją.
Gdy fascynacja automatycznie wygenerowanym "Hello from HotCocoa" minie i zaczniemy grzebać w kodzie prędzej czy później okaże się, że aplikacja się nie uruchamia prawidłowo. Jest coś co może trochę pomóc:

macruby lib/application.rb --debug

Na tym etapie, zaleca się unikanie sprawdzania ile miejsca zajmuje nasz katalog demo.app :) Dla tych, którzy jednak to zrobią jest światełko w tunelu.

Wpomniałem wcześniej o ilości rzeczy, których brakuje wciąż w HotCocoa. Drobną pomocą są mapowania, dzięki którym możemy dodać własne wsparcie dla rozmaitych fragmentów Cocoa. Niestety na opiekunów projektu nie ma zbytnio co liczyć, gdyż niektóre tickety z gotowym rozwiązaniem czekają miesiącami.

Na koniec garść linków:

* Ruby Manor 2009: Ruby & Cocoa
* Test Driven Development in Objective-C with MacRuby
* Developing Cocoa Applications Using MacRuby
* Heating up with HotCocoa
* Controlling iTunes with MacRuby

0 Comments

Prześlij komentarz

Copyright © 2009 tech.matee.net All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.