2013-01-07 12 views
15

Szukam sposobów na wykorzystanie Ruby do mobilnego programowania wieloplatformowego. Potrzebujemy wsparcia dla co najmniej systemu Android iOS, z obsługą Windows Phone i Blackberry. Będzie to aplikacja, która trafi do sklepów z aplikacjami dla ogółu społeczeństwa, więc nie jest to jedyna w swoim rodzaju wewnętrzna rzecz. Do tej pory znalazłem:Jakie rozwiązanie mobilne oparte na platformie Ruby można zastosować?

  • Rhodes, obejmuje wszystkie platformy wymienione i open source. Nie potrzebujemy dodatkowej (płatnej) funkcjonalności od RhoMobile już teraz
  • RubyMotion; iOS tylko w cenie 199 dolla, niestety nie ma dostępnej wersji trial
  • Ruboto tylko i otwarty Android źródło
  • MobiRuby, iOS tylko z Android wsparcia zaplanowane, open source, ale wygląda na to, że nie jest wystarczająco dojrzałe, w czasie pisania dla naszych potrzeb

Posiadamy również niezbędny przypadek użycia, w którym musimy jednocześnie uzyskać dostęp do kamery i akcelerometru i narysować dane z akcelerometru na ekranie. Ponieważ jest to tak specyficzne, nie jest obsługiwane w żadnej platformie wieloplatformowej, na którą patrzę (włączając w to inne, takie jak Phonegap, Titanium itp.) I wygląda na to, że będę musiał napisać natywny kod dla każdej platformy, aby to działało.

Do tej pory jestem skłonny wybrać Rodos. Jest to sprawdzona struktura i wydaje się, że jest w stanie zrobić wszystko, czego potrzebuję, w tym "rodzimy" dla wyżej wymienionego przypadku użycia. Inną opcją byłoby użycie zarówno RubyMotion, jak i Ruboto, które są zarówno rozwiązaniami do pisania Ruby zamiast Objective-C lub Java. Teoretycznie powinienem być w stanie udostępniać wspólny kod (np. Łączność i pamięć masową) na różnych platformach, chociaż nie mogłem znaleźć żadnych przykładów pomyślnego użycia tych dwóch do napisania aplikacji działającej na systemach Android i iOS.

Zastanawiam się, czy ktoś może potwierdzić moje myślenie lub że coś przeoczyłem. Wszelkie dodatkowe uwagi są oczywiście mile widziane.

+1

Można również rzucić okiem na [QT] (http: //en.wikipedia.org/wiki/Qt_% 28framework% 29 # Platforms), jest to framework obsługujący wiele różnych platform. Istnieje rubygem, [qtbindings] (http://rubygems.org/gems/qtbindings), który zapewnia również powiązania z Ruby. –

+1

Wygląda na to, że Rhodes jest przeznaczony wyłącznie do tworzenia aplikacji internetowych, jak rozumiem w ich samouczku. – Shmidt

+0

Z tego co rozumiem, @Flink jest poprawny, a Rhodes to tylko aplikacje internetowe. –

Odpowiedz

2

Chciałbym śmiało używać natywnej Java dla Androida i RubyMotion dla iOS i mieć dwie podstawy kodu. RubyMotion to najbardziej stabilny z wymienionych i warty rozwoju na iOS, ale na platformie Android nie ma dobrej alternatywy.

+0

na marginesie, rubymotion obsługuje teraz androidy (i OS X, ale nie windows) – rogerdpack

4

Jeśli wybierzesz Ruboto, możesz użyć swojego niezależnego od UI kodu Ruby. Kod UI najprawdopodobniej będzie zależny od platformy.

Ruboto jest wciąż młody, ale coraz więcej projektów zaczyna go używać. Jednym z przykładów jest

https://play.google.com/store/apps/details?id=com.jonsoft.globalchat

Dzieli komunikacie kodu Ruby różnych platformach.

Będąc jednym z twórców projektu Ruboto, mogę obiecać dobre wsparcie i pełne doświadczenie z Ruby.

Na iOS RubyMotion wygląda dobrze, ale go nie używałem. Powinieneś być w stanie użyć wspólnej podstawy kodu dla wspólnej logiki, ale oddzielne podstawy kodu dla interfejsu i dostępu do czujników.

0

Rhodes nie ma nic wspólnego z aplikacjami internetowymi. Rhodes pozwala budować natywne aplikacje z Ruby i jest o wiele lat bardziej dojrzałe niż te alternatywy. Obsługuje również każdego większego smartfona OS

+0

Rhodes ma wiele wspólnego z aplikacjami sieciowymi, ponieważ cała architektura jest wzorowana na Railsach i jest kompatybilna z interfejsami RESTful Webapp. Natywna koncepcja aplikacji jest tylko częściowo aktywna, ponieważ istnieją składniki inne niż rodzime, które mogą powodować problemy z wydajnością. Ponadto nie masz racji co do dojrzałości; baza kodu jest poważnie wadliwa, a wsparcie i dokumentacja są bardzo złe. –

Powiązane problemy