2009-07-15 7 views
11

Ich bin dabei, ein Projekt zu starten, das eine Ruby-Desktop-Anwendung entwickelt. Ich erwarte, ziemlich groß zu sein, und ich möchte Techniken lernen, um Code unter Module und andere Techniken zur Verwaltung von Komplexität aufzuteilen. Die meisten großen Apps, die ich mir angesehen habe, sind Rails-Apps, aber diese sind nicht sehr hilfreich, da die meiste Arbeit von Rails selbst erledigt wird.Nicht-triviale Desktop-Anwendungen, die Ruby verwenden?

Welchen Quellcode würden Sie mir empfehlen? Ich bin nicht an Bibliotheken oder Rails-Apps interessiert, weil ich verstehe, wie sie Dinge machen. CLI-Apps sind in Ordnung, aber ich bin hauptsächlich an GUI-Apps interessiert (ich benutze Gtk +, aber ich kann genauso viel von Apps lernen, die andere GUI-Toolkits verwenden).

Antwort

2

Vielleicht überprüfen Sie FxRuby (ein Ruby GUI Bibliothek Wrapper), um zu sehen, ob das führt zu Leads.

Sie könnten sicherlich die gleichen organisatorischen Prinzipien für Rails-Apps anwenden und sie auf eine Desktop-App anwenden. Das Griffon-Framework (ein Java-Swing-Framework) hat das im Grunde genommen für Grails getan (im Wesentlichen ein Java-Rails-Klon).

+0

Ja, die große Sache über Rails ist, dass Sie wirklich denken, müssen es nicht zu tun (ich weiß, dass eine Übertreibung ist).Setzen Sie einfach Ihren Code dorthin, wo Rails es erwartet und alles funktioniert. Rails übernimmt grundsätzlich die Komplexität und Modularität. Vielleicht sollte ich ein Framework entwickeln, um meine App zu umschließen ... –

+1

Rails selbst wurde nicht genau als Framework entwickelt - es wurde aus Basecamp extrahiert. Ich würde also sagen, dass Sie, wenn Sie Ihre App gut entwerfen, den Anfang eines guten Rahmens haben werden. – Chuck

7

Das FreeBASE-Plugin-Manager-System wurde entwickelt, um Code in GUI-Anwendungen zu organisieren, und es hat für mich in meiner Entwicklung von Redcar, einem Ruby/Gtk-Texteditor, gut funktioniert.

FreeBASE hat nichts mit dem online geöffneten Datenbankprojekt Freebase zu tun, es ist etwas, das die FreeRIDE Ruby IDE entwickelt hat, um es ihnen zu erleichtern, ein großes GUI-Projekt zu strukturieren.

Also FreeBASE ist Teil von FreeRIDE, funktioniert aber auch separat. Sie können Informationen darüber finden here.

+0

Ich habe tatsächlich eine Menge von Redcar's Quellcode zur Inspiration gelesen (ziemlich cool, aber ich bin ein Vim-Typ). Ich werde FreeBASE auschecken. Danke Daniel und mach weiter mit der tollen Arbeit an Redcar, vielleicht werde ich eines Tages konvertieren;) –

2

Gehörte über JotBot früher, habe es noch nicht versucht, obwohl.

MonkeyBars kommt auch in den Sinn, wenn über MVC-Frameworks für Desktop (J) Ruby zu sprechen.

4

Auschecken LimeChat, die eine grafische IRC-Client in Ruby (Cocoa) geschrieben ist. Sein Quellcode ist auf GitHub verfügbar.

5

(Auf die Gefahr downvotes)

Ruby ist meine primäre Sprache, und würde ich raten, eine große Desktop-Anwendung in Ruby gegen Codierung, es wäre denn, der Großteil des Codes bereits geschrieben und muss lediglich einen neuen GUI-Frontend schnell entwickelt. IMHO, Sie sind in einer Welt der Schmerzen. CRuby ist nicht das beste Werkzeug für diesen Job, da es in einigen Bereichen, die für Desktop-Anwendungen, z. Einfädeln, nicht blockierende IO 1. Klasse GUI-Toolkit Support, etc ...

JRuby oder IronRuby gibt verschiedene Geschichten, obwohl ...

+0

Ja, alles andere als jruby schreckt mich ziemlich in Bezug auf plattformübergreifende Portabilität ... wenn du nur eine Plattform anvisieren willst, dann könnte es funktionieren . – rogerdpack

+1

ahh, und RedCar, erwähnt in Daniel Lucrafts Kommentar, könnte zu demselben Schluss gekommen sein; Sie machten den Wechsel zu JRuby. In der Tat ist es Daniels eigener Editor;) –

+0

Wenn Sie GTK + verwenden und nicht-blockierende E/A-Probleme lösen wollen, würde ich vorschlagen, GIO zu verwenden. Wenn du dich mehr auf GTK + -libs und -tools verlässt, erhältst du mehr Portabilität und Ähnlichkeitsgrad, die von GTK + anstelle von Ruby bereitgestellt werden. –

7

Ich bin der Besitzer JotBot, eine Desktop-Anwendung für die Verfolgung Zeit. Es wurde mit Monkeybars, mit JRuby + Swing gebaut. Es ist ein äußerst robustes Toolset für plattformübergreifende Desktop-Anwendungen. Es gibt den Nachteil, dass die Verwendung von Swing das Erzielen eines echten nativen Aussehens für einen bestimmten Desktop beeinträchtigen kann, aber ansonsten ist es ein echter Gewinn. Mit Rawr können Sie außerdem gebündelte Anwendungen und Installationsprogramme für OSX, Windows und Ubuntu erstellen.

mich eine Linie fallen, wenn Sie Fragen haben: [email protected]

Verwandte Themen