为现有的rails应用程序创建iphone和Android应用程序

ers*_*ner 15 iphone android ruby-on-rails oauth devise

我花了很多时间研究为我已经构建的现有rails应用程序创建iphone和android应用程序的最佳方法,我觉得我实际上并没有更接近知道如何最好地实现这一点.

我想要的是:

  • 我想让rails应用程序和移动代码干净利落地分开.我不打算在我的rails应用程序中渲染不同的布局.我更喜欢使用类似手机间隙的东西,它允许我使用大致相同的代码库来运行移动应用程序.
  • 我希望在移动应用程序中具有离线/同步功能(因此,如果用户在他们不在保险范围内的iphone上创建记录,应用程序应该将记录保存在手机上并继续尝试将该记录同步到网络应用程序直到成功.
  • 随后将需要访问硬件功能.GPS,加速度计等

我的问题:

  • 使用oauth这是一个好的情况吗?我是否只是在我的网络应用程序中构建一个oauth提供程序,然后将两个移动应用程序构建为Web应用程序的客户端?
  • 我缺少一种更简单的安全授权方法吗?
  • Devise是否与oauth合作?我的应用程序目前建立在设计之上.
  • 这是同步应该被抽象为中间件还是金属的东西?

对不起,我知道这实际上是很多问题,但我希望有一个熟悉情况的人能够全面回答,而不仅仅是几个小问题,留下更多问题.我觉得现在这种情况一直是常见的情况,但我似乎无法在搜索中发现任何最新信息.

干杯!

PS. - 如果你自己做过这样的事情并知道怎么做,我很乐意直接跟你说话.我甚至会买啤酒.说真的......没有接受者?

小智 3

我一直在构建一个带有 Rails 后端的 iPhone 应用程序。我一直在使用 Objective-C,因为它需要完整的 Core Location 框架,而基于浏览器的解决方案无法提供该框架。所以如果你想使用设备的全部功能,就必须使用原生的开发环境。

我一直在使用 Objective Resource http://iphoneonrails.com/,它是一个开源框架,为 Objective C NSObject 类提供类似 Active Resource 的扩展,并且与我的 Rails 应用程序配合得很好。您只需为控制器操作输入渲染 JSON 或 XML,如下例所示。

 class UsersController < ApplicationController
 # GET /users
 # GET /users.xml
 def index
   @users = User.all

  respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @users }
  format.json  { render :json => @users }
end
Run Code Online (Sandbox Code Playgroud)

结尾

我不知道这是否能回答您的所有问题,因为我对您的应用程序了解不够,但这是一个很好的起点。