Почему ваше приложение лучше, чем веб-сайт

Этим утром я начал свой день, как всегда. Просыпайтесь, варите кофе, садитесь на диван и просматривайте новости на iPad.

В историю, которую я читал, было встроено видео, поэтому я нажал кнопку воспроизведения, но был раздражен, увидев, что YouTube открывался через браузер в приложении. Сразу стал искать кнопку «Открыть в приложении», но увы; не появилось. В сочетании с 15-секундной рекламой без пропусков… забудьте об этом.

Это крошечное неудобство заставило меня задуматься: зачем мне все равно? Почему кого-то это волнует? Почему Facebook, Twitter, Google и все остальные компании поддерживают мобильные приложения, если их веб-приложения работают отлично?

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

Это возвращает нас к основному вопросу: что означает «родной»? Действительно ли React Native «родной»? Это было одним из основных моментов моего замешательства при изучении React Native, и я считаю, что понимание этого является ключом к действительно знанию сильных и слабых сторон платформы.

Определите родной.

Чтобы помочь нам понять, насколько «родным» является React Native, нам нужно определить некоторые термины. Обычно мы относим приложения к одной из этих трех категорий:

Собственный: запрограммирован специально для работы в целевой операционной системе и работает на устройстве без дополнительных программных уровней.

Интернет: полагается в первую очередь на технологию браузера - просто показывает веб-страницы.

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

Примечание. Многие люди используют термин «родное» для обозначения любого устанавливаемого приложения; все, что не является веб-сайтом. По этой причине люди иногда называют приложения Native как Pure Native или Bare Native.

Что такое РН?

React Native - это платформа для создания гибридных приложений.

Вместо того, чтобы писать наше приложение на двух или трех разных языках, мы пишем все на JavaScript. Затем мы объединяем весь JavaScript, объединяем наше приложение и запускаем его на устройстве. Чтобы сделать широкое упрощение, фреймворк React Native отвечает за:

  • Запуск JavaScript
  • Обмен данными между средой выполнения JavaScript и основным потоком
  • Связь с собственными API
  • Создание собственных элементов пользовательского интерфейса

Последний пункт - это основная причина того, почему приложения React Native лучше веб-приложений: React Native создает нативные представления, которые естественно быстрые и отзывчивые, как они. re не мешает какой-то дополнительный уровень программного обеспечения. Несмотря на то, что мы пишем бизнес-логику и создаем пользовательский интерфейс с (относительно) медленным JavaScript, сам пользовательский интерфейс на 100% является родным.

В случае с мобильными веб-приложениями и простыми веб-сайтами, доступ к которым осуществляется через браузер, существует только одно собственное представление: фактическое окно браузера. Все, что внутри, отрисовывается с использованием HTML, CSS и JavaScript, что гораздо менее производительно, чем собственные представления. По этой причине Apple постоянно выступала против этого стиля приложений, часто отвергая их за нарушение пункта Минимальная функциональность в Руководстве по обзору приложений в App Store:

4.2 Минимальная функциональность
Ваше приложение должно включать в себя функции, контент и пользовательский интерфейс , которые расширяют его возможности по сравнению с повторно упакованным веб-сайтом. Если ваше приложение не является особенно полезным, уникальным или «похожим на приложение», оно не принадлежит App Store.

А как насчет PWA?

P rogressive W eb A pp часто рекламируется как простой способ создания устанавливаемых мобильных приложений. PWA - это веб-сайт, который включает дополнительную информацию, позволяющую мобильному устройству установить ее. После установки приложение может быть открыто и работать в многозадачном режиме, как настоящее приложение, отправлять push-уведомления и даже работать в автономном режиме.

Многим это кажется быстрой и простой альтернативой React Native, особенно если у вас уже есть хорошо разработанный продукт для мобильных веб-сайтов. Однако тот факт, что у приложения есть значок на главном экране, не устраняет ни одной из вышеупомянутых слабостей веб-приложений. В первую очередь: Они не могут создавать собственные представления. У них также сильно ограничен доступ к собственным API. По этой причине я считаю, что PWA в основном не отличаются от веб-приложений.

Так это родной?

React Native занимает тонкую середину между Native и Web. Это не простая веб-оболочка, но и определенно не приложение Pure Native.

По общему мнению, хорошо созданное приложение React Native предлагает опыт, неотличимый от приложения Pure Native, при этом вдвое снижая стоимость разработки и сложность.

PWA или веб-приложение можно рассматривать как отличную альтернативу RN с точки зрения чистой функциональности, но почему это должно быть нашей единственной заботой? Пользователи знают, когда приложение создано с «достаточно хорошим» отношением. Они могут не жаловаться напрямую и, конечно же, не обладают техническими знаниями, чтобы знать, на чем построено ваше приложение, но они заметят. React Native - это сокращение разрыва между эффективностью бизнеса и отличным пользовательским интерфейсом, поэтому наши компромиссы сведены к минимуму.

Очевидно, что между приложением React Native и Pure Native есть технические различия, но с точки зрения пользователя: Они часто совпадают. Несмотря на то, что React Native сопряжен со своими проблемами, возможность создать собственный интерфейс одновременно для многих платформ не имеет себе равных.