Нативное приложение: что это и чем отличается от PWA
Нативное приложение — это программа, написанная специально под одну операционную систему: iOS или Android. Её скачивают из App Store или Google Play, поэтому она работает напрямую с системой и железом телефона. Ниже разберём, чем такой подход отличается от кроссплатформенного и прогрессивного веб-приложения (PWA), какие у него плюсы и минусы и в каких случаях бизнесу стоит выбрать именно его.
Что такое нативное приложение
Слово «нативный» означает «родной»: такое приложение пишут на языке и инструментах, которые предлагает сама платформа. Например, для iOS это Swift и SwiftUI в среде Xcode, а для Android — Kotlin и Jetpack Compose в Android Studio. Поэтому нативные приложения получают прямой доступ к камере, геолокации, датчикам, уведомлениям и другим функциям устройства без посредников.
Нативное приложение — это код под одну платформу
Нативное приложение — это, по сути, не одна программа на все устройства, а две отдельные версии с общим дизайном и логикой. Например, нативное приложение для Android не запустится на iPhone, и наоборот. Как следствие, команде приходится поддерживать две кодовые базы, зато каждая версия выглядит и ведёт себя так, как привыкли пользователи этой системы. Как в таком формате устроена разработка приложений для iOS, описано на отдельной странице.
Что значит нативное приложение для пользователя
Для пользователя же разница видна в мелочах. Нативное мобильное приложение быстрее открывается, плавнее прокручивает списки, работает без интернета, если это заложено, и использует привычные жесты и элементы интерфейса системы. Кроме того, оно встраивается в систему: виджеты, Siri или Google Assistant, оплата через Apple Pay или Google Pay, уведомления на экране блокировки.
Нативное мобильное приложение и кроссплатформенное
При этом между нативной разработкой и веб-приложениями есть промежуточный вариант — кроссплатформенные фреймворки вроде Flutter и React Native. Один код собирается в приложения для iOS и Android, однако часть функций всё равно приходится дописывать нативно. В итоге кроссплатформа экономит время на старте, но в сложных проектах нередко уступает нативу по скорости и доступу к новым возможностям системы.
В результате нативные мобильные приложения, кроссплатформенные и PWA отличаются по нескольким параметрам:
| Параметр | Нативное | Кроссплатформенное | PWA |
|---|---|---|---|
| Языки и инструменты | Swift (iOS), Kotlin (Android) | Flutter, React Native и др. | HTML, CSS, JavaScript |
| Кодовая база | Отдельная для каждой ОС | Одна, с нативными вставками | Одна, работает в браузере |
| Где распространяется | App Store, Google Play | App Store, Google Play | Браузер, установка на главный экран |
| Доступ к функциям устройства | Полный | Почти полный, однако через плагины | Ограниченный, особенно в iOS |
| Скорость работы | Максимальная | Близкая к нативной | Зависит от браузера, поэтому ниже |
Примеры нативных приложений
Прежде всего примеры нативных приложений — это системные программы телефона: «Камера», «Карты», «Настройки», «Фото». Их пишут сами Apple и Google на родных инструментах, поэтому они работают быстрее всего и первыми получают новые функции системы.
Остальные нативные приложения, примеры которых есть почти в любой категории, выбирают натив там, где важна скорость и доступ к железу. Так, мобильные банки используют биометрию и защищённое хранилище, навигаторы — постоянную геолокацию, камеры и фоторедакторы — прямой доступ к сенсору, а игры — графические движки системы.
Кроме того, ниже — типичные категории и причины, по которым в них выбирают натив:
| Категория | Что требует нативной разработки |
|---|---|
| Мобильные банки и финансы | Биометрия, защищённое хранилище ключей, высокие требования к безопасности |
| Навигация и такси | Постоянная геолокация в фоне, карты, точное время |
| Фото и видео | Прямой доступ к камере, обработка на устройстве |
| Игры | Графика и производительность, а также работа без сети |
| Фитнес и здоровье | Датчики, интеграция с Apple Health и Health Connect |
Плюсы и минусы: нативные приложения против остальных
Прежде всего главный плюс натива — качество: скорость, плавность и полный доступ к возможностям устройства. С другой стороны, нативное приложение стоит дороже, потому что под iOS и Android нужны отдельные разработчики или хотя бы отдельный код. Кроме того, для публикации нужен аккаунт в каждом магазине, и если ждать проверку некогда, для Android подойдёт готовый аккаунт разработчика Google Play.
В итоге сильные и слабые стороны нативной разработки выглядят так:
| Плюсы | Минусы |
|---|---|
| Максимальная скорость и плавность интерфейса | Две кодовые базы — выше стоимость разработки |
| Полный доступ к камере, датчикам, NFC, фоновым задачам | Дольше выпуск, так как приложений два вместо одного |
| Привычный для пользователя интерфейс системы | Каждое обновление проходит проверку в сторе |
| Работа без интернета | Нужны аккаунты разработчика в каждом магазине |
| Видимость в App Store и Google Play, поиск внутри стора | Однако пользователь должен сначала скачать приложение |
Поиск внутри стора — отдельный канал привлечения, которого у веб-приложения нет, поэтому для многих продуктов это решающий аргумент в пользу натива.
Что такое PWA (прогрессивное приложение)
PWA, то есть progressive web app, — это сайт, который ведёт себя как приложение. Его открывают в браузере, а затем при желании добавляют на главный экран: появляется иконка, приложение запускается в отдельном окне без адресной строки и может работать офлайн за счёт кеша.
В свою очередь, главное преимущество PWA — одна кодовая база для всех устройств и отсутствие проверки в сторе: обновления выходят сразу. Однако доступ к функциям телефона у веб-приложения ограничен, а в iOS ограничений больше, чем в Android. Например, на iPhone веб-приложение устанавливается только вручную через меню «Поделиться» в Safari, а push-уведомления доступны лишь для приложений, добавленных на главный экран, начиная с iOS 16.4.
Кроме того, PWA можно опубликовать в Google Play, обернув его в Trusted Web Activity. В App Store простая обёртка над сайтом, напротив, рискует не пройти проверку: правила Apple требуют от приложения функциональности сверх обычного сайта. Поэтому, если продукт со временем переедет из браузера в магазины, нативные мобильные приложения придётся публиковать со своих аккаунтов, и подобрать аккаунты разработчика для публикации приложений под каждый стор можно в одном месте.
Нативное или PWA: сравнительная таблица
Если сравнивать только два варианта, нативное приложение и PWA, различия сводятся к нескольким пунктам. Поэтому для быстрого решения удобно держать их перед глазами:
| Критерий | Нативное приложение | PWA |
|---|---|---|
| Установка | Из App Store или Google Play | Из браузера, без магазина |
| Обновления | Только через проверку в сторе | Сразу, так как это обновление сайта |
| Доступ к функциям устройства | Полный | Частичный |
| Push-уведомления | Да | Да, однако в iOS только после добавления на экран |
| Работа офлайн | Да | Частично, то есть через кеш |
| Стоимость разработки | Выше | Ниже |
| Привлечение пользователей | Поиск в сторе + внешние каналы | Поиск Google и внешние каналы |
Если пользователи будут открывать продукт раз в месяц, PWA обычно достаточно. Когда же приложение должно работать каждый день, в фоне и с железом телефона, выбор почти всегда за нативом.
Что выбрать бизнесу
В целом выбор зависит от того, что важнее: скорость запуска и бюджет или качество и возможности. Например, для проверки гипотезы часто хватает PWA или кроссплатформы, тогда как для продукта, на котором строится бизнес, лучше натив.
Если решение принято в пользу натива, разработку обычно ведут параллельно под две платформы, а запуск планируют одновременно в обоих магазинах. При этом начинать можно и с одной системы — той, где больше ваших пользователей, — а вторую добавлять после первых результатов.
Наконец, ориентир для выбора по типу проекта:
| Ситуация | Что выбрать |
|---|---|
| Проверка идеи, ограниченный бюджет | PWA или кроссплатформа, так как это дешевле |
| Контентный сервис, редкое использование | PWA |
| Ежедневное использование, уведомления, офлайн | Нативное приложение |
| Банк, финансы, медицина, работа с датчиками | Нативное приложение |
| Нужен поиск в App Store и Google Play | Нативное или, например, кроссплатформенное |
FAQ
Нативные приложения — это какие приложения?
Это приложения, написанные под конкретную систему на её родных языках, например Swift для iOS и Kotlin для Android. Их устанавливают из App Store или Google Play, поэтому они работают напрямую с системой телефона.
Нативное приложение — что это простыми словами?
То есть это «родное» для телефона приложение, сделанное по правилам и инструментам самой платформы. Поэтому оно работает быстрее веб-версии и может пользоваться всеми функциями устройства.
Что такое нативные приложения в отличие от веб-приложений?
Нативные приложения скачивают из магазина и запускают как отдельную программу, тогда как веб-приложение открывается в браузере. При этом у натива полный доступ к устройству, а у веб-приложения — только то, что разрешает браузер.
Что значит нативный в программировании?
В программировании «нативный», то есть родной, означает код, написанный для конкретной платформы и выполняемый ею напрямую, без промежуточного слоя вроде браузера. Например, нативное приложение андроид пишут на Kotlin или Java под Android SDK. Подробнее о том, как проходит разработка Android-приложений, рассказано отдельно.
Блог