创造iphone&适用于现有rails应用的Android应用

时间:2010-10-21 12:44:42

标签: iphone android ruby-on-rails oauth devise

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

我想要的是什么:

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

我的问题:

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

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

干杯!

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

3 个答案:

答案 0 :(得分:4)

我正在使用grails后端构建移动应用程序,必须支持android和iphone

到目前为止,我已经做了几次迭代,试图解决技术,原生目标-c,原生android,phoneGap和钛金属加速器。

用于身份验证我使用HTTPS和基本身份验证。我知道人们对基本身份验证感到担心,但有人认为这两种方式都可以看到StackOverflow Question

我还没有解决同步问题,但我不希望最初实现解决方案的复杂性,将存储本地内容(XML或JSON)并按需推送回服务器。内容以本地存储的方式与发布到服务器时使用的格式相同

grails中的后端,所有REST API调用都会在每个请求中进行记录和验证。可能会增加额外的安全性,只允许特定的注册设备访问API和更高级别的安全性

答案 1 :(得分: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

如果我对您的应用程序了解不多,我不会这样做,但这是一个很好的起点。

答案 2 :(得分:0)

也许您会发现有用的示例 rails + ember.js 应用基于ember-auth和多个OAuth策略的令牌身份验证。它具有响应功能,可以作为桌面移动应用 Phonegap

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

生活在这里:桌面版https://starter-app-staging.herokuapp.com

它使用phonegap-rails gem(其中我也是作者)来导出应用程序资产,修复路径等而不会有麻烦。