
Нативный vs. кроссплатформенный: различия подходов в разработке мобильных приложений
11 апреля 2018Как правило, каждая бизнес-компания выходит в свет по следующему сценарию: сначала создается веб-сайт, затем его адаптируют к мобильным устройствам, и если трафик увеличивается, компания выпускает приложение для пользователей мобильных устройств.
Сравнение мобильного веб-сайта и приложения кажется излишним, поскольку приложение превосходит широким спектром функций и гибкими интерфейсом, которые удобнее использовать на телефоне или планшете. Кроме того, приложения используются и в автономном режиме.
Эта статья призвана объяснить два подхода в разработке приложений – нативный и кроссплатформенный, помочь заказчику и разработчику лучше понять друг друга, подчеркнуть преимущества и недостатки каждого и попытаться ответить на главный вопрос: как сделать выбор в пользу того или иного подхода.
Нативный подход
Для каждой платформы существует свой нативный язык, родной для каждой операционной системы и рекомендуемый производителем: для iOS это Objective-C или SWIFT, для Android – Java или Kotlin, а для Windows Phone – C#. Нативное приложения встраивается в программное обеспечение мобильного устройства и загружается через официальный магазин Apple, Google Play и Windows.
Отсутствие каких бы то ни было ограничений - преимущество нативной разработки. Созданное приложение имеет стильный интерфейс, мощный функционал, разветвлённое меню, быструю графику, интересные анимации. Неоспоримым достоинством нативной разработки является использование им всех функций ПО системы, таких как камера, микрофон, геолокатор, акселерометр, календарь, медиа, одновременно с этим, приложение экономно расходует память и аккумулятор устройства.
Кроссплатформенный подход
Когда был выпущен первый iPhone в 2007 году, все было просто: пользователи смартфона хотели приложений и iPhone был единственным устройством, о котором должны были думать разработчики. Их задача заключалась в том, чтобы принять концепцию приложения, выработать его логику, записать адаптированный код и все, – работа выполнена. Никто не волновался о межплатформенной совместимости и не думал о разработке кроссплатформенных мобильных приложений.
Затем появились смартфоны, работающие на операционной системе Android и изменили существовавший порядок вещей. Всплеск Windows Mobile и устройств, основанных на Symbian и BlackBerry, еще больше осложнили ситуацию.
Несмотря на доминирование iOS и Android, разработчики приложений не могли игнорировать другие устройства. В результате программистам приходилось писать разные коды для всех платформ. Не стоит и говорить, что время, потраченное на разработку приложения, а также и стоимость работы увеличились.
Раздробленность форматов и существования большого количества различных вариантов операционных систем привели к необходимости появления такой категории подхода в разработке мобильных приложений как кроссплатформенный.
В нативном подходе приложения разрабатываются отдельно под каждую операционную систему, а в кроссплатформенном – все создается за один раз.
Кроссплатформенные приложения часто создаются на языке разметки и стилей (HTML , CSS и JavaScript), как и мобильные сайты. Это жизнеспособный подход, потому что в конце концов, большинство интернет-контента состоит из HTML¬-страниц. Такого рода приложения одновременно пишутся и подходят для большинства устройств, поскольку для работы используют механизм браузера.
Большинство специалистов, работающих с такими приложениями, используют систему PhoneGap, которая подходит для предоставления приложениям доступ к большинству программных и аппаратных возможностей платформы.
Если рассматривать подходы в процессе разработки приложений для персональных компьютеров, то MS Word, Skype, почтовые агенты и календари – это нативно разработанные приложения под настольную операционную систему, а все, что происходит в браузере (сайты, онлайн-редакторы, социальные сети, чаты и форумы) – это кроссплатформенные технологии.
Сравнение подходов
Рынок приложений изменяется. Статистика продаж мобильных приложений показывает, что год от года пользователи меняют сервисы «по умолчанию» на альтернативные: используют Evernote вместо стандартного редактора заметок и предпочитают Wunderlist, а не встроенный менеджер задач.
Для заказчика важно знать, какие преимущества и недостатки у каждого из подходов, чтобы при выборе не завышать ожиданий. Для сравнительного анализа кроссплатформенного и нативного подходов будем использовать ряд критериев.
Зависимость от платформы
Есть заблуждение, что кроссплатформенные приложения хорошо осваиваются на всех платформах, даже непопулярных. Но с оговоркой, что разработчикам необходимо дописывать часть дополнительного кода, чтобы так было и в действительности.
Эффективную работу гарантирует нативный подход, но стоит помнить, что для каждой платформы нужна собственная версия приложения.
Пользовательский опыт
На подсознательном уровне пользователь ждет от приложения отзывчивости. Затем, за действиями потребителя следует ответная реакция, прокрутка страницы и анимация протекают плавно и без зависаний.
Кроссплатформенные приложения в этом плане уступают нативным – они тормозят и это основная проблема.
Пользователь также уверен в том, что все элементы управления и иконка имеют стандартный вид и положение на экране приложения. Для платформ эти стандарты будут разными и если кроссплатформенное приложение разработано по гайдлайнам iOS, то пользователям Android это доставит неудобство, и наоборот.
Дизайн интерфейса
Языковая среда, в которой разрабатываются нативные приложения, обладает необходимыми инструментами для создания привычного пользователю интерфейса. Иная ситуация с веб-технологиями: нужно немало усилий, чтобы сделать кроссплатформенное приложение, которое будет похоже на нативное.
Кроссплатформенные фреймворки помогают с той или иной степенью достоверности подражать нативному интерфейсу, но скорость анимации, эффекты и дизайн будут различаться.
Безопасность
Для браузеров существует стандартный безопасный протокол передачи данных HTTPS. И когда требуется особый уровень шифрования, решение проблемы ложится на разработчиков. Обеспечить надежную защиту возможно только в нативной разработке, так как это связано с математикой, а подобные операции требуют эффективного использования аппаратных ресурсов.
Ограничения
Нативное приложение, написанное под определенную платформу, чувствует себя полноправным обитателем и получает доступ ко всем сервисам устройства.
Разрабатывая кроссплатформенное приложение специалистами учитываются возможности фреймворка, который налагает ограничения.
Проблемой может стать и то, что у фреймворка есть несколько версий, и чем старее, тем больше ограничений. Так или иначе, у кроссплатформенного приложения имеется доступ не ко всем фишкам платформы. Но не всегда возникает потребность в полной интеграции – все зависит от задач, которые решает приложение.
Цена
Нативное приложение разрабатывается под каждую платформу с учетом всех особенностей, тем самым делая мобильное приложение более гибким и масштабируемым. Это преимущество позволяет добавлять функционал и улучшать приложение в будущем. При этом, нативная разработка требует, как минимум, двух разработчиков, специализирующихся на разных платформах (iOS и Android). Все это делает нативный подход в разработке мобильных приложений дороже, чем кроссплатформенный.
Главным достоинством кроссплатформенного подхода является то, что скорость разработки немного выше, нежели у нативной, а времени и ресурсов затрачивается меньше.
Приложение подгоняется сразу под несколько операционных систем и нет необходимости в подготовке уникальных элементов для каждой платформы. Для создания кроссплатформенного приложения нужен всего лишь один специалист, владеющий HTML, JavaScript и CSS, имеющий опыт работы в PhoneGap. Это дает возможность начать разработку с меньшим бюджетом.
Кроссплатформенная разработка не подходит для серьезных бизнес-проектов. Данный тип разработки выгоден при написании прототипа приложения под несколько платформ в сжатые сроки, для игрового или тестового приложения. Это ускоряет разработку без ущерба качества за счет использования специальных графических фреймворков. Если проект не игровой и направлен на долгосрочное развитие, требует положительного впечатления пользователей – нативная разработка остается подходящим вариантом.
Вывод
Рассмотрев два способа создания мобильного приложения и их функции, вы теперь легко сделаете выбор в пользу того или другого подхода, в зависимости от ситуации или даже скомбинировать их. Если ваша цель произвести впечатление на пользователей молниеносным интерфейсом, богатым функционалом и производительностью, нативное приложение – это то, что нужно. С технической точки зрения и пользовательского опыта, у нативного подхода гораздо больше преимуществ.
Однако, есть области, в которых кроссплатформенная разработка оправдана, например, мобильные игры.
Кроссплатформенные приложения гораздо проще в плане обслуживания и развертывания за счет того, что создается одно приложение для всех платформ. Но большим недостатком является низкая производительность, что может быть особенно важно, если вам нужно приложение с функциями, которые требуют глубокой интеграции оборудования.
Сравнение мобильного веб-сайта и приложения кажется излишним, поскольку приложение превосходит широким спектром функций и гибкими интерфейсом, которые удобнее использовать на телефоне или планшете. Кроме того, приложения используются и в автономном режиме.
Эта статья призвана объяснить два подхода в разработке приложений – нативный и кроссплатформенный, помочь заказчику и разработчику лучше понять друг друга, подчеркнуть преимущества и недостатки каждого и попытаться ответить на главный вопрос: как сделать выбор в пользу того или иного подхода.
Нативный подход
Для каждой платформы существует свой нативный язык, родной для каждой операционной системы и рекомендуемый производителем: для iOS это Objective-C или SWIFT, для Android – Java или Kotlin, а для Windows Phone – C#. Нативное приложения встраивается в программное обеспечение мобильного устройства и загружается через официальный магазин Apple, Google Play и Windows.

Отсутствие каких бы то ни было ограничений - преимущество нативной разработки. Созданное приложение имеет стильный интерфейс, мощный функционал, разветвлённое меню, быструю графику, интересные анимации. Неоспоримым достоинством нативной разработки является использование им всех функций ПО системы, таких как камера, микрофон, геолокатор, акселерометр, календарь, медиа, одновременно с этим, приложение экономно расходует память и аккумулятор устройства.
Кроссплатформенный подход
Когда был выпущен первый iPhone в 2007 году, все было просто: пользователи смартфона хотели приложений и iPhone был единственным устройством, о котором должны были думать разработчики. Их задача заключалась в том, чтобы принять концепцию приложения, выработать его логику, записать адаптированный код и все, – работа выполнена. Никто не волновался о межплатформенной совместимости и не думал о разработке кроссплатформенных мобильных приложений.
Затем появились смартфоны, работающие на операционной системе Android и изменили существовавший порядок вещей. Всплеск Windows Mobile и устройств, основанных на Symbian и BlackBerry, еще больше осложнили ситуацию.
Несмотря на доминирование iOS и Android, разработчики приложений не могли игнорировать другие устройства. В результате программистам приходилось писать разные коды для всех платформ. Не стоит и говорить, что время, потраченное на разработку приложения, а также и стоимость работы увеличились.
Раздробленность форматов и существования большого количества различных вариантов операционных систем привели к необходимости появления такой категории подхода в разработке мобильных приложений как кроссплатформенный.

В нативном подходе приложения разрабатываются отдельно под каждую операционную систему, а в кроссплатформенном – все создается за один раз.
Кроссплатформенные приложения часто создаются на языке разметки и стилей (HTML , CSS и JavaScript), как и мобильные сайты. Это жизнеспособный подход, потому что в конце концов, большинство интернет-контента состоит из HTML¬-страниц. Такого рода приложения одновременно пишутся и подходят для большинства устройств, поскольку для работы используют механизм браузера.
Большинство специалистов, работающих с такими приложениями, используют систему PhoneGap, которая подходит для предоставления приложениям доступ к большинству программных и аппаратных возможностей платформы.
Если рассматривать подходы в процессе разработки приложений для персональных компьютеров, то MS Word, Skype, почтовые агенты и календари – это нативно разработанные приложения под настольную операционную систему, а все, что происходит в браузере (сайты, онлайн-редакторы, социальные сети, чаты и форумы) – это кроссплатформенные технологии.
Сравнение подходов
Рынок приложений изменяется. Статистика продаж мобильных приложений показывает, что год от года пользователи меняют сервисы «по умолчанию» на альтернативные: используют Evernote вместо стандартного редактора заметок и предпочитают Wunderlist, а не встроенный менеджер задач.

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

Пользователь также уверен в том, что все элементы управления и иконка имеют стандартный вид и положение на экране приложения. Для платформ эти стандарты будут разными и если кроссплатформенное приложение разработано по гайдлайнам iOS, то пользователям Android это доставит неудобство, и наоборот.
Дизайн интерфейса
Языковая среда, в которой разрабатываются нативные приложения, обладает необходимыми инструментами для создания привычного пользователю интерфейса. Иная ситуация с веб-технологиями: нужно немало усилий, чтобы сделать кроссплатформенное приложение, которое будет похоже на нативное.
Кроссплатформенные фреймворки помогают с той или иной степенью достоверности подражать нативному интерфейсу, но скорость анимации, эффекты и дизайн будут различаться.
Безопасность
Для браузеров существует стандартный безопасный протокол передачи данных HTTPS. И когда требуется особый уровень шифрования, решение проблемы ложится на разработчиков. Обеспечить надежную защиту возможно только в нативной разработке, так как это связано с математикой, а подобные операции требуют эффективного использования аппаратных ресурсов.

Ограничения
Нативное приложение, написанное под определенную платформу, чувствует себя полноправным обитателем и получает доступ ко всем сервисам устройства.
Разрабатывая кроссплатформенное приложение специалистами учитываются возможности фреймворка, который налагает ограничения.
Проблемой может стать и то, что у фреймворка есть несколько версий, и чем старее, тем больше ограничений. Так или иначе, у кроссплатформенного приложения имеется доступ не ко всем фишкам платформы. Но не всегда возникает потребность в полной интеграции – все зависит от задач, которые решает приложение.
Цена
Нативное приложение разрабатывается под каждую платформу с учетом всех особенностей, тем самым делая мобильное приложение более гибким и масштабируемым. Это преимущество позволяет добавлять функционал и улучшать приложение в будущем. При этом, нативная разработка требует, как минимум, двух разработчиков, специализирующихся на разных платформах (iOS и Android). Все это делает нативный подход в разработке мобильных приложений дороже, чем кроссплатформенный.
Главным достоинством кроссплатформенного подхода является то, что скорость разработки немного выше, нежели у нативной, а времени и ресурсов затрачивается меньше.

Приложение подгоняется сразу под несколько операционных систем и нет необходимости в подготовке уникальных элементов для каждой платформы. Для создания кроссплатформенного приложения нужен всего лишь один специалист, владеющий HTML, JavaScript и CSS, имеющий опыт работы в PhoneGap. Это дает возможность начать разработку с меньшим бюджетом.
Кроссплатформенная разработка не подходит для серьезных бизнес-проектов. Данный тип разработки выгоден при написании прототипа приложения под несколько платформ в сжатые сроки, для игрового или тестового приложения. Это ускоряет разработку без ущерба качества за счет использования специальных графических фреймворков. Если проект не игровой и направлен на долгосрочное развитие, требует положительного впечатления пользователей – нативная разработка остается подходящим вариантом.
Вывод
Рассмотрев два способа создания мобильного приложения и их функции, вы теперь легко сделаете выбор в пользу того или другого подхода, в зависимости от ситуации или даже скомбинировать их. Если ваша цель произвести впечатление на пользователей молниеносным интерфейсом, богатым функционалом и производительностью, нативное приложение – это то, что нужно. С технической точки зрения и пользовательского опыта, у нативного подхода гораздо больше преимуществ.
Однако, есть области, в которых кроссплатформенная разработка оправдана, например, мобильные игры.
Кроссплатформенные приложения гораздо проще в плане обслуживания и развертывания за счет того, что создается одно приложение для всех платформ. Но большим недостатком является низкая производительность, что может быть особенно важно, если вам нужно приложение с функциями, которые требуют глубокой интеграции оборудования.