Ещё один эксперимент: С++

В мобильных приложениях, сделанных на Adobe Flash / Animate больше всего расстраивала плохая плавность. Устройства на тот момент были не очень мощные, и это сказывалось на плавности работы приложений, выполняющихся в оболочке AIR (именно она превращала флешки в полноценные приложения).

Тогда мы решились ещё на один эксперимент: C++ и Marmalade SDK. Это дало невероятную скорость работы приложения: разработанное нами приложение (читалка книг) быстро и плавно работало даже на слабых китайских андроидах.

Более того, оно работало даже быстрее, чем нативные приложения! Android-приложение запускается в виртуальной среде Java, а наши приложения были скомпилированы непосредственно для ядра системы (Android NDK).

Сложность программирования на C++ можно оценить по этой картинке:

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

Кроме того, Marmalade SDK также имела довольно скромный арсенал готовых элементов интерфейса и была ориентирована прежде всего на портирование игр. После всех этих экспериментов мы радостно переключились на нативную разработку и работали с нативными платформами 3 года.

А потом наступил кризис

Применительно к услугами разработки ПО это означает:

  • Бюджеты стали скромнее. Огромное количество бизнесов просто закрылось. Те, что выжили стали более ограниченными в расходах на разработку. По сути, заказчик хотел всё тоже самое, но платить мог меньше;
  • Программисты стали жирнее. Значительная часть программистов уехала на запад или переключилась на удалённую работу с западными заказчиками. Это увеличило затраты на разработку в 1,5-2 раза.

React Native снизил себестоимость

На этом видео показано одно из наших приложений для интернет-магазина продуктов. Его мы также сделали на React Native для двух платформ (iOS, Android). При этом, нам удалось уложиться в очень ограниченный бюджет заказчика.

В 2016 году мы решили снова изучить вопрос кроссплатформенной разработки и остановились на React Native от Facebook. На тот момент технологии исполнилось чуть больше года. Однако, к разработке кроме огромной материнской компании очень быстро подключились такие гиганты, как Wix, AirBnB, Microsoft, Uber и стали добавлять в сообщество различные компоненты высокого качества такие, как компоненты навигации, карты с маркерами, библиотеку для векторной анимации и многое другое.

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

Плюсы технологии

  • Дешевле разработка. Код, в основном, пишется один раз для двух платформ. В некоторых случаях для второй платформы удаётся переиспользовать до 90% кода!
  • Дешевле управление. Менеджерить требуется тоже сильно меньше: если раньше нужно было два раза пройти один и тот же цикл разработки-тестирования по каждой функции, то теперь это требуется проделать только один раз;
  • Дешевле и меньше команда. Все мобильные разработчики теперь пишут на одном языке и легко взаимозаменяемы. В случае с нативной разработкой приходится постоянно думать, чтобы разработчики для обеих платформ были постоянно загружены и оплачивать время их «простоя». Разработчиков для Android нельзя было перекинуть на разработку под iOS, т.к. это совершенно разные языки и подходы к разработке;
  • Меньше срок. При нативной разработке приложения для двух платформ можно разрабатывать одновременно, но тогда все проблемы придётся решать два раза независимо и не удастся использовать опыт, полученный на одной из платформ. Поэтому, обычно сначала запускают приложение на одной платформе, а потом на второй. Это сильно увеличивает общий срок запуска проекта;
  • Не требуется компьютер от Apple. Есть такая проблема у разработчиков iOS-приложений: сборка не работает без мака. Приличный мак для разработки стоит в 2,5 раза дороже аналогичного PC-совместимого компьютера и это сильно портит жизнь разработчикам. Для React Native можно использовать любую операционную систему: Windows, Linux, MacOS. Удобнее, конечно, MacOS, но теперь это не обязательное требование.

Минусы / ограничения

Конечно, это не волшебная технология, которая позволяет делать быстро и дёшево любые приложения. Есть и свои ограничения:

  • На RN можно делать дополненную реальность и 360-градусное видео (по сути это видео, натянутое на 3D-сферу). Для этого уже есть свои «обёртки» на реакте, однако лучше такие узкоспециализированные приложения делать нативными.
  • Не стоит делать на реакте сложные 3D-игры, её архитектура для этого не предназначена;
  • Очень нестандартные элементы UI. Почти все элементы управления на React Native являются «обёрткой» вокруг стандартных. Например

Все остальные типы приложений делаются на React Native без каких-либо «подводных камней» и ограничений.

Какие приложения можно делать на React Native?

Все приложения в нашем портфолио, начиная с 2016 года сделаны на React Native. Приложения совершенно разные:

  • интернет-магазины;
  • специализированные чаты;
  • личные кабинеты;
  • приложения с оплатой пластиковой картой;
  • приложения для подписок на новости;
  • приложения знакомств;
  • … и многое другое. 


Наши приложения для стартапов

Авиабилеты дёшево

агрегатор билетов

Найду собаку

приложение собаковода

Знакомства

быстрые знакомства

В следующей статье мы расскажем, как работает React Native изнутри и немного истории создания этой технологии «изнутри» компании Facebook.

Понравилась статья? Поделись с друзьями!

You might also like