ОСНОВНЫЕ ПРОБЛЕМЫ КРОССПЛАТФОРМЕННОЙ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА БАЗЕ ANDROID И IOS С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКА FLUTTER

Опубликовано в журнале: Научный журнал «Интернаука» № 27(297)
Рубрика журнала: 3. Информационные технологии
DOI статьи: 10.32743/26870142.2023.27.297.362014
Библиографическое описание
Пилипенко В.В. ОСНОВНЫЕ ПРОБЛЕМЫ КРОССПЛАТФОРМЕННОЙ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА БАЗЕ ANDROID И IOS С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКА FLUTTER // Интернаука: электрон. научн. журн. 2023. № 27(297). URL: https://internauka.org/journal/science/internauka/297 (дата обращения: 01.05.2024). DOI:10.32743/26870142.2023.27.297.362014

ОСНОВНЫЕ ПРОБЛЕМЫ КРОССПЛАТФОРМЕННОЙ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА БАЗЕ ANDROID И IOS С ИСПОЛЬЗОВАНИЕМ ФРЕЙМВОРКА FLUTTER

Пилипенко Владислав Вадимович

студент, Белгородский государственный национальный исследовательский университет,

РФ, г. Белгород

Килев Даниил Олегович

студент, Белгородский государственный национальный исследовательский университет,

РФ, гБелгород

 

THE MAIN PROBLEMS OF CROSS-PLATFORM DEVELOPMENT OF MOBILE APPLICATIONS BASED ON ANDROID AND IOS USING FLUTTER FRAMEWORK

Vladislav Pilipenko

Student, Belgorod State University,

Russia, Belgorod

Daniil Kilev

Student, Belgorod State University,

Russia, Belgorod

 

АННОТАЦИЯ

В данной статье рассматривается фреймворк Flutter и соответствующий ему язык программирования Dart с точки зрения разработчика мобильных приложений, какие основные проблемы возникают в процессе кроссплатформенной разработки мобильных приложений на базе Android/iOS с использованием фреймворка Flutter, а также возможные способы решения данных проблем. Для достижения поставленных в научной статье целей были использованы методы анализа основ взаимодействия разработчика со средой и языком программирования, обобщение личного и коллективного опыта, в том числе из числа экспертов, разработки кроссплатформенной разработки на базе Dart/Flutter. Выводы, сделанные на основе теоретических и эмпирических методов, служат основанием для формирования траектории развития кроссплатформинговых инструментов в современных условиях программирования.

ABSTRACT

This article discusses the Flutter framework and the corresponding Dart programming language from the point of view of a mobile application developer, what are the main problems that arise in the process of cross-platform development of mobile applications based on Android /iOS using the Flutter framework, as well as possible ways to solve these problems. To achieve the goals set in the scientific article, methods were used to analyze the basics of developer interaction with the environment and programming language, generalization of personal and collective experience in developing cross-platform development based on Dart/Flutter. The conclusions drawn on the basis of theoretical and empirical methods serve as the basis for the formation of the trajectory of development of cross-platforming tools in modern programming conditions.

 

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

Keywords: framework, problems, cross-platform development, mobile applications, Android, iOS.

 

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

Первыми инструментами в рамках кроссплатформенной разработки (не только мобильных приложений) стали такие фреймворки как Xamarin на базе языка программирования C#, Kivy на Python, Electron на JavaScript, однако, стоит добавить, что на этапе своего возникновения они не пользовались большой популярностью. Основной прорыв в области кроссплатформинга стало возникновение React Native на языке JavaScript в 2015 году и последующее возникновение в 2017 году фреймворка Flutter на языке программирования Dart, который и будет рассматриваться в рамках данной статьи.

Интересно отметить, что быстрорастущая тенденция к кроссплатформенной разработке со стороны издателя, а также значительно меньшие требования к разработчику-программисту, не стали являться преобладающим фактором повсеместного перехода кроссплатформинговую разработку. На основании опроса на портале Хабр, более 60% из опрошенных программистов предпочитают нативные средства в рамках разработки программного обеспечения, 27% предпочитают разработку на Flutter, 12% – на React Native.[1]

 Актуальность данной статьи обусловлена необходимостью объяснения данного явления с точки зрений первопричин отказа от кроссплатформенной разработки в пользу нативной разработки мобильных приложений на базе iOS и Android с использование фреймворка Flutter.

Фреймворк Flutter на данный момент представляет собой комплект средств разработки с открытым исходным кодом для создания мобильных приложений под Android и iOS, веб-приложений, а также настольных приложений под Windows, macOS и Linux с использованием языка программирования Dart. Фреймворк создан и поддерживается компанией Google[1]. В качестве графического движка фреймворк использует технологию Skia. Язык Dart представляет собой совокупность TypeScript, JavaScript и C-подобных языков программирования.

Архитектуру Flutter составляет взаимосвязанная система из сервисов и классов (как правило, это анимации и отрисовки), слой рендеринга (верстка и средства ее реализации через объекты фреймворка), библиотеки Material и Cupertino (которые и имитируют функциональные дизайны по iOS и Android), и основной элемент – виджеты, через которые реализуется реактивность приложения на мобильных устройствах (рисунок 1).

 

Рисунок 1. Архитектура фреймворка Flutter

 

Рендеринг, как уже говорилось ранее, производится за счет графического движка Skia. Однако, в отличии от Android и iOS, где программный код на Java (для Android) и Objective C (для iOS) взаимодействует с системой для отображения UI. В результате приложение потребляет много ресурсов, особенно если логика приложения и UI часто взаимодействуют.

Виджеты во фреймворке делятся на два основных класса в зависимости от изменяемости их состояния: stateless – если свойства виджета не изменяются под воздействием различных факторов, stateful – если такие изменения происходят соответственно. Помимо этого, виджеты также различаются по принципу наличия особого функционала (рисунок 2):

  • Базовые виджеты
  • Специфичные виджеты
  • Виджеты поддержания состояний
  • Виджеты форматирования

 

Рисунок 2. Категории виджетов (форматирования, базовые, специфичные, состояний)

 

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

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

По публикации от 2019 года на портале Хабр от лица компании SimbirSoft, которая предоставляет услуги по разработке и тестированию программных продуктов на заказ, были выделены несколько проблем в плане разработки в режиме кроссплатформинга на базе Flutter, а именно: больший объем установочного пакета засчет добавления виртуальной машины и виджетов; процесс создания интерфейса основан полностью на коде, в результате чего разграничение между дизайном и логикой является минимальным; малое наличие библиотек; нестабильность фреймворка по причине недавнего выхода с бета-тестирования. В данной статье компания опиралась на собственный опыт разработок на базе данного фреймворка. [2]

В 2021 году от лица этой же компании на портале vc.ru были выделены новые проблемы, касающиеся не только самого процесса программирования, но и бизнес-логики. В качестве проблем выступила недоработанность проекта со стороны плагинов и расширений, поскольку не под все задачи существовали средства кроссплатформенной разработки, в результате чего компании приходилось обращаться к поддержке нативных разработчиков. [3]

Также на основании интервью от февраля 2021 года Андрея Давыдова, владельца продукта мобильного приложение «РОСБАНК Бизнес», реализованного на платформе Flutter, в процессе разработки мобильного приложения на фреймворке были замечены следующие проблемы: проблема близости дизайна от фреймворка к нативным дизайнам, проблема пользовательских библиотек.[4]

Для подтверждения информации, приведенной выше, был проведен исследовательский эксперимент в виде создания приложения на базе Dart/Flutter. Проект представлял собой электронную книгу с возможностью сетевых запросов на основе модулей-расширения Flutter WebView и HttpServer. В результате тестирования проекта были обнаружены проблемы, касающиеся сборки приложения под платформу iOS – программа заканчивала свою работу после сворачивания или переключения на другие окна, также возникала проблема при запуске приложения на реальных устройствах iOS в виде ошибки запуска, в то время как на Android запуск производился успешно.

В результате данного эксперимента на основании аналитического метода были выявлены несколько основных проблем: несмотря на наличие больших пользовательских библиотек все еще имеют место быть проблемы с адаптацией мобильных приложений и модулей под различные ОС; существует проблема официальной поддержки Flutter на базе iOS (на Android присутствует в виде Google[2]), в результате чего при обновлении ОС могут возникать подобные проблемы адаптации; проблема настройки визуальных компонентов для схожести дизайнов для iOS/Android. Исходя из первой приведенной проблемы также подтверждается утверждение от источника 2021 года [3], где в результате нереализуемых плагинов следует обращаться к нативным разработчикам.

Тем не менее в рамках существующих проблем существуют способы их решения. Поскольку на основании данных опроса, предоставленных с портала Хабр [1], использование фреймворка Flutter охватывает примерно треть опрошенных, что может говорить о занятии определенной ниши в рамках кроссплатформенной разработки. Данный факт может говорить о том, что количество пользовательской поддержки в дополнение к открытому коду фреймворка будет увеличиваться, что позволит уменьшить число возникающих проблем с адаптацией приложений мобильной разработки, и, соответственно, позволит меньше обращаться к нативной разработке. Проблема официальной поддержки, учитывая факт, что большинство существующих фреймворков функционируют без официальной поддержки с помощью пользовательских библиотек, также не является значительной. В дополнение к увеличивающейся популярности фреймворка, существует вероятность дополнения числа виджетов, с учетом которых может произойти сближение дизайна интерфейсов под iOS и Android.

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

 

Список литературы:

  1. Нативная разработка vs кроссплатформенная — нужно ли выбирать? // Хабр : [сайт]. – URL: https://habr.com/ru/post/505482/ (дата обращения: 15.05.2023).
  2. Flutter. Плюсы и минусы // Хабр : [сайт]. – URL: https://habr.com/ru/company/simbirsoft/blog/441766/ (дата обращения: 15.05.2023).
  3. Мобильное приложение на Flutter: плюсы и минусы для бизнеса // vc.ru : [сайт]. – URL: https://vc.ru/dev/286928-mobilnoe-prilozhenie-na-flutter-plyusy-i-minusy-dlya-biznesa (дата обращения: 15.05.2023).
  4. Создание мобильного приложения на Flutter: плюсы, минусы, подводные камни // Дзен : [сайт]. – URL: https://dzen.ru/media/nplus1/sozdanie-mobilnogo-prilojeniia-na-flutter-pliusy-minusy-podvodnye-kamni-602cfb1bffa2d86ae4180dac (дата обращения: 15.05.2023).
 

[1] По требованию Роскомнадзора информируем, что иностранное лицо, владеющее информационными ресурсами Google является нарушителем законодательства Российской Федерации – прим. ред.

[2] По требованию Роскомнадзора информируем, что иностранное лицо, владеющее информационными ресурсами Google является нарушителем законодательства Российской Федерации – прим. ред.