Успешное мобильное приложение: какую технологию выбрать?

Есть задача: создать кроcс-платформенное мобильное решение, которое будет стабильно работать и останется актуальным несколько лет. У грамотного руководителя проекта или тех. директора первым появится вопрос: На чем будем писать продукт? Как определиться со стеком?

Все вокруг говорят: "Flutter, давайте делать на flutter'е" или "Давайте лучше напишем на flutter, сейчас все на нем пишут'.

Но не нужно выбирать технологию просто, потому что она 'модная'. Сначала стоит посмотреть на задачу, а после на потребности и перспективы продукта. И только тогда выбирать стек, который даст результат и позволит легко его поддерживать.

Успешное мобильное приложение: какую технологию выбрать?

Например, если у вас есть в штате frontend разработчики и вы хотите сделать кроcс-платформенное мобильное решение - React Native ваш выбор.

Почему React Native? Насколько он актуален в 2022 году

Около 40% разработчиков в 2021 году использовали React Native для разработки кроссплатформенных приложений, а 58% сообщества разработчиков предпочитают использовать React Native и, вместе с этим, 11,5% разработчиков выбирают React Native из-за его основных библиотек и инструментов.

Статистика пользователей сайта habr.ru
Статистика пользователей сайта habr.ru

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

React Native (также известный как RN) - это популярная платформа мобильных приложений на основе JavaScript, которая позволяет создавать мобильные приложения с собственным интерфейсом для iOS и Android.

React Native был впервые выпущен Facebook в качестве проекта с открытым исходным кодом в 2015 году. Всего за пару лет он стал одним из лучших решений, используемых для мобильной разработки.

Ключевые преимущества React Native

Успешное мобильное приложение: какую технологию выбрать?

Длительная история разработки

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

Огромное комьюнити

Комьюнити React Native - это несомненно огромное сообщество разработчиков, которым можно гордиться. Благодаря этому появляются огромные количества библиотек для разработки, различные UI - инструменты и учебные материалы, которыми они делятся со своими коллегами, значительно упрощая процесс обучения и совершенствования навыков.

Со временем React Native стал ядром «семейства React» — огромной коллекции связанных статей, материалов, библиотек (например, React Router, AWS Amplify и Formik, и это лишь некоторые из них) и фреймворков (таких как Expo), которые образуют пул знаний и инструментов, на которые может опираться любой разработчик, нуждающийся в помощи или совете.

Распространенный язык программирования

Чтобы создать приложение на React Native, программисты используют старый добрый JavaScript. Владение им сегодня является неотъемлемым навыком для большинства разработчиков. Фактически, он знаком более чем 70% разработчиков, поскольку его можно применять для решения других задач по созданию программного обеспечения. Более того, те, кто предпочитает языки со статистической типизацией, могут использовать TypeScript.

Успешное мобильное приложение: какую технологию выбрать?

Свобода выбора для разработчиков

Фреймворк оставляет многое на усмотрение разработчика (или в соответствии с требованиями конкретного проекта). Они могут выбирать способы хранения и управления данными, используемые для создания различных компонентов будущего приложения, методов, языков (JavaScript или TypeScript), библиотеки маршрутизатора или — в глобальном масштабе — будут ли они использовать готовые элементы / библиотеки или же сделают выбор в сторону самописных компонентов.

Функции горячей перезагрузки и быстрого обновления

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

Наличие нативных компонентов

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

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

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

Та же история произошла и с Flutter. Казалось бы, популярность была на уровне с RN, однако и тут были свои оговорки. Быстро начать разработку бы не получилось - необходимы знания Dart, что в являлось непозволительной роскошью на тот момент из-за затрат на его изучение (что уж говорить и про конечный пакет, генерируемый Flutter, который был гораздо больше, чем у RN ввиду того. что в него добавляется виртуальная машина Dart, да и стабильностью на тот момент этот фреймворк не мог похвастаться).

Так я сделал несколько выводов для себя, одним из которых является то, что для бизнеса не так важна новизна и крутизна технологии. Она должна выполнять поставленные перед нею цели и приносить доход. Все остальное необходимо лишь для удобства самого разработчика и ускорения разработки.

Эксперт в мобильной разработки NordClan

Когда нужно выбирать для разработки React Native

Успешное мобильное приложение: какую технологию выбрать?
  • Простые кроссплатформенные приложения.
  • Приложения с простым пользовательским интерфейсом.
  • Быстрые прототипы приложений.
  • Приложения с повторно используемыми элементами.
  • Приложения, работающие с синхронными API.

Популярные приложения, написанные на React Native

  • Instagram
  • Skype
  • UberEats
  • Walmart
  • Tesla
  • Facebook Ads
  • Wix
  • Bloomberg
  • Airbnb
  • SoundCloud
  • Microsoft OneDrive
  • Pinterest
  • Discord
  • Salesforce

Основные недостатки React Native

Упомянув об основных плюсах этого фреймворка, стоит сказать и о некоторых его недостатках, которые могут повлиять на дальнейший выбор.

Сложный пользовательский интерфейс

React Native может не подойти вам, если нужно создать мобильное приложение с различными сложными переходами, анимацией и взаимодействиями. Рендеринг собственного API может не поддерживать некоторые собственные компоненты пользовательского интерфейса, из-за чего пользовательский интерфейс кажется немного не синхронизированным.

Инструменты и плагины

Как упоминалось ранее, комьюнити React Native имеет большую численность, это является как плюсом, так и минусом. Из за большого количества сторонних библиотек, некоторые из них могут оказаться устаревшими.

Производительность

Отсутствие поддержки многопроцессорности и параллельных потоков может снизить производительность при большой нагрузки на приложение.

Заключение

Использование React Native позволяет снизить цену на разработку, однако наша цель - нахождение золотой середины между ценой и качеством при разработке продукта. В этом случае важно учитывать задачи и экономику бизнеса.

Успешное мобильное приложение: какую технологию выбрать?

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

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

66
Начать дискуссию