架构最佳实践:Rails和移动/ Web应用程序

时间:2012-01-31 13:43:45

标签: android iphone ruby-on-rails ruby-on-rails-3 mobile

我在Rails(3.1)上构建了面向浏览器的Web应用程序。我想在移动设备上提供网络应用程序的一些功能。

...除了

1。)为每个设备供应商构建本机应用程序,并使用JSON / XML与我的rails web应用程序进行交互 ,......

我正在考虑重复使用已经在我的rails应用程序中实现的业务逻辑,重用控制器/模型并添加一些针对移动设备的新视图(就屏幕大小等而言......)。

通过这种方法,我看到了两种选择:

2。)让最终用户在移动浏览器中访问针对移动设备的rails应用程序部分。

3。)设置原生移动应用包装,例如使用PhoneGap,并参考用于2的rails app的相同部分。)。

3.)的优点是我可以重用我的rails web应用程序的业务逻辑,并同时为移动设备提供“幻像”本机应用程序。 (我使用术语“幻影”,因为除了包装器之外,它不是真正的原生,这种方法实际上只是模仿本机应用程序。)

问题1:除了1。)之外还有其他选择吗?)?

关于3。)

问题2:Apple是否接受将此类应用(远程获取大部分内容)上传到应用商店?

- >如果是这样的话,我会感到惊讶,因为这样可以在不通知Apple的情况下更改应用程序的大部分内容。

问题3:从架构/技术的角度来看,是否建议远程提取预渲染的html / js,以便在“虚拟”本机移动应用程序构建的基础上执行。 PhoneGap的吗

- >在本机移动应用程序中设置一个独立的客户端应用程序(可能使用backbone.js),在移动应用程序中本地保存所有html,css,js,并使用JSON / XML或其他任何方式与后端进行通信,这不是更好吗? ?

1 个答案:

答案 0 :(得分:0)

我认为这是一个很好的问题,我最近遇到了类似的困难。我最终使用了触摸套件(Q3)vaadin。如果你正在做免费但是有点贵,如果你做商业(虽然那时你可能负担得起),这很好。我意识到这与rails无关,但我仍然认为问题的关键在于我应该构建使用Web服务/中间件的本机应用程序还是用于纯Web应用程序。

RE(Q2),在我对这项当前技术的拖网过程中,我确实阅读了一些文章,建议苹果不允许使用网络应用程序。在,应用程序,它只是掩盖浏览器窗口加载远程Web应用程序。从本质上讲,我认为在苹果所关注的地方,您需要将功能与他们同意的内容联系起来。这并不会真正影响Web应用程序,因为您可以直接从浏览器访问它们。

RE(Q1),我能看到的唯一选择是不同的中间件(例如MQ,SOAP等)。