Что такое кроссплатформенная разработка

Нативная и кроссплатформенная разработка: как сделать правильный выбор в 2021

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

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

Представим себе Сергея, у которого есть автопарк. Сергей хочет получать больше заказов и поэтому решается на разработку собственного приложения для вызова такси. Разумеется, он хочет охватить больше клиентов: поэтому ему нужно программное обеспечение как для IOS, так и для Android. Сергей понимает, что это будет два разных приложения, но что-то слышал о том, что можно сделать одно, которое будет работать на всех смартфонах.

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

Логично было бы предположить, что кроссплатформенная разработка должна стоить в два раза меньше, чем нативная, ведь разрабатывается одно приложение вместо двух. Но это не так и вот почему. Несмотря на то, что при кроссплатформенной разработке у продукта будет одинаковая бизнес-логика и навигация, экраны для каждой системы будут отличаться. Таким образом, для IOS и Android отрисовываются и реализуются собственные экраны приложения. Если говорить о цене, то стоимость кроссплатформенной разработки в среднем на 70% ниже, чем нативная.

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

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

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

Наш Сергей немного запутался, попробуем до бавит ь конкретики .

Кроссплатформенная разработка не подходит для серьезных бизнес-проектов. Такое решение оптимально при написании простого приложения, в котором мало экранов и много общих элементов для разных платформ. Например, данный тип разработки выгоден при написании прототипа приложения под несколько платформ в сжатые сроки, для игрового или тестового приложения.

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

Теперь Сергею понятно, зачем нужна кроссплатформенная и нативная разработка, он принял решение для своего проекта, но все равно еще все обсудит с профессионалами.

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

Источник

Кроссплатформенная разработка мобильных приложений в 2020 году

Я – Сергей Якимов, CTO Omega-R, международной компании по разработке и интеграции IT-решений. На базе многолетнего опыта в сфере информационных технологий и экспертизы компании хочу поделиться своим видением настоящего и ближайшего будущего кроссплатформенной разработки мобильных приложений.

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

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

Согласно исследованию Digital 2020 Reports, подготовленному компаниями We Are Social Inc. и Hootsuite Inc., число пользователей интернета по всему миру увеличивается на 9 человек в секунду. Это означает, что каждый день к мировому онлайн-сообществу присоединяется более 800 тысяч человек, которые пользуются настольными или мобильными устройствами. Интересно, что последний вариант становится все более популярным с каждым месяцем.

Проникновение смартфонов в повседневную жизнь растет во всем мире. Ожидается, что к 2024 году три из четырех используемых телефонов будут смартфонами. Согласно статистике StatCounter, доля пользователей настольных устройств снизилась до 45,66%.

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

Самым простым объяснением такого состояния событий является изменение нашего образа жизни. Мы проводим в интернете больше времени, чем когда-либо прежде. Почти каждый имеет доступ к смартфону или планшету. Учитывая то, что среднестатистический пользователь в среднем проводит в сети почти 7 часов в день, неудивительно, что более половины этого трафика поступает с мобильных устройств.

Это, в свою очередь, подталкивает к росту рынок мобильных приложений. Результатом предпочтения мобильных приложений являются довольно внушительные цифры. Согласно отчету Statista за прошлый год, мировые доходы от мобильных приложений в 2019 году составили 461 млрд долл., а к 2023 году платные загрузки и реклама в приложениях, как предполагается, принесут более 935 млрд долл. дохода.

Выбор пути мобильной разработки

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

Одним из первых шагов на пути к цифровому успеху является решение о мобильной операционной системе – это, кстати, было не так просто десять лет назад, когда Android, iOS, Microsoft, RIM и Symbian были вполне жизнеспособными вариантами.

Сегодня выбор гораздо проще, поскольку единственными крупными игроками остаются Android и iOS, которые вместе составляют около 99% от общей доли рынка мобильных операционных систем. Согласно различным статистическим данным, Android выигрывает по количеству пользователей, но нет недостатка и в сторонниках iOS, доля которого на рынке составляет 25,75%. В то время как Google Play Store может похвастаться большим количеством приложений (2,5 млн), Apple App Store содержит более 1.8 млн приложений. Одного этого факта достаточно, чтобы показать, что ни одну из двух платформ не следует упускать из виду.

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

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

Отдельные нативные приложения для Android и iOS

Нативное решение, как следует из названия, предполагает разработку приложения на родном для данной платформы языке программирования: Java или Kotlin для Android, Objective-C или Swift для iOS. Будучи глубоко ориентированной на операционную систему, разработка нативных приложений имеет свои достоинства и недостатки. С одной стороны, нативное решение обеспечивает доступ ко всем функциям данной ОС, позволяет неограниченно настраивать интерфейс и предотвращает любые проблемы с производительностью. С другой стороны, если вы хотите охватить оба типа пользователей, вам придется создать два отдельных приложения, которые требуют больше времени, денег и усилий.

Прогрессивное веб-приложение

Прогрессивное веб-приложение – технология в веб-разработке, которая добавляет сайтам возможности приложений для мобильных устройств и трансформирует сайт в приложение. На выходе получаем гибрид сайта и приложения для мобильных устройств. Однако, как любой другой вариант, прогрессивные веб-приложения небезупречны, так как они потребляют больше энергии батареи и не могут получить доступ ко всем функциям данного устройства, например, к календарю, камере, контактам и так далее. Кроме этого, теряется возможность перекрестного входа в веб-приложение с помощью приложения Facebook, Инстаграм, Вконтакте или т.д. Несмотря на то что веб-приложение не требует установки из Google Play Store или Apple App Store, последние выполняют функцию крайне удобных библиотек для пользователей.

Одно кроссплатформенное приложение для двух систем

Кроссплатформенность – это способность ПО (в нашем случае мобильных приложений) работать на нескольких платформах.

Кроссплатформенная мобильная разработка позволяет охватить две операционные системы, iOS и Android, одним кодом. Она не предполагает написания кода на родном языке программирования, однако обеспечивает почти нативный опыт благодаря интерфейсу визуализации с использованием собственных элементов управления.

На текущий момент многие компании используют кроссплатформенные решения, кто-то уже всерьез подумывает перейти на них в ближайшем будущем. Это не только вендоры самих решений, как, например, Facebook со своим React Native, на котором работают приложения Facebook и Instagram, но и другие крупные игроки рынка, у которых имеются продукты, например, на Flutter – Alibaba, Philips Hue, Hamilton, Tencent, Grab, Groupon и другие.

Существует множество статей, где подробно анализируются все преимущества кроссплатформенных приложений. Однако плюсы и минусы стоит рассматривать на платформе, которая имеет все шансы стать в 2020 году самой популярной среди разработчиков – Flutter.

Flutter

Flutter – SDK от компании Google с открытым исходным кодом для создания кроссплатформенных мобильных приложений, который предоставляет пользователям как Android, так и iOS по-настоящему нативный дизайн и опыт. Данная платформа разработки уже на старте показала внушительный рост по сравнению с React Native. Анонсированный на конференции Google I/O 2017 и выпущенный в 2018 году, Flutter остается все еще новичком на рынке платформ для создания кроссплатформенных приложений. С более чем 87 700 звездами в GitHub, что выше результата React Native, и подавляющим большинством разработчиков, называющих его одним из трех самых любимых фреймворков в обзоре Stack Overflow’s annual Developer Survey 2019, Flutter, несомненно, является силой, с которой следует считаться.

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

Рассмотрим плюсы и минусы Flutter как платформы для разработки продукта:

Плюсы

Минусы

Кроссплатформенные приложения на Flutter разрабатываются аналогично нативным в общепринятых IDE – Android Studio и XCode. Как дополнение, разработчикам доступен hot-reload кода, что ускоряет запуск приложения во время разработки. Кроме этого, процесс публикации ничем не отличается от нативных – собранные дистрибутивы подписываются и загружаются в магазины приложений.

Польза для бизнеса

В бизнесе решающую роль зачастую играет метрика TTM (time-to-market). Быть впереди и внедрять новые функции в свой продукт быстрее конкурентов сразу на обеих платформах – об этом с самого начала задумывается любая компания-лидер. Кроссплатформенные фреймворки позволяют это достигать и, как очевидный бонус, получать снижение затрат на разработку на каждом этапе. По нашим подсчетам – разработка на Flutter позволяет снижать общую стоимость разработки продукта на 25-30%.

Прогноз, перспективы на ближайшие 5 лет

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

Google разрабатывает новую ОС Fuchsia, в том числе для мобильных устройств. Flutter заявлен как UI toolkit в этой ОС. В ближайшем будущем Fuchsia может заменить ОС Android, и, несмотря на то что в Fuchsia в данный момент все же добавляется возможность запускать нативные приложения под Android, стоит учитывать эту тенденцию при планировании разработки и выхода на рынок со своими мобильными приложениями.

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

Источник

Мобильная разработка: Cross-platform или Native

Всем привет! Я Игорь Веденеев, руководитель мобильной разработки в AGIMA. Поговорим немного о нативной и кроссплатформенной разработке. Раньше я по большей части скептически относился ко второй: не устраивало качество конечных приложений в первую очередь. Однако за последний год темпы развития кроссплатформенных фреймворков уже не в первый раз заставляют пересмотреть свое мнение насчет такого подхода. Поэтому давайте еще раз сравним самые популярные кроссплатформенные решения и нативную разработку.

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

На всякий случай

Если вы не знаете, что такое нативная и кроссплатформенная разработка:

нативная разработка (2 независимых приложения на языках Swift и Kotlin);

кроссплатформенная разработка — общая кодовая база для iOS и Android (с применением фреймворков Flutter или React Native (далее RN)).

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

Нативная разработка

Нативная разработка — это классический способ создания приложения для iOS и Android. Ведется она с использованием инструментов и языков программирования, предложенных вендорами — Apple и Google. Языки в данном случае — Swift (iOS) и Kotlin (Android), а инструментов для профилирования и отладки в нативной разработке очень много.

Однако мы должны понимать, что в данном случае мы делаем два независимых приложения. Разрабатываются они параллельно. Каждое приложение может реализовать фичу по-своему, и у каждого могут быть свои баги. И самое главное, нативная разработка никуда не денется: пока существуют iOS и Android, Apple и Google будут предоставлять инструментарий для создания приложений.

Нативная разработка позволяет создать самое качественное и функциональное приложение, но взамен придется разрабатывать и отлаживать всё 2 раза и следить, чтобы приложения соответствовали друг другу функционально.

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

Плюсы и минусы нативной разработки

2 независимых приложения

Стоимость разработки и отладки

Меньше потребляемых ресурсов*

Богатый инструментарий для разработки

Широкий рынок разработчиков

Кроссплатформенная разработка

Кроссплатформенная разработка подразумевает, что мы используем один и тот же код и на iOS, и на Android. Вообще говоря, это всё такое же нативное приложение, но, запустив его, мы сразу проваливаемся в мир Flutter или RN, и всё происходит уже там. Стоит отметить, что разработка на Flutter/RN идет быстрее. Причем не только за счет того, что мы делаем 1 приложение вместо 2-х, а еще и за счет концепций создания приложений, в частности UI.

Но, увы, не всё так хорошо: кроссплатформа имеет ряд проблем, на которые стоит обратить внимание, прежде чем выбирать этот подход для своего приложения. React Native и Flutter всё же сторонние Open Source-решения. В них могут встречаться баги. Новые фишки iOS и Android там будут появляться не так быстро, как при нативных решениях. Может прекратиться поддержка, в конце концов.

Также, довольно часто придется полагаться на сторонние Open Source-библиотеки, что тоже несет в себе риски потенциальных проблем: например, совместимость версии Flutter/RN. Не исключен вариант, что нужной библиотеки не существует в природе, и тогда придется реализовывать всё с нуля самому. Также нельзя добавить расширения для iOS-приложений или, например, приложение на часы. Это касается и Flutter, и RN.

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

Если в приложении много логики и есть необходимость сделать ее многопоточной, это тоже будет проблемой и во Flutter, и в RN. Это возможно, но, скажем, это не то, для чего были предназначены эти фреймворки. Также каждый из фреймворков имеет достаточно тяжелую исполнительную среду, что делает кроссплатформенные приложения более ресурсоемкими и требовательными к процессору/оперативке телефона.

Если приложение подразумевает обширное использование аппаратных возможностей телефона, взаимодействия с ОС, то я бы тоже не рекомендовал использовать кроссплатформу — есть риск, что в какой-то момент или код станет очень запутанным, или мы упремся в ограничения одной из платформ или самого фреймворка. Еще стоит учесть, что нам стоит использовать платформенно нейтральный UI, чтобы не создавать потенциальных проблем с различным поведением на платформах и в принципе не снижать на этом скорость разработки.

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

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

Если проще, то кроссплатформа позволяет разработать приложение в кратчайшие сроки. Лучше всего подходит для приложений-витрин услуг или товаров среднего/малого объема без обширного использования платформенных возможностей. То есть снять фотку на аватар или отсканировать QR-код не составит больших проблем, но, если вы делаете приложение вокруг камеры, лучше рассмотреть нативную разработку.

Плюсы и минусы кроссплатформенной разработки

Источник

Кроссплатформенная разработка мобильных приложений – плюсы и минусы

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

Что такое кроссплатформенная разработка. Смотреть фото Что такое кроссплатформенная разработка. Смотреть картинку Что такое кроссплатформенная разработка. Картинка про Что такое кроссплатформенная разработка. Фото Что такое кроссплатформенная разработка

Что такое кроссплатформенность?

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

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

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

Плюсы и минусы нативной разработки

Как уже упоминалось в введении, глобально мобильные приложения можно разделить на две категории: классические (далее будем называть их нативными) и кроссплатформенными, и я считаю, что перед погружением в мир кроссплатформенной разработки мобильных приложений необходимо подробней поговорить о нативных приложениях.

В мире мобильных устройств доминируют две платформы: iOS и Android. Для разработки приложений для этих систем компании Apple и Google выпустили соответствующие SDK. Приложения под Android разрабатываются с помощью Java или Kotlin в Android Studio, под iOS с помощью Swift в Xcode.

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

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

Из-за особенностей внутренней работы кроссплатформенных фреймворков они так или иначе замедляют приложения, позволяя нативным приложениям вырвать победу в скорости работы приложений. Также фреймворки для кроссплатформенной разработки мобильных приложений, в отличие от нативной, не имеют полного доступа к API системы, заставляя разработчиков либо писать нативный код, либо искать библиотеку для решения их проблемы.

Подробнее о кроссплатформенных приложениях: особенности, преимущества, недостатки

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

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

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

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

На чем разрабатывают кроссплатформенные приложения: инструменты и платформы

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

Начать стоит с React Native, кроссплатформенного фреймворка от Facebook, построенного на основе сверхпопулярной JS библиотеки, React Native делает переход от web-разработки к мобильной максимально простым. Технология Fast Refresh позволяет практически мгновенно отображать изменения в коде на устройстве, тем самым сильно ускоряя разработку приложения. Так как фреймворк основан на React Js разработка на нем осуществляется с помощью JavaScript, позволяя front-end разработчикам быстро переключиться на разработку кроссплатформенных мобильных приложений.

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

Flutter — относительно молодой фреймворк, выпущенный в 2017 году, но, несмотря на небольшой возраст, он заработал большую популярность в сообществе разработчиков. Flutter постоянно развивается. Изначально представленный как фреймворк для кроссплатформенной мобильной разработки, он уже перерос это определение. Сейчас на основе набора средств Flutter можно разрабатывать мобильные, web и desktop приложения. Hot Reload по аналогии с Fast Refresh в React Native, позволяет мгновенно увидеть изменение на экране устройства, а большое количество библиотек практически полностью закрывает собой ограниченный доступ к API системы (хотя в выборе библиотек нужно быть осторожным, так как некоторые из них могут не поддерживать чать платформ) и дает возможность свести написание нативного кода к минимуму или отказаться от него совсем.

Разработка на Flutter происходит на языке Dart, который также разрабатывается Google, что в свою очередь позволяет добавлять в язык новые возможности специально для Flutter разработчиков. Так недавно из беты вышла функция null safety, которая при включении ее в проект обвязывает разработчиков специально помечать переменные, значение которых может быть null, и добавлять проверки на такие случаи, что в итоге приводит к более высокой стабильности приложения. Dart также прост для изучения для нативных разработчиков, что дает им возможность при желании быстро переключиться на кроссплатформенную разработку.

Кейс Doubletapp

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

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

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

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

Выводы

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *