HTML5 vs Native App: что выбрать?

Этот вопрос довольно популярен, и есть много вопросов, относящихся к нему. Но некоторые из них старые (например, 6 месяцев назад), а на текущую дату - май 2012 года... это будет потрясающе, если вы можете указать, какой из них лучше на данный момент!

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

  • Создание музыкального проигрывателя в моем приложении (нужно будет прочитать все плейлисты и воспроизвести их) - HTML5 (или) Native?

  • Использование акселерометра - HTML5 (или) Native?

  • Использование камеры - HTML5 (или) Родной?

  • Использование жестов (swype и т.д.) - HTML5 (или) Native?

  • Возможности Multi-Touch и жесты - HTML5 (или) Native?

  • Разработка 3D-игры (или) 2.5D с физикой - HTML5 (или) Родной? (Родной может быть лучшее предложение здесь, но я любопытно знать, как HTML5 будет делать в многоплатформенной игре dev)

Если вы можете указать параметры с правильным ответом и указать причину, почему мне придется использовать native/html5, это было бы потрясающе:)


Кроме того, что вы думаете о Phone-Gap для встроенной поддержки?

Ответы

Ответ 1

Создание музыкального проигрывателя в моем приложении. Оба. HTML5 может быть утомительным.

Использование акселерометра - родной. Html5 не поддерживает его

Использование камеры - родной. Html5 не поддерживает его

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

Возможности и жесты Multi-Touch. Я бы сказал, родной, для простоты разработки

Разработка 3D-игры (или) 2.5D с физикой. Оба, некоторые большие библиотеки теперь доступны для обеих систем. Однако делать то, что вы хотите в HTML5, вероятно, нелегко на данный момент.

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

Однако, если вам не нужны конкретные функции, перейдите на HTML5. До сих пор немного утомительно писать код, но качество и количество доступных библиотек растет с каждым днем. Используйте CoffeeScript, это сэкономит вам головные боли.

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

Ответ 2

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

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

В основном использование кросс-платформенного решения - это самый низкий общий знаменатель/подходит только для простых приложений/ложной экономии в моем опыте.

Просто мое скромное мнение, основанное на 12-летнем развитии коммерческого программного обеспечения и опыте самого обеими подходами.