我们可以使用Ruby on Rails开发移动应用吗?

36

由于Rails采用MVC架构,我想知道是否可以使用Rails来开发手机应用或任何Web应用程序。

在MVC中,“M”和“C”不会改变以开发移动应用程序,对吗?我的意思是模型和控制器将保持不变。

仅应更改视图部分,以便为移动用户提供UI,而不是使用html.erb文件,我想要Java或Android SDK或其他什么东西。

有人可以帮我理清这一观点吗?

此外,我听说过jRuby,它是否适用于我们的移动应用程序开发需求?


你是否正在寻找离线可用性? - rwilliams
完美,这非常适合使用模仿本地应用程序的传统Web应用程序。 - rwilliams
7个回答

26

这个问题的答案将取决于您想要如何部署此应用程序。您希望它完全在手机上运行,还是可以伪装成iphone/android应用程序的Web应用程序?

对于本地应用程序解决方案,我建议查看Rhodes Framework。虽然它不是RoR,但您会发现它是一个感觉相似的MVC框架。这将允许您使用Ruby构建本机iphone/android应用程序。

对于第二个选项,伪装成移动应用程序的Web应用程序,我建议使用Sencha Touch。Sencha使用其Javascript库模仿本机iphone/android应用程序的外观和感觉,做得非常出色。使用此解决方案,它就像任何其他Web应用程序一样,尽管通过其UI针对android和iphone。


1
不确定您所说的“[Rhodes]在iPhone应用商店上不可用”的意思。当然,使用Rhodes创建的应用程序可以放置在应用商店中,并且已经有许多应用程序在那里了。 - Mark Thomas
我想我误解了Rhodes的工作原理。感谢您提供的信息。 - rwilliams
@rwilliams,你有更新的列表吗?或者你认为Rhodes框架仍然是在Android上开发本机应用程序的最佳方式吗? - sizzle
@rwilliams,我想连接到一个SQL数据库,但刚刚注意到他们要求使用RhoElements许可证才能使用其提供的JavaScript API进行数据库连接。或者他们有一个免费的API支持连接到数据库吗?我想使用一个免费的开发环境开发本地Android应用程序,最好是类似于Ruby on Rails的MVC。 - sizzle

5

我创建了一个使用 rails / ember.js 开发的示例应用,并且使用 Phonegap 进行导出。它仅使用了 Rails 和 Ember.js 应用程序的通常 MVC 架构。也许你会发现它有用。它还实现了基于 ember-auth 和几个 OAuth 策略的令牌认证。

目前在开发分支中: https://github.com/joscas/base_app/tree/devel

Heroku 部署: https://starter-app-staging.herokuapp.com (桌面版本)

使用 phonegap-rails gem 进行导出(我也是其作者),以便处理资产和修复路径等问题。


4

当然可以!

Ruby on Rails是一个后端技术,与普通浏览器上的所需做的相同。在移动应用程序中,只需要考虑两件事情。第一,移动浏览器的内容大小,因为您需要调整布局以适应不同大小的屏幕。有一个HTML元标签称为viewport可以帮助您。

例如:

这个脚本将告诉用户的浏览器,内容应该适合设备的大小,initial-scale定义了视口比例,maximum-scale定义了此页面可以缩放多少倍,user-scalable=0表示用户无法缩放页面。关于viewport的更多信息,请查看Mozilla的文档。

另一件需要考虑的事情是HTML5技术,但实际上在使用jQuery mobile时这些问题并不需要担心。我建议您查看他们的文档,对任何人来说都非常有用和清晰易懂。


1

是的,你可以。你的视图可以是一个网页/Android/iOS应用程序作为视图。


它如何成为一个应用程序?我在哪里启用它? - Joshua Grosso Reinstate CMs

1

RubyOnRails是一个Web应用程序框架 - 运行在服务器上,用户通过浏览器或浏览器组件观察RubyOnRails构建的应用程序结果,尽管您可以只在服务器上处理"MVC"中的"M",并在客户端(移动浏览器)完全实现"V"和"C"。

理论上,您可以完全在客户端部署RubyOnRails应用程序(甚至包括RubyOnRails服务器等),但这将非常昂贵且困难,不过,在任何合理的项目中都不需要这样做。

假设有两种方式可供选择:

  1. 在服务器上组织RubyonRails应用程序(在那里处理模型),并使用任何适当的JavaScript库在客户端上处理“V”和“C”。
  2. 您可以开发Ruby(而不是RubyOnRails应用程序)-至少可以使用JRuby为Android开发。

0
尝试使用 React Native,后端技术仍然可以是 Ruby,而前端可以使用 React Native 构建既适用于 Android 又适用于 iOS 的移动应用程序。

React Native


0
如果只是涉及 UI 的问题,您可以尝试使用 jQuery Mobile(目前仍处于 alpha 版本)。但如果需要更紧密的与移动应用集成,我认为运行 Rails 并不够高效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接