React Native, Flutter: Кроссплатформенность реальности. Как угнаться за двумя зайцами

22.02.2022
React Native, Flutter: Кроссплатформенность реальности. Как угнаться за двумя зайцами

Шел 2022 год… Человечество было порабощено электронными устройствами… Ну а если серьезно, то львиную долю времени человек так или иначе проводит в смартфоне. Именно при его помощи он узнает необходимую информацию, будь то планы Илона Маска или новые тренды в Instagram. И тенденция использования такова, что пользователь не будет искать необходимое через браузер… Зачем, если можно с Google Play или AppStore скачать необходимое приложение. Нужно перекусить? Скачаем Яндекс.Еда или Delivery и сделаем заказ. Поели, набрали вес? Скачаем приложение Sportmaster, прикупим спортивных вещей и снарядов — и в зал, заниматься.

То есть для пользователя важно иметь «в кармане» быстрый и проверенный сервис для оптимального удовлетворения потребностей и насущных задач. А для компаний, предоставляющих сервисы, важно быть «в кармане» клиента, иначе конкурент обгонит на повороте и в течение месяцев заберет нишу рынка. Таковы реалии. Скорость реакции на изменения бизнес-критична!Глава 1. Кошмар во сне и наявуА вот и начинается самое интересное. Такому сервису можно пойти классическим путем нативной разработки. Берем артель программистов и дизайнеров для Android, они пишут приложение под устройства с этой операционной системой. То же и для «яблочной» платформы. Берем артель программистов и дизайнеров для Windows Mobile, берем фонарики и лопаты, идем откапывать. Кидаем в этих людей мешками денег, расписываем на месяцы календарь, пьем успокоительное и мучительно ждем всего лишь MVP. Прошли сквозь ад разработки, выложили в магазины приложений… Но бизнес-заказчик, product manager и команда сервиса хотят быстрее, больше, дешевле. А конкуренты уже выпустили новое приложение с «убойными» возможностями.Это действительно стоит того, если сервис подразумевает стриминг видео и подобные высокие нагрузки. Или же это финансовый сектор, где разработка прежде всего опирается на нормы безопасности и приватности, поскольку речь идет о денежных средствах и работой с ними. Глава 2. Новая надеждаТеперь же возьмем все вышеописанное и отодвинем в сторону. Потому что есть альтернатива — кроссплатформа. Как следует из названия, кроссплатформенность подразумевает создание приложений, которые могут работать в различных операционных системах. После написания кода приложения его можно развернуть на разных устройствах и платформах, не беспокоясь о проблемах несовместимости. Это универсальный подход, который широко используется для экономии времени и денег на разработку, поскольку огромного количества разработчиков уже не понадобится, ведь разработка будет идти сразу для нескольких платформ. Конечно, решение не абсолютно идеально и в ряде случаев все равно придется применить нативную разработку, но это далеко не всегда обоснованно и эффективно. Это больше похоже на сглаживание углов.  Для такого вида разработки используются специализированные кроссплатформенные фреймворки. Пройдемся подробнее по всем наиболее известным и остановимся на двух наиболее перспективных на сегодняшний день (ReactNative, Flutter). XamarinСтраница проекта — https://dotnet.microsoft.com/en-us/apps/xamarinКроссплатформа на C# и .NET от компании Microsoft. Проект с открытым исходным кодом. Стартовал Xamarin (читается как «зэмарин») в 2011 году. У проекта большое комьюнити, без поддержки и совета не остаться. Xamarin позволяет создавать одну единственную логику приложения с применением C# и .NET сразу для всех трех платформ — Android, iOS, UWP. Xamarin работает поверх фреймворка Mono, который предоставляет opensource-реализацию .NET Framework. Mono может работать поверх разных платформ — Linix, MacOS и т. д. Apache Cordova (PhoneGap)Страница проекта Adobe Cordova — https://cordova.apache.org/Страница проекта PhoneGap — https://blog.phonegap.comЭто опенсорсный фреймворк от Adobe, позволяющий писать кроссплатформенное приложение на JavaScript, HTML5 и CSS3, а все слои ниже как раз призваны обеспечить сборку этого кода в приложение для целевой платформы, будь то Android, iOS, Windows, браузерное приложение или даже Tizen. PhoneGap является больше инфраструктурой, построенной вокруг Cordova, которая дополнительно предоставляет такие опции, как платная поддержка, онлайн-обучение, а также облачные веб-сервисы, позволяющие собрать конечное приложение без необходимости инсталляции на локальном компьютере разработчика. PhoneGap декларируется как более стабильная версия.IonicСтраница проекта — https://ionicframework.com/Ionic — это среда для разработки гибридных кроссплатформенных мобильных приложений, веб-приложений и приложений для настольных компьютеров с использованием HTML, CSS и JavaScript. Позволяет работать, используя единую базу кода. Хотя первоначальная версия была построена на основе AngularJS и Apache Cordova, в текущий момент Ionic представляет собой набор веб-компонентов, который дает возможность пользователю выбирать любую структуру пользовательского интерфейса, такую как AngularJS, ReactJS или VueJS. Это также позволяет использовать компоненты Ionic вообще без структуры пользовательского интерфейса.Глава 3. И победителем становится…А теперь поговорим о двух кроссплатформах, которые в данный момент лидируют на ниве кроссплатформенной разработки, пользуясь огромной популярностью у сообщества — «комьюнити».Flutter Страница проекта — https://flutter.dev/Если уж Microsoft имеет свою кроссплатформу, естественно, что другие IT-гиганты не могут остаться в стороне. Вот и Google создали свою платформу, на своем собственном языке программирования Dart. Уникальной чертой Dart является использование JIT-компиляции, в ходе которой промежуточный код компилируется напрямую в бинарный во время его выполнения. Эта концепция позволяет выполнять горячую перезагрузку для мгновенного обновления интерфейса — без необходимости создания новой сборки. Благодаря этому нет необходимости в дополнительных программных мостах и посредниках для реализации пользовательского интерфейса и бизнес-логики приложения. У языка есть открытый репозиторий на GitHub, где происходит разработка и предлагаются новые фичи. Есть публичный Roadmap, где перечислены планы на ближайшие версии и обозримое будущее.




 

Читать ещё