У меня браузерно-ориентированное веб-приложение на Rails (3.1).Я также хочу сделать некоторые функции веб-приложения доступными и на мобильных устройствах.
Кроме ...
1.) Создание собственных приложений для каждого производителя устройств.и взаимодействие с моим веб-приложением rails с использованием JSON / XML , ...
Я думаю о повторном использовании столько, сколько бизнес-логика уже реализована в моем приложении rails, путем повторного использования контроллеров / моделей и добавлениянекоторые новые представления, ориентированные на мобильные устройства (с точки зрения размера экрана и т. п.).
При таком подходе я вижу две альтернативы:
2.) Предоставьте конечному пользователю доступ к части приложения rails, предназначенной для мобильных устройств, в мобильном браузере.
3.) Настройте встроенную оболочку мобильного приложения,например, с помощью PhoneGap и ссылаются на ту же часть приложения rails, которая использовалась для 2.).
Преимущество 3.) в том, что я могу повторно использовать бизнес-логику моего веб-приложения railsи наличие «фантомного» нативного приложения для мобильных устройств одновременно.(Я использовал термин «фантом», потому что, кроме обертки, он не является действительно нативным, этот подход фактически имитирует нативное приложение.)
Вопрос 1: Существуют ли другие альтернативы, кроме 1.)3.)?
Относительно 3.)
Вопрос 2. Принимает ли Apple такой тип приложений (которые извлекают большие порции удаленно) для загрузки в магазин приложений?
-> Я был бы удивлен, если это так, потому что это позволило бы изменить большие части приложения без уведомления Apple.
Вопрос 3: С архитектурной / технической точки зрения рекомендуется ли удаленно извлекать prerenderd html / js для выполнения в "фантомном" собственном мобильном приложении, например, на PhoneGap?
-> Willnне лучше ли установить независимое клиентское приложение в нативном мобильном приложении (возможно, с использованием backbone.js), хранить все html, css, js локально в мобильном приложении и обмениваться данными с бэкэндом, используя JSON / XML или что-то еще?