2010-10-21 10 views
15

Acabo de pasar mucho tiempo buscando las mejores formas de crear aplicaciones de iphone y Android para una aplicación de rieles existente que he construido y creo que no en realidad se acercó más a saber cómo lograr esto mejor.Creación de aplicaciones de iphone y Android para aplicaciones de rieles existentes

Lo que quiero:

  • me gustaría tener la aplicación rieles y el código móvil limpiamente separados. No estoy buscando simplemente renderizar un diseño diferente en mi aplicación de rieles. Preferiría utilizar algo así como la brecha telefónica que me permite usar más o menos la misma base de código para ejecutar las aplicaciones móviles.
  • Me gustaría tener capacidades de sincronización/sincronización en las aplicaciones móviles (por lo tanto, si un usuario crea un registro en su iphone mientras están fuera de cobertura la aplicación debe guardar el registro en el teléfono y continuar intentando sincronizar será necesario que el registro de la aplicación web hasta que el éxito
  • Tener acceso a los recursos de hardware en el camino GPS, acelerómetro, etc.

Mis preguntas:..

  • ¿Es esta una buena situación para usar oauth? ¿Acabo de construir un proveedor oauth en mi aplicación web y luego bu ild las dos aplicaciones móviles como clientes de la aplicación web?
  • ¿Hay un método más fácil para seguro que me falta la autorización?
  • ¿Funciona el dispositivo con oauth? Mi aplicación está construida en la parte superior del dispositivo en este momento.
  • ¿Esto está sincronizando algo que debería ser abstraído a un middleware o metal?

siento, sé que esto es en realidad un montón de preguntas, pero me gustaría que alguien que esté familiarizado con la situación de responder de manera integral en lugar de sólo un par de pequeños toques que dejan más preguntas. Siento que esto tiene que ser una situación común ahora, pero parece que no puedo encontrar nada actualizado en mis búsquedas.

¡Salud!

ps. - Si has hecho algo como esto tú mismo y sabes cómo llevarlo a cabo, me encantaría hablar contigo directamente. Incluso compraré las cervezas. En serio ... ¿no hay compradores?

+0

Erskingardner, cuando tiene varias preguntas, se supone que debe crear varias preguntas para que cada una pueda tener un conjunto de respuestas separadas, que puedan buscarse y ser útiles para otras personas también. – edgerunner

Respuesta

3

He estado construyendo una aplicación de iPhone con un extremo posterior de Rails. He estado utilizando Objective-C porque necesita el marco de trabajo Core Location completo que no está disponible con una solución basada en navegador. Entonces, si desea utilizar todas las capacidades del dispositivo, debe usar el entorno de desarrollo nativo.

He estado usando Objective Resource http://iphoneonrails.com/, que es un framework de código abierto que proporciona extensiones de tipo Active Resource a las clases NSObject de Objective C y funciona muy bien con mi aplicación Rails. Solo tiene que poner en render JSON o XML para las acciones de su controlador como en el ejemplo a continuación.

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 

final

No sé si esto responde a todas sus preguntas, ya que no sé lo suficiente sobre su aplicación, pero es un buen punto de partida.

+0

Cool. Gracias por la respuesta rápida Robert. Con esa solución, ¿sus backend de rieles también son accesibles desde una interfaz web normal? ¿O solo sirve para la aplicación iphone? Estaría realmente interesado en saber más sobre el Recurso objetivo, pero lo investigaré antes de comenzar a hacer preguntas. – erskingardner

+0

También se puede acceder a través de una interfaz web, pero solo para fines de prueba, ya que está diseñado exclusivamente como backend de aplicaciones de iPhone. Desarrollo el código de Rails, lo pruebo inicialmente en el navegador y luego uso Object Resource para conectarlo. –

+0

¿Qué autenticación, si hay alguna, está utilizando entre la aplicación y el backend? ¿Algún truco/sugerencia sobre eso? Gracias. –

4

Estoy construyendo una aplicación móvil con un backend griales, debe ser compatible con Android y iPhone

he hecho unas pocas iteraciones hasta ahora al intentar asentarse en la tecnología, oriundo Objective-C, androide nativo, PhoneGap y acelerómetro de titanio.

para autenticación Yo uso HTTPS con autenticación básica. Sé que la gente está preocupada por la autenticación básica, pero se ha discutido en ambos sentidos, vea esto StackOverflow Question

Todavía no he resuelto el problema de sincronización, pero no espero implementar ese complejo de una solución inicialmente, almacenará el contenido local (XML o JSON) y vuelva al servidor a petición. El contenido se almacena localmente en el mismo formato utilizado al publicar en el servidor

Backend en grillas, todas las llamadas a la API REST se registran y se autentican en cada solicitud. Probablemente añadir seguridad adicional permitiendo sólo los dispositivos registrados específicos para acceder a la API como y el nivel adicional de seguridad

+0

De acuerdo, gracias por la explicación Aaron. Siempre es bueno escuchar muchos puntos de vista sobre cosas como esta. – erskingardner

0

Tal vez le resultarán muy útiles mi ejemplo rieles + ember.js aplicación con token de autenticación basado en brasa-auth y varias estrategias de OAuth Es receptivo y funciona como una aplicación de escritorio y aplicación móvil con Phonegap.

Actualmente en la rama de devel: https://github.com/joscas/base_app/tree/devel

La vida aquí: https://starter-app-staging.herokuapp.com para la versión de escritorio.

Utiliza la gema phonegap-rails (del que también soy el autor) para exportar los activos de las aplicaciones, arreglar rutas, etc. sin problemas.

+0

Hola @joscas, ¿podrías darnos más detalles al respecto? Estoy intentando crear algo similar, una aplicación que funciona en Android cuando está fuera de línea y se sincroniza con el servidor Rails alojado en vps. Cuando la aplicación pueda acceder a Internet, se conectará al servidor de rieles y cargará/recuperará los datos. – rahoolm

+0

Para la sincronización de datos fuera de línea de esa aplicación, utilizaría Couchbase mobile http://developer.couchbase.com/mobile/. Ver que tienen soporte para Phonegap. De lo contrario, una duplicación de CouchDB básica funcionaría si no tiene múltiples usuarios y problemas de seguridad. – joscas

Cuestiones relacionadas