2013-01-07 31 views
15

Tôi đang tìm cách sử dụng Ruby cho phát triển đa nền tảng di động. Chúng tôi cần hỗ trợ cho ít nhất Android en iOS, với Windows Phone và Blackberry hỗ trợ như là tốt đẹp để có. Nó sẽ là một ứng dụng mà sẽ kết thúc trong các cửa hàng ứng dụng cho công chúng, vì vậy nó không phải là một điều enterprisey chỉ trong nhà. Cho đến nay tôi đã tìm thấy:Giải pháp đa nền tảng di động dựa trên Ruby nào để sử dụng?

  • Rhodes, bao gồm tất cả các nền tảng được đề cập và nguồn mở. Chúng tôi không cần thêm chức năng (trả phí) từ RhoMobile ngay bây giờ
  • RubyMotion; iOS chỉ và chi phí 199 dolla, không may không có phiên bản dùng thử có sẵn
  • Ruboto, Android chỉ và mã nguồn mở
  • MobiRuby, iOS chỉ với sự hỗ trợ Android dự kiến, mã nguồn mở, nhưng có vẻ như nó không đủ trưởng thành tại thời điểm viết bài cho các nhu cầu của chúng tôi

Chúng tôi cũng có trường hợp sử dụng phải có trong đó chúng tôi cần truy cập cả máy ảnh và gia tốc kế đồng thời và vẽ dữ liệu từ gia tốc kế trên màn hình. Bởi vì điều này rất cụ thể, nó không được hỗ trợ trong bất kỳ khung công tác đa nền tảng nào mà tôi đã xem (bao gồm các khung khác như Phonegap, Titanium, v.v.) và có vẻ như tôi cần phải viết mã gốc cho mỗi nền tảng để làm việc này.

Cho đến giờ, tôi muốn chọn Rhodes. Đó là một khuôn khổ đã được chứng minh và dường như có thể làm tất cả mọi thứ tôi cần, bao gồm cả 'đi bản địa' cho trường hợp sử dụng nói trên. Một lựa chọn khác là sử dụng cả RubyMotion và Ruboto, cả hai đều là giải pháp để viết Ruby thay vì Objective-C hoặc Java. Về lý thuyết, tôi có thể chia sẻ mã phổ biến (như kết nối và lưu trữ) trên nền tảng, mặc dù tôi không thể tìm thấy bất kỳ ví dụ nào về việc sử dụng thành công hai ứng dụng này để viết một ứng dụng hoạt động trên cả Android và iOS.

Tôi tự hỏi nếu ai đó có thể xác nhận suy nghĩ của tôi hoặc rằng tôi đã bỏ qua điều gì đó. Mọi thông tin chi tiết bổ sung đều được chào đón tất nhiên.

+1

Bạn cũng có thể xem [QT] (http: //en.wikipedia.org/wiki/Qt_% 28framework% 29 # Platforms), đó là khung công tác hỗ trợ rất nhiều nền tảng khác nhau. Có một rubygem, [qtbindings] (http://rubygems.org/gems/qtbindings), cũng cung cấp các ràng buộc cho Ruby. –

+1

Dường như Rhodes chỉ phát triển các ứng dụng web, như tôi đã hiểu từ hướng dẫn của họ. – Shmidt

+0

Từ những gì tôi hiểu, @Flink là chính xác và Rhodes chỉ là ứng dụng web. –

Trả lời

2

Tôi sẽ tiếp tục sử dụng Java bản địa cho Android và RubyMotion cho iOS và có hai cơ sở mã. RubyMotion là ổn định nhất trong số những cái bạn đã đề cập và đáng để phát triển iOS, nhưng không có sự lựa chọn tốt trên nền tảng Android.

+0

là một lưu ý, rubymotion hỗ trợ android những ngày này (và OS X, nhưng không phải windows) – rogerdpack

4

Nếu bạn chọn Ruboto, bạn có thể sử dụng mã Ruby độc lập với giao diện người dùng của mình. Mã UI sẽ có nhiều khả năng phụ thuộc vào nền tảng.

Ruboto vẫn còn trẻ, nhưng có nhiều dự án bắt đầu sử dụng nó. Một ví dụ là

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

Nó chia sẻ thông tin liên lạc Mã Ruby trên nền tảng.

là một trong những nhà phát triển trên dự án Ruboto, tôi có thể hứa với bạn hỗ trợ tốt và trải nghiệm Ruby đầy đủ.

Đối với iOS RubyMotion có vẻ tốt, nhưng tôi chưa sử dụng. Bạn sẽ có thể sử dụng một cơ sở mã chia sẻ cho logic chung, nhưng các cơ sở mã riêng biệt cho giao diện người dùng và để truy cập các cảm biến.

0

Rhodes không liên quan gì đến ứng dụng web. Rhodes cho phép bạn xây dựng các ứng dụng gốc với Ruby và nhiều năm trưởng thành hơn các lựa chọn thay thế đó. Nó cũng hỗ trợ mọi hệ điều hành điện thoại thông minh lớn

+0

Rhodes có rất nhiều việc phải làm với các ứng dụng web, vì toàn bộ kiến ​​trúc được mô hình hóa sau Rails, và nó tương thích với các giao diện webapp RESTful. Khái niệm ứng dụng gốc chỉ là một phần acurrate, vì có những thành phần không có nguồn gốc có thể gây ra các vấn đề về hiệu suất. Ngoài ra, bạn không chính xác về sự trưởng thành; codebase là thiếu sót nghiêm trọng và hỗ trợ và tài liệu rất xấu. –

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