Как создать настольное или автономное приложение на фоне Rails

#ruby-on-rails #web-applications #desktop-application #offlineapps

#ruby-on-rails #веб-приложения #рабочий стол-приложение #автономные приложения

Вопрос:

Я создал приложение Rails, которое будет использоваться в месте, где нет Интернета. Я пытаюсь выбрать наилучший способ как можно быстрее преобразовать свою работу во что-то функциональное — будь то с помощью настольного приложения или какой-либо автономной версии того, что у меня есть.

Цели приложения заключаются в следующем: — Записывать биографические данные из личных опросов «один на один» — Экспортировать введенные локально демографические наборы данных и импортировать и обрабатывать другие подобные наборы данных —- Не нужно поддерживать что-либо слишком сложное (графически или иным образом), просто базовые Rails с Backbone.js для интерактивных просмотров опроса

Мне просто интересно, как быстрее всего получить что-то функциональное, что может работать в автономном режиме, учитывая приложение Rails, которое у меня есть (и мой фон Rails). Хочу ли я что-то вроде Titanium? Google Gears? Что-то вроде Prism или Fluid? Моя главная задача — быстро заставить что-то работать.

Ответ №1:

Если у вас есть автономное приложение, и вы хотите хранить данные локально и синхронизировать их обратно в среде, подобной HTML5, я знаю три решения.

  • Firebase — похоже, прочно в мире синхронизации данных, что связано с попытками сделать слишком много. Недостатком является то, что это коммерческая и размещенная служба.

  • Hood.ie — Мне не нравятся большие фреймворки, и мне кажется, что это попытка сделать слишком много, я не понимаю, почему некоторые функции там (например, электронная почта) и могут быть неполными. Однако это открытый исходный код, и он был создан некоторыми известными людьми на сцене JS, поэтому он, безусловно, заслуживает хорошего рассмотрения.

  • SyncIT — Отказ от ответственности Я написал это, поэтому я вижу только хорошие части и, конечно, думаю, что это лучшее решение. SyncIT — это операционная система, которая просто выполняет синхронизацию данных и ничего больше. Он состоит из очень несвязанных компонентов с небольшими API, поэтому для изменения узла потребуется всего день или около того.Серверная часть JS должна быть Rails (я не знаю rails, но помогла бы в этом). Он имеет хорошее тестовое покрытие и в основном VanillaJS, поэтому должен стать стабильной технологической базой на будущее.

Ответ №2:

Местные новости

Почему бы вам просто не использовать приложение Rails, но со всеми локальными компонентами?

Например, вы можете использовать MYSQL / PGSQL локально; установите web server локально, а затем добавьте простой домен в свой файл hosts, чтобы связаться

Это позволит вам обрабатывать ваши локальные запросы как производственные, предоставляя вам возможность загружать домен в свой браузер и запускать его так, как если бы вы подключались к реальному веб-сайту:

DB

Вы можете установить mysql, используя следующее:

введите описание изображения здесь

Если вы установите это, просто зайдите в свой database.yml и измените настройки на свои локальные настройки:

 #config/database.yml
production:
   ...
   host: 127.0.0.1
  

Сервер

Хотя вы могли бы запустить сервер Rails, он будет работать только в development режиме.

Вам будет намного удобнее устанавливать Apache (для обработки входящих запросов) и Phusion Passenger запускать среду Rails

Вы сможете использовать этот учебник для этого (я могу предоставить подробности, если вы прокомментируете)

Домен

Наконец, вы сможете настроить домен в своем hosts файле

Все, что вам нужно сделать, это замаскировать 127.0.0.1 с помощью домена, подобного Rails.app или чему-то еще, поэтому, если вы перейдете к http://rails.app , он найдет ваше приложение:

 #hosts
127.0.0.1 rails.app
  

Ответ №3:

Вы можете попробовать это руководство от Railcast, чтобы использовать rack-offline

  • Добавьте драгоценный камень «rack-offline»
  • добавить в маршруты match "/application.manifest"=. Rails::Offline
  • и это создаст манифест файла кэша
  • в представлении макета добавить <html manifest="/application.manifest">
  • Теперь вам нужен параметр, чтобы ресурсы загружались в автономное приложение ENV["Rails_ASSET_ID"] ="" это отключит временные метки в файлах ресурсов добавьте это в файл конфигурации application.rb Теперь, когда приложение отключено, все еще нужно исправить некоторый код, чтобы оно работало идеально
  • Любой динамический контент должен быть добавлен через js и json, необходимо сохранить динамический контент в файле Я использую тот же код в руководстве для добавления контента
  • jquery.tmpl
  • jquery.offline Вы можете посмотреть больше информации об этом.