Каков ваш опыт работы с веб-приложениями Android (ограничения, советы, рекомендации)?

Обновить:

Как отметил Франсуа, существуют альтернативы, такие как Phone Gap для более кросс-платформенного подхода. Это действительно очень хорошее предложение. Я открыт для любых предложений, и я был бы очень признателен, если бы мог учиться на вашем опыте.
Sidenote : веб-приложение не очень велико в моем списке опций, так как я хочу, чтобы он был на рынке Android.


Я собираюсь начать переносить приложение facebook на андроид, и я обсуждаю, должен ли я писать его как родное приложение или как обертка для прославленного WebView .

Как ваш опыт ? С какими ограничениями вы столкнулись при написании webapp? Есть ли у вас какие-либо советы, которые вы можете поделиться? Может быть, вы думаете, что родное приложение – это путь?

Чтобы настроить класс для обсуждения, приложение, которое я хочу сейчас подключить, представляет собой простое приложение fb, в котором сервер размещен в Google App Engine (написан на Java, если это имеет значение), а весь код клиента – html , Css и javascript (с хорошим количеством jQuery).

Приложение в основном двухпользовательская, пошаговая игра с кучей статических изображений, которые реагируют на пользовательские клики, и очень простой чат (независимо от чата fb). Он может обрабатывать несколько параллельных игр для каждого пользователя (но для разных противников, не то же самое).

Считаете ли вы, что это подходит для Android Webapp ?

Заранее спасибо.

PS1: Во что бы то ни стало, я буду признателен за любую проницательность, поэтому, пожалуйста, не ограничивайте себя этим конкретным примером приложения, если вы хотите быть более широким в своем ответе.

PS2: Да, я прочитал страницу «Лучшие практики для веб-приложений» на сайте developer.android.com, и я следил за ее ссылками, но он не говорит о скорости или надежности компонента WebView, особенно в плане взаимодействия с пользователем , Вопрос возникает после прочтения следующих параграфов на странице описания WebView, что довольно ограничивает типичные сценарии:

Обычный сценарий, в котором использование WebView является полезным, – это когда вы хотите предоставить информацию в своем приложении, которая может потребоваться для обновления, например, соглашение с конечным пользователем или руководство пользователя. В приложении Android вы можете создать Activity, который содержит WebView, а затем использовать его для отображения вашего документа, размещенного в Интернете.

Другим сценарием, который может помочь WebView, является то, что ваше приложение предоставляет данные пользователю, который всегда требует подключения к Интернету для получения данных, таких как электронная почта. В этом случае вы можете обнаружить, что проще создать WebView в приложении для Android, который показывает веб-страницу со всеми пользовательскими данными, вместо того, чтобы выполнять сетевой запрос, а затем анализировать данные и отображать их в макете Android. Вместо этого вы можете создать веб-страницу, предназначенную для устройств Android, а затем внедрить WebView в приложении Android, которое загружает веб-страницу.

Solutions Collecting From Web of "Каков ваш опыт работы с веб-приложениями Android (ограничения, советы, рекомендации)?"

Я реализовал два проекта, которые используют webview, один – с jqtouch и другими с jquery-mobile frameworks.

Вы начинаете как ветер и продолжаете, но, наконец, когда вы смотрите на приложение, это очень далека от привычного пользовательского опыта. Браузер Android намного медленнее, чем браузер iphone. Надеюсь, что это будет разрешено позже, в результате у вас будет более медленное время отклика, когда вы будете иметь дело с тяжелыми приложениями css3. Пока вы развиваетесь в эмуляторе, веб-просмотр сделает вас сумасшедшим, поскольку он медленный.

Если вы хотите внедрить собственные элементы или фиксированную вкладку, вы много работаете и, наконец, не получаете хорошего решения при сравнении своего приложения с родными приложениями, оно просто отстой.

Наконец, я решил изучить родное развитие и стать гражданином первого класса. Конечно, это займет гораздо больше времени, но результат удовлетворит меня.

Я думаю, что развитие на родном языке – это не будущее, через некоторое время мы снова напишем приложения html-css-js, и они будут работать как собственный код, но вряд ли это произойдет через 2-3 года, по моему мнению.

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

Я бы выбрал с этими правилами в этом порядке предпочтения

  • Полная сеть, если вам не нужно ограничивать андроид
  • Телефонный зазор, если вы хотите использовать другие платформы для смартфонов.
  • Полностью native, если вам нужны контакты, высокая графика или любой собственный компонент
  • Веб-просмотр, если вы хотите быть на рынке и, возможно, получить немного денег
  • Гибрид (родной с webview), если вы хотите смешивать подходы

После моего опыта работы с WebView я считаю это фантастическим. Я создал приложение и хотел его портировать на Android, но второй я понял, что WebView работает безупречно, я никогда не оглядывался назад. Все мои функции были встроены в веб-приложение, и поэтому в приложении было мало необходимости в функции ( обнаружение / изменение интернет-соединения и т. Д.),

Я пошел по маршруту « Гибрид ». У меня есть несколько избранных функций, которые вы получаете через приложение для Android, которое веб-сайт не предлагает, поэтому имейте это в виду для маркетинга.

В любом случае, моя единственная проблема – скорость прокрутки может заикаться, когда вы используете тяжелый стиль CSS3 – и я говорю о границе радиуса, тени, градиенты и т. Д., Во всем. Я хотел посмотреть, как он ответил … но да, кроме того, вы должны быть золотыми!

Удачи!

(Edit) Добавлено следующее: Я также хотел добавить, что мое приложение использует jQuery в WebView. Кажется, что он пошатнулся больше, чем анимация на родном языке, но это в значительной степени данное. Хотя не поймите меня неправильно, они все еще анимации и все еще отлично работают! Если бы я мог придать анимации jQuery FPS (слайд вверх / вниз), я бы сказал, что им около 20, а родные анимации – текучей 25-30 (по шкале от 1 до 30). Заметно, но не отнимает ничего из опыта.

Опять же, не поймите меня неправильно здесь, это отлично использовать! Например, у меня есть таймер, который начинается, когда страница загружается и подсчитывается … это отлично работает из App> WebView. Нет ошибок, и если таковой был, это было отражено на веб-сайте (иначе как ошибка jQuerys)

Просто хотел добавить еще несколько моих двух центов =)

Если у вас есть анимация с использованием Javascript, могут произойти некоторые странные вещи.

Я использовал WebView, чтобы показывать графику, имея смешанный подход, а иногда и ад сломался, линия выше или ниже имела значение, когда она не предполагалась в логике кода …

Смешанный подход с Javascript, вызывающий методы Java, может быть выполнен, но иногда бывает сложно.

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

Лично я бы использовал только не-родной подход, если бы я развивался одновременно для нескольких платформ (iOS, Android ..) и не имел времени, ресурсов или возможностей для разработки родного для всех.

В настоящее время интерфейс Javascript ужасно нарушен в 2.3 , поэтому вам, возможно, придется обойти его.

Кроме того, я должен сказать, что я очень разочарован тем, что я нахожу в создании сложных макетов изначально. Иногда я хочу вернуться и сделать все, что в WebView.

Недостатком разработки HTML + JS является то, что … это JS :). У вас нет статической типизации, поэтому отладка может быть сложнее в некоторых ситуациях. (О, кстати, также OnConsoleMessage OnJsError и т. Д., Ужасно разбиты на некоторых телефонах )

Appcelerator Titanium – еще один вариант, если вы рассматриваете кросс-платформенные родные приложения.