Ответы на вопросы: часть 8. Шаблоны, конструкторы, «гибрид», «натив»

Мы продолжаем отвечать на вопросы наших клиентов. Все ответы можно посмотреть по ссылке. Сегодня мы отвечаем на такой вопрос: «Что такое шаблоны, консутрукторы, «гибрид», «натив» и какая между ними разница?».

Это один из очень частых вопросов. Рынок мобильных приложений развивается быстро. Появляются новые понятия, новые способы разработки, и иногда разнообразие терминологии может запутать человека, который ранее не сталкивался с мобильной разработкой. В этой статье постараемся кратко описать такие понятия, как шаблоны, консутрукторы, «гибрид» и «натив».

Примечание: в целях популярного изложения некоторые технические аспекты в этой статье значительно упрощаются.

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

Нативная разработка — это разработка мобильных приложений с помощью т.н. нативного (т.е. родного) языка для той или иной платформы. Для Android-а таким языком является Java, а для iOS — objective-C или пока менее популярный Swift. Названия языков не так важны. Важно то, что у каждой платформы родной язык свой. На практике это значит, что одно и то же приложение нужно отдельно делать для Android и отдельно для iOS. На данный момент это все еще самый распространенный способ разработки.

Есть альтернативный способ: гибридный, или кроссплатформенный. Языки программирования, которые при этом используются, — это HTML, CS и JavaScript. Эти же языки используются для разработки сайтов. По сути, создается веб-сайт размеров мобильного устройства и помещается в рамки той или иной операционной системы. Если не присматриваться, то особой разницы между нативными и гибридными приложениями не заметить.

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

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

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

Шаблоны и конструкторы

Иногда наряду с такими понятиями, как гибридная и нативная разработка можно услышать «конструктор» и «шаблон». Это может еще больше запутать неподготовленного клиента. Если до сих пор мы говорили о способах разработки, то сейчас речь пойдет скорее о способах ускорения разработки и снижения ее себестоимости.

Мы все уже привыкли, что сайты делаются довольно просто: есть конструкторы (такие как WordPress, UMI CMS, Bitrix и т.д.), которые позволяют добавлять и убирать элементы и менять оформление с помощью шаблонов. К сожалению, в мобильной разработке уровень настройки еще не настолько высок, но свои конструкторы и шаблоны уже есть.

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

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

Снова должны повториться: мы уверены, что за конструкторами мобильных приложений, — будущее, но оно еще очень далеко.