Какой у вас опыт работы с веб-приложениями для Android (ограничения, советы, рекомендации)? - PullRequest
21 голосов
/ 14 апреля 2011

Обновление:

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

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

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

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

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

Как вы думаете, хорошо подходит для веб-приложения Android ?

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

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

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

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

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

Ответы [ 6 ]

13 голосов
/ 23 апреля 2011

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

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

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

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

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

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

10 голосов
/ 15 апреля 2011

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

  • Полный веб, если вам не нужно ограничивать для Android
  • Разрыв телефона , если вы хотитедругие платформы для смартфонов.
  • Полностью встроенный, если вам нужны контакты, качественная графика или какой-либо собственный компонент
  • веб-просмотр, если вы хотите быть на рынке и, возможно, заработать немного денег
  • Гибрид (родной с веб-просмотром), если вы хотите смешать подходы
6 голосов
/ 23 апреля 2011

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

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

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

Удачи!

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

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

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

5 голосов
/ 20 апреля 2011

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

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

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

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

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

3 голосов
/ 25 апреля 2011

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

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

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

2 голосов
/ 25 апреля 2011

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

...