В сети много положительных статей о нативной разработке. Многие программисты, дизайнеры и другие специалисты убеждены, что такая разработка лучше других способов создания мобильного приложения. Наша команда Q-Digital уже 8 лет разрабатывает нативные и кроссплатформенные приложения. Мы наработали большой опыт, поэтому можем объективно рассказать об особенностях разных видов разработки. В этой статье — наш честный взгляд на нативную разработку. Вы узнаете, в чем ее преимущества и недостатки, сколько времени и денег потребует запуск нативного приложения. Поехали!
Что такое нативная разработка
Нативная разработка — это создание приложения конкретно под одну операционную систему. Ее название произошло от английского слова «native», то есть «родной».
Две самые популярные ОС для смартфонов — Android от компании Google и iOS от компании Apple. Так как Apple и Google заинтересованы в том, чтобы разработчикам было удобно создавать приложения для их операционных систем, они предлагают собственные средства кастомной разработки: комплект программ (SDK), нативные языки и др. Подробнее о разнице двух операционных систем мы уже писали в статье iOS vs Android. Какую платформу выбрать для разработки приложения.
Нативный язык программирования — это свой, естественный язык для каждой операционной системы. Для создания мобильного приложения для Android нужен язык Java или Kotlin, а для iOS — язык Swift или Objective-C.
Java — это «родной» язык для Android, на котором программисты писали приложения до того, как появился Kotlin. Сейчас Java тоже распространен, но для мобильной разработки используется меньше. Kotlin — более современный и удобный язык.
Такая же ситуация произошла с языками для iOS. Изначально яблочные программы писали на Objective-C — официальном языке iOS. Но у этого инструмента были недостатки вроде сложного синтаксиса. Поэтому специалисты Apple создали новый язык, Swift. Он более простой и удобный, его легче изучить.
Так как для разных ОС требуются свои языки, продукт, предназначенный для Android, нельзя будет установить на iOS, и наоборот. Программа будет полностью адаптирована под одну систему, ее интерфейс, требования, возможности.
Почему же нативный код считается лучшим вариантом для тех, кто хочет создать мобильное приложение? Давайте разбираться.
Плюсы и минусы нативных приложений
Для начала разберем преимущества «родной» разработки и посмотрим, действительно ли они побеждают ее недостатки.
5 преимуществ нативной разработки
Производительность
Скорость — это первое, на что стоит обратить внимание. От этого зависит впечатление пользователей о продукте. Если сервис будет постоянно тормозить, пользовательский опыт может быть испорчен. Из-за этого люди удалят приложение и установят продукт конкурентов.
В этом аспекте нативная мобильная разработка на Java или Swift однозначно выигрывает. Такие продукты скомпилированы с помощью их естественного языка программирования — это повышает скорость взаимодействия программы с операционной системой. Именно поэтому большинство игр выполнено с помощью нативной разработки: в них важен мгновенный отклик на действия пользователя.
Безопасность
Apple и Google постоянно совершенствуют свои наборы инструментов для программирования. Использование «родных» средств разработки сокращает количество ошибок при написании кода. А значит, уязвимостей в нативных приложениях будет меньше.
Возможность использовать все функции смартфона
Если вы задумали фоторедактор, в котором человек сможет сфотографировать себя с наложением фильтров, сервис должен иметь доступ к камере смартфона. А если вы хотите сделать мессенджер, в котором можно будет отправлять голосовые сообщения, приложению понадобится доступ к микрофону. Реализовать интеграцию с GPS, камерой, микрофоном, календарем и другими возможностями устройства будет гораздо легче именно в нативной разработке. Так как такое приложение соответствует всем требованиям операционной системы, совместимость будет лучше.
Стабильность
Мы уже упоминали, что Apple и Google регулярно работают над обновлением и улучшением своих операционных систем. Это отражается и на стабильности «родных» приложений. Операционные системы полностью их поддерживают, поэтому ошибок и сбоев будет меньше. А значит, пользователи будут довольны продуктом, который работает практически без багов.
Дружелюбный и понятный UX/UI
По уровню удобства нативные проекты опережают другие. Так как они реализованы с учетом особенностей интерфейса операционной системы, пользователям не надо запоминать новые жесты и движения. Например, в андроиде есть панель навигации внизу. На этой панели есть кнопка, которая возвращает пользователя на шаг назад. Зайдя в приложение, которое было разработано специально для Android, пользователь будет знать, что с этой кнопки он может вернуться к предыдущей странице.
Благодаря знакомым паттернам взаимодействие пользователей с нативными приложениями будет проще и удобнее.
3 недостатка нативных приложений
Цена
Если вы хотите, чтобы ваше продукт был доступен владельцам смартфонов и на iOS и на Android, нужно разработать продукт для двух этих систем по отдельности. То есть нужно нанимать отдельные команды для программирования и нативной поддержки. Создание нативных проектов считается самым дорогим видом разработки. Она вдвое дороже кроссплатформенной.
Время
Этот пункт связан с предыдущим. Если для реализации проекта для двух платформ требуются разные команды, то и время создания удваивается. В среднем для разработки нативного приложения нужно около 4-6 месяцев. За это время команда создает UI/UX дизайн, пишет фронтенд и бэкенд, проводит тестирование.
Получается, для проекта, который подойдет обеим операционным системам, понадобится около года разработки.
Потребление ресурсов
Нативная разработка позволяет создать мощный многофункциональный сервис. Но, чем больше умеет продукт, тем больше ресурсов устройства он потребляет. Приложения для конкретной системы могут занимать больше памяти и быстрее тратить батарею, чем кроссплатформенные. Это также может негативно повлиять на пользовательский опыт. Если проект конкурента с такими же функциями будет весить меньше, люди могут предпочесть его.
В целом плюсов получилось больше, чем минусов. Но недостатки существенные — это время и деньги. Если вам не принципиальны эти вещи, нативный код — отличный вариант. В другом случае, есть еще несколько видов создания приложений. Это гибридная и веб-разработка. Веб-приложения — это адаптированные сайты, которые можно открыть через браузер. Они не так популярны, как скачиваемые продукты, поэтому мы уделим больше внимания гибридной, или кроссплатформенной разработке.
Немного о разнице кроссплатформенной и нативной разработки
При кроссплатформенной разработке большая часть кода подходит для двух платформ, iOS и Android. Потом требуются небольшие доработки, чтобы адаптировать программу под разные платформы.
Создать кроссплатформенное приложение можно с помощью специальных фреймворков. Это программная среда, с помощью которой легче написать код. Есть несколько кроссплатформенных фреймворков — React Native, Flutter, Xamarin, Ionic. Они используют несложные языки программирования, такие как JavaScript, Dart и другие.
Выше мы уже показали несколько отличий между кроссплатформенной и нативной разработкой. Приложения, собранные конкретно под платформу, будут безопаснее, понятнее, мощнее. Но есть еще одно существенное различие — функциональность.
В проектах, созданных для конкретной ОС, легче реализовать сложные функции. Например, обработку большого массива данных или внедрение искусственного интеллекта.
Так, команда сервиса бронирования Airbnb остановилась на нативной разработке, когда в компании решили масштабироваться. Изначально сервис был нативным, но в 2016 году компания решила перейти на кроссплатформенную разработку, чтобы оптимизировать ресурсы. В итоге на внедрение функций и на устранение ошибок стало уходить больше времени. Через 2 года работы команда решила снова перейти на нативный код, так как кроссплатформенный вариант просто не подходил специфике сервиса.
В результате Airbnb смог добавить анимированную карту. С помощью кроссплатформенного фреймворка можно было бы прикрутить эту функцию, но это было бы сложнее.
Конечно это не значит, что кроссплатформенная разработка ни на что не годится. Именно таким образом созданы Skype, Mattermost, Яндекс.Про и приложение Дикси. Гибридная разработка отлично подойдет, когда нужен быстрый старт и выход на рынок. А еще - для проектов с небольшим количеством экранов и небольшим набором функций. Витрин интернет-магазинов, фитнес-трекеров, виртуальных кошельков и т.д.
А каким проектам больше подойдет нативная разработка?
Когда нативное приложение — лучший вариант
Если вы задумали высокотехнологичный проект, например, стриминговую платформу, многофункциональный фоторедактор, мессенджер, лучше выбрать нативный вариант. Также она подойдет для корпоративных приложений, сложных проектов в сфере здравоохранения, образования. А еще — для продуктов, в которых главную роль играет дизайн, так как нативная разработка позволяет добавлять красивые анимации и внедрять сложные дизайнерские решения.
Примеры нативных приложений
Pokemon Go
Для большинства мобильных игр тоже нужна разработка под определенную ОС, особенно если вы хотите добавить 3D-эффекты или технологии дополненной реальности. Именно так была создана популярная игра Pokemon Go. Простая, но интересная игровая механика помогла ей покорить миллионы пользователей по всеми миру. Приложение использовало VR-технологию, связывалось с GPS и присылало пользователям уведомления, чтобы напомнить об игре. Эти механики было бы сложно воплотить с помощью кроссплатформенной разработки.
Мессенджер позволяет обмениваться текстовыми сообщениями и файлами, записывать голосовые сообщения, совершать голосовые и видеозвонки. Последние функции работают быстро и без багов благодаря нативной разработке.
Shazam
С помощью Shazam пользователи могут распознавать мелодию или песню. Чтобы найти песню, достаточно напеть мелодию или включить отрывок композиции. Также приложение можно использовать офлайн, если там, где находится пользователь, нет интернета. Чтобы найти мелодию, Shazam должен иметь доступ к микрофону. На кроссплатформенном фреймворке приложение работало бы медленнее.
Spotify
Spotify — один из самых популярных нативных проектов. Это стриминговый сервис, который позволяет прослушивать музыку, подкасты и аудиокниги без скачивания. Так как Spotify — нативное приложение, оно мгновенно связывается с динамиками устройства.
Waze
Это сервис-навигатор, который показывает информацию о пробках, ремонте дорог и ДТП в реальном времени. Пользователь может выбрать оптимальный маршрут до цели. Для получения данных приложение использует GPS. Эту функцию было бы труднее воплотить на кроссплатформенном фреймворке.
Все это — продуманные популярные платформы, которые были написаны с помощью нативного кода. Теперь мы разберем, сколько может стоить такое приложение.
Сколько стоит разработать нативное приложение
Однозначно ответить на этот вопрос нельзя. На цену влияет множество факторов. И самый первый — это идея, пожелания, требования и возможности заказчика.
Перед разработкой нужно учесть, что продукт на нативном коде будет дороже, чем кроссплатформенный. Это связано с тем, что для одного приложения понадобятся две команды программистов с разным набором технологических инструментов.
Стоимость проекта складывается из затрат на анализ проекта, UI/UX дизайн, разработку и тестирование. Чем сложнее и функциональнее будет сервис, тем дольше времени уйдет у команды, и проект будет стоить дороже.
Возьмем минимум — самый простой дизайн и базовые функции. В базовые возможности входят те, без которых приложение не смогло бы работать. Например, авторизация, просмотр экранов, отправка сообщений и т.д. Команда со ставкой около 4000 р. в час соберет такой продукт примерно за 1 000 000 р.
Но нативную разработку бессмысленно заказывать для простых сервисов, которые можно воплотить и на мультиплатформенном фреймворке. Как же изменится цена, если добавить в продукт распознавание QR-кодов, интеграцию с социальными сетями, работу с документами и мультимедиа?
На запуск сложного сервиса уходит около 4-6 месяцев. С учетом этого времени команда за 4000 р/час собирает приложение за 3-4 млн р. Такая стоимость складывается из нескольких моментов.
- Сбор информации
Перед началом работы любая профессиональная команда собирает сведения о проекте и конкурентах, ищет референсы, рассчитывает время и бюджет. Также на этом этапе обсуждается приоритет функций — какие пойдут в MVP, а какие можно оставить для полноценного релиза.
На анализ данных уходит 1-2 недели, эта работа обойдется в 50 000-100 000 р.
- UI/UX дизайн
Дизайнеры продумывают карту пути пользователя. А потом создают вайфреймы с расположением кнопок и текста, подбирают цвета и собирают прототип. После того, как концепция дизайна утверждается с заказчиком, команда создает все экраны приложения.
Работа над дизайном длится около месяца и стоит примерно 300 000-350 000 р.
- Разработка
Самый длительный и трудоемкий этап. Программисты пишут код и пошагово внедряют функции, реализуют интеграцию со сторонними сервисами — например, соцсетями или платежными шлюзами.
В зависимости от сложности и количества функций разработка может занять до 3 месяцев. Ее стоимость — 2-2,5 млн р.
- Тестирование
После внедрения каждой функции тестировщики проверяют ее на наличие багов. Если какая-нибудь кнопка в приложении не нажимается или при переходе на страницу сервис выдает ошибку, тестировщики сообщают об этом программистам, чтобы они исправили эти недочеты.
Тестирование проходит параллельно с разработкой и стоит около 350 000 р.
До того, как команда ознакомится с концепцией проекта, назвать точную цену достаточно сложно. Если вы хотите узнать стоимость нативного приложения, обратитесь к команде — перед началом работы специалисты рассчитают стоимость и сроки.
Так что же, нативная разработка выигрывает?
Смотря для какой цели. Нет плохого типа разработки, все зависит от конкретной задачи. Если вам нужно многофункциональное корпоративное приложение, которое по-максимуму использует все возможности смартфона, ваш выбор — нативная разработка. Если вы ограничены в средствах или во времени, вам не нужен большой набор функций или навороченный дизайн, остановитесь на кроссплатформенном создании проекта.
Сложно определиться, какой тип создания приложений подходит для вашего проекта? Обратитесь в Q-Digital. Мы внимательно изучим ваш проект, поможем выбрать удобный вид разработки и приступим к работе в кратчайшие сроки.