Создание приложений для iphone & android для существующего приложения rails
Я просто потратил много времени на поиски лучших способов создания приложений для iphone и Android для существующего приложения rails, которое я создал, и я чувствую, что на самом деле я не стал ближе к пониманию того, как наилучшим образом достичь этого.
Что я хочу:
- Я хочу, чтобы приложение rails и мобильный код были четко разделены. Я не хочу просто отображать другой макет в приложении rails. Я бы предпочел использовать что-то вроде разрыва в телефоне, что позволяет мне использовать примерно такую же кодовую базу для запуска мобильных приложений.
- Я хотел бы иметь автономные/синхронизированные возможности в мобильных приложениях (следовательно, если пользователь создает запись на своем iphone, пока они не охвачены, приложение должно сохранить запись на телефоне и продолжать пытаться синхронизировать которые записываются в веб-приложение до достижения успеха.
- Доступ к аппаратным средствам будет необходим по дороге. GPS, акселерометр и т.д.
Мои вопросы:
- Это хорошая ситуация для использования oauth? Могу ли я просто создать провайдера oauth в своем веб-приложении, а затем создать два мобильных приложения в качестве клиентов в веб-приложении?
- Есть ли более простой способ для безопасного авторизации, который мне не хватает?
- Работает ли Devise с oauth? На данный момент мое приложение построено на вершине дизайна.
- Является ли эта синхронизация чем-то, что должно быть отнесено к промежуточному программному обеспечению или металу?
Извините, я знаю, что на самом деле у меня много вопросов, но я хотел бы, чтобы кто-то, кто знаком с ситуацией, отвечал всеобъемлющим образом, а не просто пару маленьких кусков, которые оставляют больше вопросов. Я чувствую, что сейчас это обычная ситуация, но я не могу найти что-нибудь актуальное в моих поисках.
Ура!
пс. - Если вы сделали что-то подобное и знаете, как это сделать, я хотел бы поговорить с вами напрямую. Я даже куплю пиво. Серьезно... нет собеседников?
Ответы
Ответ 1
Я создаю приложение для iPhone с концом Rails. Я использовал Objective-C, потому что ему нужна полная инфраструктура Core Location, которая недоступна с помощью решения на основе браузера. Поэтому, если вы хотите использовать все возможности устройства, вы должны использовать собственную среду разработки.
Я использую Objective Resource http://iphoneonrails.com/, который представляет собой среду с открытым исходным кодом, которая предоставляет расширения Active Resource для классов Objective C NSObject и очень хорошо работает с моим 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
Я создаю мобильное приложение с бэкэндом grails, должен поддерживать андроид и iphone
До сих пор я делал несколько итераций, пытаясь опираться на технологию, родной objective-c, собственный андроид, phoneGap и титановый appcelerator.
для аутентификации я использую HTTPS с базовым auth. Я знаю, что люди обеспокоены базовой аутентификацией, но было доказано, что оба способа видят этот fooobar.com/questions/340953/...
Я еще не решил проблему синхронизации, но я не планирую сначала реализовывать этот комплекс решения, будет хранить локальный контент (XML или JSON) и возвращаться на сервер по требованию. Содержимое хранится локально в том же формате, который используется при отправке на сервер
Backend in grails, все вызовы API REST регистрируются и аутентифицируются по каждому запросу. Вероятно, добавит дополнительную защиту, позволяющую определенным зарегистрированным устройствам обращаться к API как к дополнительному уровню безопасности
Ответ 3
Возможно, вы найдете полезный мой пример 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 (из которого я также являюсь автором), чтобы экспортировать активы приложений, исправлять пути и т.д. без хлопот.