2012-01-31 107 views
3

我有一个基于Rails(3.1)构建的面向浏览器的Web应用程序。我想在移动设备上提供网络应用的一些功能。架构最佳实践:Rails和移动/ Web应用程序

除了...

1)建立本地应用的设备的每个供应商,并使用JSON/XML我的Rails Web应用程序进行交互,...

我的想法通过重用控制器/模型并添加一些针对移动设备的新视图(就屏幕大小等而言),重复使用已在我的Rails应用中实现的业务逻辑。

通过这种方法,我看到了两个备选方案:

2)让最终用户访问轨道的应用程序有针对性地在手机浏览器的移动设备的一部分。

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

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

问题1:除了1)还有其他替代方案吗?

关于3)

问题2:苹果接受这种应用程序(其中获取远程)上传到应用商店大部分的?

- >如果是这样的话,我会感到惊讶,因为它会允许在没有Apple通知的情况下更改大部分应用程序。

问题3:从体系结构/技术角度来看,建议远程获取prerenderd html/js,以便在例如构建在顶层的“幻像”本地移动应用上执行。 PhoneGap的?

- >在本地移动应用程序(可能使用backbone.js)内设置独立的客户端应用程序不是更好吗?在本地移动应用程序中保留所有html,css,js并与后端使用JSON/XML或其他?

回答

0

我认为这是一个很好的问题,我最近遇到过类似的困难。我已经结束了使用touchkit的(Q3)vaadin。很好,如果你做的是免费的,但是如果你做的是商业广告,那么价格有点贵(尽管你可以负担得起)。我意识到这与轨道无关,但我仍然假设问题的主要观点是我应该构建使用Web服务/中间件的本机应用程序,还是应用纯Web应用程序。

RE(Q2)在我对这项技术进行拖网的过程中,我读了几篇文章,建议苹果不允许使用网络应用程序风格。如在应用程序,它只是简单地掩盖浏览器窗口加载远程Web应用程序。从本质上讲,我认为苹果在哪里,你需要将功能绑定到他们同意的地方。这并不会真正影响网络应用程序,但您可以直接从浏览器直接访问它们。我可以看到的唯一选择是不同的中间件(例如MQ,SOAP等)。

相关问题