Архитектура мобильного приложения: Python как серверная часть для мобильных приложений (веб-интерфейс)

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

Постановка задачи

Создание мобильного / планшетного приложения на основе веб-технологий (html5 / canvas), которое может выполнять некоторую обработку естественного языка.

Наши ограничения

  • Что касается пользовательского интерфейса, мы больше полагаемся на его прототипирование с использованием технологий html5, таких как Canvas api, SVG. Это во многом соответствует нашим навыкам и обладает необходимыми возможностями
  • Библиотеки NLP более развиты и хорошо развиты в Python (например, NLTK)

Некоторые альтернативы, которые мы попробовали

  1. Библиотеки на основе Javascript для НЛП. Они могут быть не такими зрелыми, но могли бы оказаться более быстрой альтернативой, если бы были библиотеки JS для NLP.
    1. Мы нашли это:
      1. Естественный https://github.com/NaturalNode/natural
      2. Другие библиотеки на основе JS: http://www.chrisumbel.com/article/node_js_natural_language_nlp
    2. Но они оказались на основе Node, и мы не могли найти способ добавить их на страницу браузера, чтобы встроить ее в платформу типа "PhoneGap". Мы можем ошибаться.
  2. Чтобы использовать логику Python NLP в нашем мобильном приложении, мы попробовали несколько кроссплатформенных библиотек:
    1. PhoneGap http://phonegap.com/
      1. В этом ответе Stackru PhoneGap с Django Backend говорится, что "вы не можете запускать код Python на iOS или Android с помощью PhoneGap"
    2. Qt 5 http://qt-project.org/, Qt5-mobile http://qt.digia.com/qtmobile/
      1. Есть 2 многообещающие библиотеки Qt на основе Python: PyQt http://www.riverbankcomputing.com/software/pyqt/intro и PySide http://qt-project.org/wiki/PySide
      2. Это демо QML/Python/Qt http://qt-project.org/wiki/Using-QtWebKit-and-QML-with-PySide- почти то, что мы хотим:
        1. Существует бэкэнд Python с JS, вызывающим объекты Python, и наоборот, с использованием таких методов, как: sendData(), receiveJSON() ...
        2. Но, похоже, он не компилируется на наших машинах, и позже мы обнаружили, что разработка PySide находится в стагнации и поддерживает только до Qt4.8, тогда как Qt5+ обеспечивает поддержку разработки для мобильных устройств / планшетов.
      3. В этом блоге рассказывается, как некоторые разработчики приложений использовали Python для бэкенда и QML для пользовательского интерфейса http://blog.qt.digia.com/blog/2012/03/23/mixd-tv-leveraging-qt-quick-for-a-rich-desktop-ui-from-a-python-back-end/. Но это просто описательно, и не дает реальной информации.
    3. Киви http://kivy.org/docs/guide/packaging-ios.html:
      1. Несмотря на некоторые недоработки, похоже, что это работает, но у него нет способа разработать приложение для iOS, основанное на классах "UIWebView", для которого нам нужно использовать наш интерфейс на основе html5.
    4. Pythonista http://omz-software.com/pythonista/:
      1. Та же проблема, что и у Киви выше. Мы не хотим разрабатывать мобильное приложение с использованием Python, нам просто нужен бэкэнд Python для нашего веб-приложения на основе html5
    5. iOS: мы также проверили нативные библиотеки разработки для iOS, но не смогли найти простой способ встроить логику Python-интерфейса
    6. Android:? Кто-нибудь знает, можем ли мы встроить python в веб-приложение.
  3. AJAX обращается к серверу Flask:
    1. Это последний вариант, в котором мы достаточно уверены. Размещайте логику Python на сервере Flask и совершайте AJAX-вызовы из веб-приложения. Но учитывая его для приложения для детей, мы могли бы в конечном итоге сделать множество AJAX-вызовов для одной и той же части речи

Любая помощь / предложения приветствуются.

0 ответов

Другие вопросы по тегам