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-летнем развитии коммерческого программного обеспечения и опыте самого обеими подходами.