0
MacRuby
Posted by M
on
02:30
in
MacRuby
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.
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:
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:
w efekcie czego otrzymamy katalog, a w nim:
Teraz wystarczy z wiersza poleceń wykonać komendę:
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:
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
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:
#importint 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
Prześlij komentarz