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

3
我正在使用Rails(3.1)构建基于浏览器的Web应用程序。我想让Web应用程序的某些功能也适用于移动设备。
除了...
1.) 为每个设备制造本机应用程序,使用JSON/XML与我的Rails Web应用程序交互,...
我考虑通过重用控制器/模型并添加一些面向移动设备的新视图(例如屏幕大小等)来重用已在Rails应用程序中实现的尽可能多的业务逻辑。
采用这种方法,我看到两个选择:
2.) 让最终用户在移动浏览器中访问面向移动设备的Rails应用程序部分。
3.) 设置本机移动应用程序包装器,例如使用PhoneGap,并引用用于2.)的相同部分的Rails应用程序。
3.) 的优点是我可以重用我的Rails Web应用程序的业务逻辑,并同时拥有一个“幻象”本机移动应用程序。(我使用“幻象”一词,因为除了包装器之外,它实际上并不真正本地化,这种方法实际上只是模仿本机应用程序。)
问题1:除了1.)至3.)还有其他选择吗?
关于3.)
问题2:苹果是否接受上传此类应用程序(远程获取大量内容)到应用商店?
->如果是这样,我会感到惊讶,因为这将允许人们在未经苹果的通知下更改应用程序的大部分内容。
问题3:从架构/技术角度来看,在“幻象”本机移动应用程序上远程获取预渲染的HTML / JS是否推荐?
->是否最好在本机移动应用程序内设置独立的客户端应用程序(可能使用backbone.js),并在移动应用程序中保留所有HTML,CSS,JS,并使用JSON/XML或其他方式与后端通信?
1个回答

0

我认为这是一个很好的问题,而且最近我也遇到了类似的困难。我最终使用了带有touchkit的(Q3) vaadin。如果你是免费使用,那没问题,但如果你是商业用途,它有点贵(尽管那时你可能买得起)。我意识到这与rails无关,但仍然,我假定这个问题的主要点是我是否应该构建使用Web服务/中间件的本地应用程序,还是纯Web应用程序。

至于(Q2),在我浏览这项新技术的过程中,我确实读到了一些文章,表明苹果不允许Web应用程序样式。也就是说,只是掩盖浏览器窗口加载远程Web应用程序的应用程序。实际上,我认为,在苹果看来,你需要将功能限制在他们同意的范围之内。但这并不影响Web应用程序,因为你肯定可以直接从浏览器访问它们。

至于(Q1),我唯一能想到的替代方案就是不同的中间件(例如MQ、SOAP等)。


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