Преобразование веб-приложения на основе web2py в собственное приложение с помощью Appcelerator, это легко?возможный? - PullRequest
1 голос
/ 08 сентября 2011

Вот моя проблема:

Клиент хочет, чтобы мое текущее веб-приложение использовалось в качестве рабочего стола, возможно, исполняемого, но без браузера для клиентской части.

Я посмотрел на 3 из следующих:

  • Qooxdoo - Требуется браузер
  • Adobe Air - Нужен плагин и среда выполнения
  • Appcelerator - Самое интересное, встроено в Native Client

Вот основные вопросы:

Клиентская сторона: То, что я прочитал на appcelerator, это то, что он создает вещи, написанные на HTML и JavaScript в собственный исполняемый файл, так что то, что я уже написал (HTML + Jquery + Jquery UI + CSS), может быть встроено в собственные исполняемые файлы Windows / Linux / IOS без изменений в текущем коде?

Сторона сервера:

Нет проблем, так как он возвращает html и json и решил продолжить работу на сервере. Но интересно, как работает автономное содержимое.

1 Ответ

0 голосов
/ 08 августа 2012

Я не уверен, что это на самом деле будет работать. Из того, что я понимаю, титановый appcelerator предоставляет основу, прежде всего, для создания приложений на платформах iOS и Android. Я видел кое-что о приложениях для рабочего стола, но ничего о том, что приложение автоматически создается из исходного кода, когда ваш внутренний код - python (и web2py для загрузки).

Я думаю, что было бы невозможно просто закинуть ваше приложение web2py и получить конечный продукт. Например, как Appcelerator узнает, что данный URL-адрес соответствует заданному контроллеру и функции? Как он будет выполнять поиск по объектам в вашей базе данных? Вы ожидаете, что он прочитает DAL(...) строку подключения и просто подключится?

Если вы не выполняете ЛЮБУЮ обработку на стороне сервера и не используете ЛЮБЫЕ источники данных, кроме JSON, возможно, это сработает. Может быть. Но я очень сомневаюсь, что это будет автоматически или даже так просто.

Мне кажется, что вам придется нажимать на каждую страницу и сохранять страницы в виде HTML на диск, а затем перетаскивать выведенную разметку HTML / CSS / JS в Titanium. Но это означает, что если вы обрабатываете формы или выполняете поиск, или делаете что-то интересное в контроллерах, приложение титана не будет иметь ничего для обработки серверной части на стороне сервера.

При этом титаниум работает с php-кодом, но не идеально, и я вижу проблемы при использовании фреймворков в отличие от необработанного php.

http://www.flickr.com/photos/funkatron/4011561849/

В любом случае, это не сработало. Хотя Titanium Desktop все еще поддерживает PHP, но разработка приложения с серверной средой, такой как CI, в принципе не будет работать.

В документации было также кое-что об обработке кода Python, но все, что я видел, было то, что вы можете поместить Python в конец «клиента» HTML, используя тег script как таковой:

<script type='text/python'>
   # ... python code ? 
</script>

(ref: http://developer.appcelerator.com/doc/desktop/python)

Но это не поможет с приложением web2py.

IN SHORT - Я советую вам скачать приложение и создать проект Hello World. Затем следуйте инструкциям по миграции или преобразованию приложения в Titanium. Вам, вероятно, придется переделывать много вещей, и я не уверен, как вы получите среду выполнения, необходимую для web2py, поэтому вам, возможно, придется переделать некоторый базовый код GLUON, на котором построен web2py.

Извините: (

Тем не менее, вы, вероятно, можете найти способ создания приложения Java, которое включает в себя копию (а) веб-сервера ракеты, (б) интерпретатора Python 2.5 или более поздней версии (в) фреймворка web2py, (г) приложения web2py и упаковки всех это так, что он работает внутри вашего Java-приложения (которое будет работать на любой платформе) и показывает HTML-представление для конечного пользователя. Тогда вы можете сохранить его как приложение web2py и просто скопировать приложение в свой пакет Java. Я не уверен, что в конце концов это будет проще, но похоже, что вам придется либо портировать на Titanium, либо Wrap с Java (или другим языком, не зависящим от платформы).

...