2009-06-02 8 views
10

Gibt es neben Shoes auch eine Möglichkeit, plattformübergreifende GUI-Desktop-Anwendungen zu entwickeln und zu verteilen, die in Ruby geschrieben sind?Ruby/Python Desktop-Anwendungen verteilen

Ich bin der Meinung, dass allgemeine Bugginess von _Whys Anwendungen ist außergewöhnlich lähmend im Falle von Schuhen, und alles, was komplexer als eine Zwei-Tasten-Formular ist ein Schmerz zu pflegen.

RubyGTK, wxRuby, usw. scheinen vielversprechend zu sein, aber sie lösen nicht das Problem, eine App so zu verteilen, dass Ruby nicht auf den Computern der Benutzer vorinstalliert ist - und Bibliotheken wie ruby2exe scheinen schrecklich zu sein veraltet und unvollständig.

Allgemein - was ist die aktuelle Modeerscheinung?

BTW: Wenn es eine wirklich einfache Lösung in Python gibt, könnte ich erwägen, die Dinge, die ich in Python mache, zu wiederholen.

+0

@ Bluebird75 Warum haben Sie das Python-Tag entfernt? Die meisten Antworten sind Python-bezogen. –

+0

@dex Rollback'd. – apostlion

Antwort

11

Ich weiß nicht über Ruby2exe, aber py2exe funktioniert perfekt. Sogar mit Libraries wie wxWidgets. bearbeiten: Sie haben nicht einmal die Benutzer zu fragen haben wxWidgets zu installieren, ist es mit der App gebündelt (Gleiches gilt für py2app)

Ich benutze es für mein sehr kleines Projekt here.

Für die Mac-Menge funktioniert py2app auch gut mit wxWidgets.

+1

Ja, ich habe py2app nicht verwendet, aber py2exe ist ausgezeichnet. – Pesto

+0

Fand es nicht wirklich als Entwickler, sondern py2exe gebündelte Anwendungen mehrmals verwendet, und die Installation/Verwendung/Deinstallation war ziemlich nahtlos. – apostlion

+0

Ich benutze auch py2exe + wxPython. Die py2exe-Dokumentation ist nicht die beste, aber ich habe es immer getan, was ich wollte. – FogleBird

2

Der Stand der Dinge ist ziemlich schlecht. Die derzeit zuverlässigste Methode ist die Verwendung von JRuby. Ich weiß, das ist wahrscheinlich nicht die Antwort, die du hören möchtest, aber wie du sagst, ist ruby2exe unzuverlässig, und Shoes ist weit entfernt (und ist nicht einmal eine vollständige Anwendung). Persönlich kann ich Benutzer nicht zwingen, GTK oder Qt oder WxWidgets zu installieren, aber die JVM ist ziemlich allgegenwärtig.

+1

Das ist in der Tat nicht genau die Art von Antwort, die ich hören möchte, aber ich habe nicht viele Optionen, und unter ihnen ist JRuby bei weitem nicht der schlechteste. – apostlion

6

Ich weiß nicht über Ruby, aber der Standard für Python ist py2exe zum Erstellen von Windows-Binärdateien. Für mich hat die Cross-Plattform pyinstaller einmal gut funktioniert. Für Ihre GUI ist TkInter der Standard. Viele Leute mögen wxPython. Alle diese sind ziemlich aktiv entwickelt. Ich schlage vor, mit diesen Optionen ein wenig herumzuspielen, um zu entscheiden, ob Python die bessere Wahl ist.

1

Je nachdem wie weit die Entwicklung fortgeschritten ist, ist Shoes ziemlich gut. Es ist im Grunde eine eigene Ruby Distribution. Es kann ein wenig versteckt sein (im Menü Dateien), aber es ermöglicht Ihnen, Ihre Anwendung für alle 3 Plattformen zu paketieren, ohne diesen Schuh Startbildschirm zu haben.

Die Rendering-Engine dahinter ist Kairo.

+2

Die Verpackungseigenschaften von Shoes sind eigentlich ziemlich gut. Aber das Framework selbst ist alles andere als ideal - beginnen Sie mit IO/Dateisystem schwer zu arbeiten, und Sie werden sehen, was ich meine. – apostlion

+2

Ich habe mich rein auf die Verpackung bezogen, danke für die Klärung. – Skade

8

Für Ruby, die One-Click Ruby Application Builder (OCRA) tritt als Nachfolger von .

Ocra arbeitet mit Ruby 1.8.6 und 1.9.1 und mit wxRuby. Unterstützt LZMA-Komprimierung für relativ kompakte ausführbare Dateien.

+0

Danke für den Vorschlag! – apostlion

+1

.exe-Format nur, obwohl als x-Plattform. Zumindest können Sie sich darauf verlassen, dass Ruby/Python auf Macs installiert wird, aber Sie müssen Ihre Anwendung dennoch als Paket bündeln, damit sie erkannt wird. – JulesLt

-2

Ich habe gelesen (aber nicht verwendet) Seattlerb Wilson, die sich als eine reine x86-Assembler beschreibt, aber es klingt nicht wie es Cross-Plattform oder GUI wäre.

0

Ich glaube nicht, dass jemand wirklich seine Frage beantwortet hat.

Für mich benutze ich VB, um Shell() Aufrufe zu Ocra kompilierten Ruby-Skripten. Es funktioniert ziemlich gut und erlaubt mir, Anwendungen zu erstellen, die in allen modernen Betriebssystemen laufen.

Linux-Tests werden mit Wine ausgeführt, um sicherzustellen, dass ich eine .NET-Version von VB für die EXE-Kompilierung verwende.

+0

Ich folge nicht ganz dem letzten Satz - also warum Wine involviert ist und nicht direkt native Ausführung unter Linux? Ist es wirklich erforderlich ?? – JulesLt

+0

Es ist von 6 Jahren, aber ja, es macht mir auch nicht viel Sinn ... –