2012-02-06 12 views
8

Qual è il modo migliore per avere un'app per ruby ​​normale su rails consegnata come un'app per iphone IOS?Ruby on rails server + iPhone IOS client?

L'idea è di costruire, per divertimento e istruzione schoolproject, una semplice app Iphone che si collega all'app ruby ​​on rails per i suoi dati. Visto alcuni articoli obsoleti, vorrei chiedere qualche consiglio su questo server: il modello client per ruby ​​e un'app ios.

  • Come spostare i dati dall'app rubino all'app IOS xml?
  • Come interagire dall'app IOS con l'applicazione Ruby on Rails?
  • Esistono esempi di applicazioni opensource o recenti risorse aggiornate CONSIGLIERESTI su questo argomento (gemme, progetti opensource, tutorial, documentazione)

anche quello che sarebbe buoni siti web alla verifica quando si fa Ruby on Rails e applicazioni per iPhone ? Mi piacerebbe sentire un feedback, ho già studiato e ho un'idea approssimativa sui concetti di cui sopra, ma come detto sulle risorse più vecchie. Qualche esperienza di prima mano da parte di esperti sarebbe molto apprezzata!

risposta

10

Il setup generale per un backend Rails come questo potrebbe essere:

autenticazione: utilizzare uno sceme autenticazione di base per autenticare il rotaie backend. Vorrei usare Devise e CanCan per questo, sono facili da configurare e funzionano alla grande. Se non si desidera che le persone effettuino l'accesso ma vogliano comunque l'autenticazione, è possibile utilizzare un token.

Notifiche Push: utilizzare i APN Gem

dati GET: utilizzare i controllori GET del vostro Rails backend, è possibile chiedere espressamente JSON o solo ritorno JSON come predefinito

def show 
    begin 
    @article = Article.find(params[:id]) 
    rescue Exception => e 
    render :text => "unknown article id", :status => 404 
    else 
    render json: @article 
    end 
end 

Se si desidera che venga restituito un JSON personalizzato. È possibile ignorare che nel modello:

#overide default json output 
def as_json(options) 
    # this ignores the user's options 
    super(:only => [:id , :type, :title, :content]) 
end 

creare i dati di: utilizzare il controller Create voi Rails backend, si può semplicemente inviare come se fosse un modulo, quindi un POST con campi come article[:title]=value. Se lo desideri, puoi restituire uno plain text o json se la creazione ha avuto successo.

UPDATE dati: utilizzare il controller di aggiornamento del back-end delle guide. Si utilizza un PUT qui anziché uno POST.

0

Oltre alla risposta data: abbiamo ottime esperienze con Rabl: https://github.com/nesquena/rabl

stiamo generando plist-files per inviare i dati ad iOS-Devices.