Закрыть
E-mail:
Пароль:
Забыли пароль?
В каталоге проекта: 14 985 веб-студий, 1 002 CMS, 268 584 сайта.
РегистрацияCMS MagazineВход
CMS Magazine CMS Magazine

[Азбука клиента] Мобильные приложения: нативные vs html5 vs гибридные

Эра смартфонов

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

Очевидный рост числа пользователей мобильных устройств неизменно влечет за собой бурное развитие рынка мобильных приложений. Неудивительно, что владельцы бизнеса также стремятся стать «мобильнее».

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

Необходим сайт, мобильное приложение, услуги по SEO или контекстной рекламе? Тендерная площадка WORKSPACE поможет выбрать оптимального исполнителя. База проекта насчитывает более 10 500 агентств. Сервис БЕСПЛАТЕН для заказчиков.

Итак, из этой статьи Вы узнаете:

  • Какие бывают мобильные приложения;

  • Какие преимущества Вы получаете при выборе определенного типа приложений;

  • Какие существуют ограничения у разных типов приложений;

  • Какое приложение подойдет именно вам в конкретной ситуации.

Нативные приложения

Нативные приложения загружаются через магазины приложений (App Store, Google Play или его аффилиаты, магазин приложений Windows и т.д.) и устанавливаются в ПО смартфона. Важным отличием является то, что нативные приложения разрабатываются специально под конкретную платформу (например, под iOS для iPhone, под Android для устройств под управлением ОС Android или под Windows для Windows Phone и т.д.) и требуют от разработчика специальных знаний и умений для работы в конкретной среде разработки (xCode для iPhone, eclipse для устройств на Android); более того, используется только «родные» языки программирования для написания таких приложений. Естественно, сам процесс при этом более трудоемкий.

Таким образом, нативные приложения всегда «заточены» под конкретную ОС и органично выглядят на смартфоне. Такие приложения с легкостью могут использовать все функции ПО смартфона (камера, микрофон, акселерометр, геолокация, адресная книга, плеер и т.д.), и при этом более бережно расходуют ресурсы телефона (аккумулятор, память). В зависимости от назначения приложения предполагают или не предполагают наличие интернет-соединения.

Первый пример — приложение Shazam, осуществляющее определение и поиск информации об играющей на другом устройстве песне (в App Store, в Google Play):

  • Устанавливается из магазина приложений;
  • Для работы необходим доступ в интернет;
  • Использует диктофон телефона.

Второй пример — не менее известное приложение Instagram (описание и ссылки для скачивания в магазинах):

  • Устанавливается из магазина приложений;
  • Для работы также необходим доступ в интернет;
  • Использует ПО смартфона: камера, геолокация, адресная книга; Можно включить получение push-уведомлений.

Веб-приложения, или приложения на html5

Веб-приложения не случайно называют html5-приложениями. Это, по сути, сайт, оптимизированный под смартфон. Пользовательский интерфейс создается при помощи стандартных веб-технологий. Их не нужно загружать из магазина приложений, но они могут находиться в специальных магазинах веб-приложений, которые есть у некоторых современных браузерах, например у Chrome. Веб-приложения используют для работы браузер телефона. Главной особенностью таких приложений является их кроссппатформенность — возможность работать на всех устройствах, без дополнительной адаптации.

Независимо от установленной ОС такие приложения не могут использовать ПО смартфона. Для обновления информации в приложении необходимо подключение к интернету, скорость работы ограничена возможностями интернет-соединения провайдера услуг. При желании продавать приложение вам потребуется собственная платежная система.

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

Например, last.fm считается веб-приложением, хотя, по сути, это в тоже время и веб- сайт. Или maps.google.com — веб-сайт, но в тоже время это и веб-приложение.

Дело в том, что веб-технологии развиваются так стремительно, что разница начинаетnразмываться, и сайты все более становятся похожими на веб-приложения. Разницу, хотя и спорно, можно по-простому описать так: сайт представляет собой в большей степени статическую информацию (по сути, цифровая брошюра или листовка); а если пользователь с этойnинформацией может взаимодействовать (менять тексты местами, менять оформление, создавать

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

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

Гибридные приложения

Гибридные приложения сочетают в себе некоторые функции нативных и веб-приложений: кроссплатформенность и возможность использования ПО телефона. Такие приложения могут быть загружены через магазины приложений, и при этом имеют возможность независимого обновления информации. Гибридные приложения требуют подключения к интернету, поскольку веб часть обновляется через интернет. Это, наверное, самый популярный способ построения мобильных приложений, так как у него органическая среда распространения, но разработка происходит быстрее и дешевле, чем в случае с нативными приложениями, так как, хотя оболочка и написана на «родно» языке программирования, «начинка» может быть написана в том или ином объеме на html5. Пользователь же скорее всего не заметит разницу между нативным приложением и гибридным.

Примеры гибридных приложений:

1. Приложение HeartCamera для iOS, позволяющее украсить фотографию рисованными сердцами и т.п.

  • Загружается из магазина;
  • Использует камеру телефона;
  • Необходимо подключение к интернету при желании поделиться результатом своей работы;
  • Можно настроить push-уведомления.

2. Приложение TripCase — органайзер для планирования путешествий. (Ссылки для скачивания в магазинах доступны на сайте )

  • Загружается из магазина;
  • Может использовать геолокацию;
  • Необходимо подключение к интернету;
  • Может использовать сотовую сеть;
  • Можно настроить push-уведомления

Таблица преимуществ и недостатков

Преимущества Недостатки

Нативное

  • Максимальная функциональность и скорость работы

  • Не требуется интернет- соединение для использования

  • Имеет доступ к ПО смартфона (GPS, плеер, камера) Распространение через магазины приложений

  • Выше стоимость и длиннее сроки разработки

  • Требует от разработчика знаний определенной среды программирования

  • Работает только с одной платформой

  • При косметических изменениях необходимо выпускать обновление

Веб (HTML5)

  • Кроссплатформенность

  • Не требует загрузки из магазина мобильных приложений

  • Можно легко адаптировать обычный сайт

  • Легче найти веб-разработчика нежели разработчика под определенную платформу Простота создания и поддержки

     

  • Требует подключения к интернету

  • Не имеет доступа к ПО смартфона

  • Не может отправлять push-уведомления

  • Должен быть запущен интернет-браузер

  • При продаже требуется использование своей платежной системы

Гибридное

  • Функциональность нативного приложения на независимой платформе

  • Запускается не из браузера в отличии от веб приложения Возможность независимого обновления

  • Распространение через магазины приложений

     

  • Загружается из магазина мобильных приложений (необходимо соответствовать требованиям)

  • Разработчик должен быть знаком с разными API

     

Как определиться с выбором

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

Подведем итоги

В статье мы рассмотрели 3 типа мобильных приложений — нативные, web-приложения и гибридные — и их особенности. И теперь с легкостью можем сделать выбор в пользу того или иного варианта в каждой конкретной ситуации. Помните: от того, какие цели вы планируете достичь, создавая мобильное приложение, зависит, какой функциональностью его следует наделить. И, следовательно, какое приложение будет полезно именно вашему бизнесу в вашей конкретной ситуации.

От редакции



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

Обратите внимание на топ-100 лучших разработчиков мобильных приложений.

Пройдя по ссылке, вы сможете составлять срезы по географическому размещению компаний-разработчиков, а также по тематикам. Например, выбрав строчку «Игры» в блоке, расположенным справа от рейтинга, вы сможете построить подрейтинг из разработчиков конкретно игровых приложений.

Автор: Ангелина Новожилова, "Бегемот-Бегемот" (Менеджер проектов)

Комментарии участников рынка

Николай Демьянков

Компания: AREALIDEA
Должность: Руководитель департамента мобильных решений

В данной статье автор достаточно ёмко осветил основные подходы к разработке мобильных приложений с их достоинствами и недостатками. Она будет полезна для изучения будущим заказчикам, чтобы понимать, какой вариант им лучше подойдёт. Автор верно подводит итог фразой, что всё зависит от ваших целей: хотите быстрое функциональное приложение — используйте нативную разработку, хотите просто донести информацию до клиента — лучше остановиться на web-версии, если же необходимо сэкономить — используйте гибридный вариант.

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

Нативные приложения.

Во-первых, не всегда сроки разработки больше, чем при создании html5 или гибридных приложений: всё зависит от его сложности и архитектуры. Если вам требуется сделать какие-то выезжающие меню или интересную анимацию — это нередко проще и быстрее реализовать с помощью нативных компонентов, нежели писать аналогичный функционал с нуля на html5/css/javascript. Конечно, можно попробовать воспользоваться готовыми библиотеками, но это не всегда возможно.

Во-вторых, оптимизация под различные размеры экранов (смартфоны и планшеты). При использовании нативных компонентов ОС это может быть выполнено в достаточно короткие сроки, и приложение получится интереснее и функциональнее, нежели в случае web-приложений. Примеров подобного рода можно привести достаточно много. Возьмите хотя бы стандартное приложение Gmail под Android и запустите его на смартфоне, а затем на планшете.

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

Веб-приложения.

Здесь хочется отметить, что веб-приложениями нередко называют и мобильные приложения, которые написаны с помощью html/css/javascript , и устанавливаются на устройство пользователя через официальные магазины (App Store, Google Play и т.д.). Обычно это реализуется следующим образом: вначале весь контент и интерфейс пишутся при помощи веб-технологий. В результате получается определённый набор связанных между собой html-страниц, которые можно перенести без изменений на любую платформу. Затем, в среде разработки (xcode, eclpise и т.д.) создаётся простое приложение, которое архитектурно состоит из одного экрана со встроенным браузером, через который и показываются написанные страницы. Таким образом, получается как бы нативное приложение, распространяемое через маркеты, однако, по сути, написанное при помощи веб-технологий.

Некоторые разработчики поступают ещё хитрее: чтобы не выпускать обновления, они просто зашивают в браузер ссылку на внешнюю страницу и при запуске приложения показывается оптимизированная версия сайта.

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

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

Поэтому с подобными приложениями надо быть очень аккуратными.

Гибридные приложения.

Как верно отметил автор статьи, гибридный вариант является некоторой серединой между нативными и web-решениями. Данный подход позволяет создать часть (а иногда и все) компонентов кроссплатформенными, и при этом получить доступ к различным возможностям устройства, сохранив хорошую скорость работы. Однако здесь всё зависит от того, каким инструментом будут пользоваться разработчики.

В настоящее время наиболее известными и популярными фреймворками для разработки подобных решений являются PhoneGap и Xamarin.

Первый из них автор как раз и описала в соответствующем разделе своей статьи. PhoneGap — это html/css/javascript фреймворк, с помощью которого пишется приложение. Доступ к функциям устройства осуществляется посредством использования javascript API фреймворка, а весь контент создаётся на html и css. Приведённые примеры приложений My Heart Camera и TripCase как раз были разработаны при помощи PhoneGap. Основным достоинством данного подхода является полная кроссплатформенность создаваемого кода, поскольку используются всё те же веб-технологии.

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

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

Xamarin — это фреймворк, позволяющий создавать приложения при помощи языка C#. Основным его достоинством является то, что всё приложение пишется на одном языке программирования, и позволяет создать ядро системы и ряд компонентов едиными для всех основных платформ: iOS, Android, Windows Phone. Среди кроссплатформенных компонентов можно выделить работу с базой данных, взаимодействие по сети, работа с файловой системой, обработка видеопотока и т.д. Однако интерфейс приложения приходится реализовывать отдельно под каждую из платформ. Данный недостаток легко обернуть себе на пользу, поскольку можно создать интерфейс, отвечающий требованиям и гайдам целевой платформы. Скорость работы подобных приложений очень близка к нативным, и здесь как раз пользователь не сможет определить: нативное оно, или написано с использованием каких-то сторонних решений (в отличие от того же PhoneGap).

Из недостатков Xamarin можно выделить следующее:

  • время разработки не сильно меньше нативной;
  • не всегда просто удаётся подключить сторонние нативные библиотеки;
  • долгий процесс сборки проектов, что сказывается на общем времени разработки;
  • различные ошибки фреймворка, которые, однако, постепенно исправляются.

В качестве примера приложения, разработанного при помощи Xamarin, можно привести приложение дополненной реальности ARTOUCHER. Изначально оно было создано как нативное, но впоследствии переписано с помощью Xamarin. Это позволило сделать немалое количество модулей общими для разных платформ, тем самым ускорив и упростив процесс разработки. При этом само приложение не отличается от нативного.

В качестве итога хотелось бы сказать, что желание сэкономить и «сделать побыстрее» является естественным и понятным. Имеющийся в настоящее время набор инструментов позволяет удовлетворить его в полной мере, получив приложение, которое решает поставленные перед ним цели. Однако нужно понимать, что вы создаёте приложение не для себя, а для своих клиентов. И основная цель должна заключаться в том, чтобы им пользовались, а не чтобы оно было. Лучше один раз сделать хорошо, чем потом переделывать по 10 раз, пытаясь поднять престиж в глазах клиентов. Получить качественное и удобное мобильное приложение при помощи веб-технологий без использования сторонних фреймворков достаточно непросто. Но даже в этом случае придётся попотеть, чтобы довести приложение до ума (например, если использовать PhoneGap).

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

В качестве дополнительного материала, можно также обратить внимание на статью «Мобильный сайт или мобильное приложение для интернет-магазина? С чего начать и что лучше» и комментарии к ней — http://www.cmsmagazine.ru/library/items/moblile/ib_2011-12-19/

Олег Леонов

Компания: UTLab
Должность: Программист

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

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

В нативных приложениях такой проблемы нет. Декомпиляция (получение исходных кодов) это довольно трудоемкий и порой очень длинный процесс, поэтому тут нативные приложения одерживают победу.

Также хотелось бы упомянуть, что на данный момент HTML5 на мобильных устройствах продвинулся далеко. К примеру, при правильном написании возможна работа HTML5 приложения офлайн (для запуска необходим интернет), и не стоит заявлять так категорично про «не имеет доступа к ПО». Приложения могут получать координаты, данные акселерометра и даже изображение с камеры, что для многих приложений будет вполне достаточно.

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

Дмитрий Ключников

Компания: Russian IT group
Должность: Программист

Да, гибридные приложения всё более прочно входят в нашу жизнь. Это факт, от которого сегодня не уйти. Как не уйти разработчикам и от того факта, что заказчики становятся более требовательными. Некоторые же из их запросов и вовсе могут перерасти в откровенные капризы. Самого главного из них зовут «хочу всё и сразу», которого порой не могут обуздать возможности лишь одной мобильной платформы. Именно поэтому вопрос о кроссплатформенности разрабатываемых приложений становится актуальным сегодня как никогда.

«I\\’m sharing 98% source code between my Android and iOS app.»
«Я разделяю 98% исходного кода между своим Android- и iOS-приложением»
Nikolai Sander, основатель EODSof.

Со своей стороны отмечу, что разработчик в данном вопросе отнюдь не одинок. На данный момент существует достаточно фреймворков, позволяющих заниматься разработкой гибридных приложений: PhoneGap, Titanium, Xamarin и другие. Особенность первых двух заключается в том, что благодаря им мы можем создавать приложения с использованием связки HTML-CSS-JS. Кроме этого, благодаря JavaScript API мы можем получить доступ к «родным» возможностям устройства (акселерометр, геолокация, звук и прочее). Замечу, что вся работа происходит внутри «родного» для устройства WebView-контрола, что в итоге сильно сказывается на производительности и возможностях приложения.
Чего нельзя сказать про платформу Xamarin. С её помощью можно писать приложения, используя компилируемый высокоуровневый язык C# и платформу .NET(портированную на целевую платформу), а также все сопутствующие ей технологии (LINQ, WCF, SqlClient). Впечатляет и производительность приложения. По словам разработчиков Xamarin, она практически не уступает характеристикам нативных приложений.

Посудите сами: написание приложений под мобильные платформы в ней сводится к написанию всего лишь двух блоков: 1) платформонезависимого (бизнес-слой, слой данных, слой логики и 2) платформозависимого (Application UI Layout). Причем платформонезависимый блок составляет 90% приложения, который единовременно используется на всех платформах. Остается всего лишь написать Application UI Layout для каждой мобильной платформы. Что же мы получаем на выходе? Сокращение в несколько раз времени, затрачиваемого на разработку кроссплатформенных приложений, а следовательно, и стоимости. Не в этом ли заключается мечта заказчика и разработчика?

Если Вы хотите дать экспертный комментарий к статьям, публикуемым на CMS Magazine, следите за анонсами материалов в нашей группе в Facebook.

Рекомендуем:


CMS Magazine CMS Magazine
Реклама
RSS-подписка
CMS Magazine CMS Magazine
CMS Magazine