2009-07-15 29 views
11

Tôi sắp bắt đầu một dự án phát triển một ứng dụng máy tính để bàn Ruby. Tôi hy vọng sẽ khá lớn và tôi muốn học các kỹ thuật để phân chia mã giữa các mô-đun và các kỹ thuật khác để quản lý sự phức tạp. Hầu hết các ứng dụng lớn tôi đã xem xét là các ứng dụng Rails, nhưng chúng không phải là rất hữu ích, bởi vì hầu hết các công việc được thực hiện bởi chính Rails.Các ứng dụng máy tính để bàn không tầm thường sử dụng Ruby?

Bạn muốn giới thiệu mã nguồn nào? Tôi không quan tâm đến các ứng dụng thư viện hoặc Rails, bởi vì tôi nhận được cách họ làm việc. Ứng dụng CLI là OK, nhưng tôi chủ yếu quan tâm đến các ứng dụng GUI (tôi đang sử dụng Gtk +, nhưng tôi có thể học được nhiều từ các ứng dụng bằng cách sử dụng các bộ công cụ GUI khác).

Trả lời

2

Có thể kiểm tra FxRuby (một thư viện ruby ​​gui wrapper) để xem điều đó có dẫn tới bất kỳ khách hàng tiềm năng nào không.

Bạn chắc chắn có thể áp dụng cùng một nguyên tắc tổ chức được sử dụng cho ứng dụng Rails và áp dụng chúng cho ứng dụng dành cho máy tính để bàn. Khung công tác Griffon (một khung công tác Swing java) về cơ bản đã làm điều đó cho Grails (về bản chất là một bản sao của Rails java).

+0

Yeah, điều tuyệt vời về Rails là bạn thực sự không cần phải suy nghĩ để làm điều đó (Tôi biết đó là một sự phóng đại).Chỉ cần đặt mã của bạn nơi Rails mong đợi và mọi thứ hoạt động. Rails về cơ bản xử lý độ phức tạp và mô đun. Có lẽ tôi nên phát triển một khuôn khổ để bọc ứng dụng của tôi xung quanh ... –

+1

Rails chính nó đã không được phát triển chính xác như một khuôn khổ - nó được trích xuất từ ​​Basecamp. Vì vậy, tôi sẽ nói rằng nếu bạn thiết kế ứng dụng của bạn tốt, bạn sẽ có sự khởi đầu của một khuôn khổ tốt. – Chuck

7

Hệ thống trình quản lý plugin FreeBASE được thiết kế như một cách để sắp xếp mã trong các ứng dụng GUI và nó hoạt động tốt cho tôi trong việc phát triển Redcar, trình soạn thảo văn bản Ruby/Gtk.

FreeBASE không liên quan gì đến dự án cơ sở dữ liệu mở trực tuyến Freebase, nó là thứ mà những người Ruby FreeRIDE tự do phát triển để giúp họ cấu trúc một dự án GUI lớn dễ dàng hơn.

Vì vậy, FreeBASE là một phần của FreeRIDE, nhưng cũng hoạt động riêng. Bạn có thể tìm thấy thông tin về nó here.

+0

Tôi thực sự đã đọc khá nhiều mã nguồn của Redcar cho cảm hứng (khá tuyệt, nhưng tôi là một anh chàng Vim). Tôi sẽ thanh toán FreeBASE. Cảm ơn Daniel và duy trì công việc tuyệt vời trên Redcar, có thể một ngày nào đó tôi sẽ chuyển đổi;) –

2

Nghe nói về JotBot trước đó, chưa thử.

MonkeyBars cũng có trong đầu, khi nói về khung MVC cho máy tính để bàn (J) Ruby.

4

Kiểm tra LimeChat, là một ứng dụng khách đồ họa được viết bằng Ruby (Cocoa). Mã nguồn của nó có sẵn trên github.

5

(Lúc nguy cơ downvotes)

Ruby là ngôn ngữ chính của tôi, và tôi sẽ tham mưu chống mã hóa một ứng dụng máy tính để bàn lớn trong Ruby, trừ khi phần lớn các mã đã được viết và chỉ đơn giản là cần một lối vào GUI mới phát triển nhanh chóng. IMHO, bạn đang ở trong một thế giới đau đớn. CRuby không phải là công cụ tốt nhất cho công việc này vì nó yếu ở một số khu vực quan trọng đối với các ứng dụng dành cho máy tính để bàn, ví dụ: luồng, non-blocking IO, 1 lớp GUI hỗ trợ bộ công cụ, vv ...

JRuby hoặc IronRuby là một câu chuyện khác nhau, mặc dù ...

+0

vâng bất cứ điều gì ngoài jruby khá nhiều sợ tôi về tính di động nền tảng chéo ... nếu bạn chỉ muốn nhắm mục tiêu một nền tảng thì nó có thể hoạt động . – rogerdpack

+1

ahh và RedCar, được đề cập trong bình luận của Daniel Lucraft, có thể đã đi đến cùng một kết luận; Họ chuyển sang JRuby. Thật vậy, đó là biên tập viên của Daniel;) –

+0

Nếu bạn định sử dụng GTK + và muốn giải quyết vấn đề IO không chặn, tôi khuyên bạn nên sử dụng GIO. Dù sao thì dựa nhiều hơn vào GTK + libs và các công cụ cung cấp cho bạn nhiều tính di động và mức độ giống như được cung cấp bởi GTK +, thay vì Ruby. –

7

Tôi là chủ sở hữu của JotBot, một ứng dụng máy tính để bàn để theo dõi thời gian. Nó được xây dựng bằng cách sử dụng Monkeybars, với JRuby + Swing. Nó là một công cụ cực kỳ mạnh mẽ cho các ứng dụng máy tính để bàn đa nền tảng. Có nhược điểm là việc sử dụng Swing có thể ảnh hưởng đến việc đạt được một cái nhìn bản địa thực sự cho bất kỳ máy tính để bàn cụ thể nào, nhưng khác hơn là nó là một chiến thắng thực sự. Ngoài ra, khi sử dụng Rawr, bạn có thể dễ dàng tạo các ứng dụng và trình cài đặt đi kèm cho OSX, Windows và Ubuntu.

Thả cho tôi một dòng nếu bạn có bất cứ thắc mắc: [email protected]

Các vấn đề liên quan