Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ НАТИВНОГО И КРОССПЛАТФОРМЕННОГО ПОДХОДОВ К РАЗРАБОТКЕ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ'

СРАВНИТЕЛЬНЫЙ АНАЛИЗ НАТИВНОГО И КРОССПЛАТФОРМЕННОГО ПОДХОДОВ К РАЗРАБОТКЕ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
8
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
мобильная разработка / кроссплатформенная разработка / Андроид / Айос / Котлин Мультиплатформ / Флаттер / Котлин / Свифт / mobile development / cross-platform development / Android / Ios / Kotlin Multiplatform / Flutter / Kotlin / Swift

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Каширин Родион Сергеевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPARATIVE ANALYSIS OF NATIVE AND CROSS-PLATFORM APPROACHES TO MOBILE APPLICATION DEVELOPMENT

The main advantages and disadvantages of native and cross-platform approaches to mobile application devel-opment are considered. The experience of developers in the field of application of the technologies under consideration is being investigated. In the course of practical testing, applications are analyzed in predefined test cases developed using both methods.

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ НАТИВНОГО И КРОССПЛАТФОРМЕННОГО ПОДХОДОВ К РАЗРАБОТКЕ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ»

8. Хирурги в Техасе используют AR в сложных операциях [Электронный ресурс] // VR Journal. [Электронный ресурс] URL: https://vr-i.ru/news/hirurgi-v-tehase-ispolzuyut-ar-v-slozhnyh-operatsiyah (дата обращения: 10.05.2024).

9. Будущее за медициной 4.0 [Электронный ресурс] // deutschland.de. [Электронный ресурс] URL: https://www.deutschland.de/ru/topic/ekonomika/medicina-40-v-germanii-cifrovizaciya-i-ii (дата обращения: 10.05.2024).

10. Черченко О.В. (2018) Технологии дополненной и виртуальной реальности в медицине: анализ конкурентного ландшафта // Экономика науки. Т. 4. № 1. С.69-80.

Григорьев Александр Максимович, магистрант, [email protected]. Россия, Москва, Российский технологический университет МИРЭА.

Алёхин Лев Евгеньевич, студент. Россия, Москва, Российский технологический университет МИРЭА PROSPECTS FOR THE DEVELOPMENT OF AUGMENTED REALITY TECHNOLOGY IN THE MEDICAL FIELD

A.M. Grigoriev. L.E. Alekhine

This paper analyzes the development of augmented reality (AR) technologies and their application in the medical field. A historical overview of the evolution of AR is presented. starting with early experiments and developments that laid the foundation for modern applications in various industries. including medicine. The current state of AR use in the medical field is described. covering areas such as surgical navigation. preoperative planning. diagnostic procedures. and training of medical personnel. Examples of AR implementation in medical practice that may significantly expand its functionality in the future are discussed.

Key words: augmented Reality. AR. healthcare. AR perspectives. surgery. diagnostics. personnel training. therapy. medical technologies. innovations in healthcare. digital technologies.

Grigoriev Alexander Maksimovich. undergraduate. [email protected] . Russia. Moscow. Russian Technological University MIREA.

Alyokhin Lev Evgenyevich. student. Russian Federation. Moscow. Russian Technological University MIREA

УДК 004.4'2

DOI: 10.24412/2071-6168-2024-10-686-687

СРАВНИТЕЛЬНЫЙ АНАЛИЗ НАТИВНОГО И КРОССПЛАТФОРМЕННОГО ПОДХОДОВ К РАЗРАБОТКЕ

МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

Р.С. Каширин

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

Ключевые слова: мобильная разработка, кроссплатформенная разработка, Андроид, Айос, Котлин Мультиплатформ, Флаттер, Котлин, Свифт.

С каждым годом значимость мобильных устройств в жизни человека растет, соответственно, разработка приложений под мобильные операционные системы актуальна как никогда. Согласно статистике за последние годы, изображённой на рис. 1, на рынке преобладают устройства с двумя операционными системами: Android и IOS [1].

Mobile Operating System Market Share Worldwide

jan - Dec 2023

Other I

11% 16% ¡2'/. 48% 64% 8(1%

Рис. 1. Статистика продаж мобильных устройств с различными операционными системами за 2023 год

Чтобы поддерживать обе операционные системы, разработчик может выбрать два пути:

- Использовать нативную разработку и писать отдельное приложение под каждую платформу.

- Использовать кроссплатформенную разработку и писать общую кодовую базу сразу и для IOS и для

Android.

Наиболее актуальным нативным подходом является применение декларативных принципов - использование набора инструментов Jetpack Compose для Android и использование фреймворка SwiftUI для IOS. А говоря о кроссплатформенной разработке, можно отметить, что сегодня существует множество фреймворков, которые активно используются разработчиками. Эти фреймворки представлены на рис. 2 [2]. Среди них наиболее популярными являются Flutter и React Native. Однако стоит отметить, что появилась и новая перспективная технология - Kotlin Multiplatform. Она быстро набирает популярность и уже оказывает заметное влияние на рынок [3].

Cross-platform mobile frameworks used by software developers worldwide from

2019 to 2023 • 2019 • 2020 2021 0 2022 0 2023

60%

50%

Рис. 2. Статистика использования разработчиками кроссплатформенных мобильных фреймворков

за 2019-2023 года

У нативного и кроссплатформенного подходов к разработке мобильных приложений есть свои преимущества и недостатки. Долгое время ведутся активные дискуссии относительно того, насколько кроссплатформенная разработка эффективна и оправдана в долгосрочной перспективе. Некоторые эксперты считают, что такие решения уступают в производительности и функциональности нативным приложениям, а также усложняют поддержку приложений [6-8]. Другие эксперты, несмотря на недостатки кроссплатформенного подхода, указывают на большее количество преимуществ, в том числе на экономические преимущества. Они также отмечают, что 70% компаний готовы рассмотреть кроссплатформенный подход вместо нативного [9].

Стоит учесть выводы компании AGIMA из их сравнения нативной и кроссплатформенной мобильной разработки [10]. К плюсам нативной разработки они относят: производительность и стабильность, меньшее количество потребляемых ресурсов, богатый инструментарий для разработки, широкий рынок разработчиков. Из минусов выделяют необходимость иметь два независимых приложения, проблемы с синхронизациями платформ, и стоимость разработки и отладки. К плюсам кроссплатформенной разработки они относят: единую кодовую базу, меньшие затраты на разработку, скорость разработки. Из минусов кроссплатформы выделяют: потенциальные риски, ресурсо-емкость, сложность в поиске исполнителей, ограничения по дизайну.

На примере анализа разработчиков из компании Apter, отображенного на рис.3, можно увидеть, что трудозатраты на разработку с применением кроссплатформенного подхода, в данном случае с использованием Kotlin Multiplatform, более чем в два раза превышают затраты с использованием нативных технологий [11]. Сомневаться в данном анализе не приходится, ведь можно легко понять, что если для нативной разработки требуется как минимум два специалиста — по одному на каждую платформу, то используя кроссплатформу можно обойтись всего одним разработчиком.

Методология. Чтобы лучше понять различия между двумя рассматриваемыми подходами к разработке и самостоятельно оценить их сильные и слабые стороны, с помощью четырех технологий были написаны мобильные приложения, изображенные на рис. 4-6, являющиеся вариантами одного несложного приложения, показывающего некоторое количество постеров популярных фильмов [12]. Нативное IOS приложение было написано с помощью среды разработки Xcode, остальные приложения были написаны с помощью среды разработки Android Studio. В качестве используемых кроссплатформенных технологий были выбраны Flutter - самый популярный кроссплатфор-менный фреймворк, и Kotlin Multiplatform - самая молодая и наиболее перспективная кроссплатформенная технология.

Without КММ 1

With КММ 1 (u+ioeui

With КММ yri<] Compose

iwuiciptotform i КММ * Compote Ul

Рис 3. Анализ трудозатрат при использовании разных подходов

Posters

12Я5 г^в

Sisters

S f 1 HI / 4 ■' jl^HI

El

£ j 3

Рис 4. Приложение, написанное с помощью технологий Jetpack Compose для Android и SwiftUI для IOS

115? & * Ш »л anse ? ш

fosters Posters

Рис. 6. Приложение, написанное с помощью технологии Flutter для Android и IOS

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

- Вес приложения: измеряется в мегабайтах (МБ) при помощи инструментов среды разработки, предоставляющей данные о релизной сборке. Чем больше вес приложения, тем больше места оно занимает в памяти устройства, что может стать проблемой для пользователей с ограниченным объемом памяти, а также повлечет за собой увеличенное время загрузки из магазина приложений или других источников.

- Время запуска: измеряется повторный запуск в секундах (С), начиная от нажатия на иконку приложения до его полной загрузки. С помощью данного параметра можно проверить, насколько кроссплатформенные фрейм-ворки оптимизированы на загрузку по сравнению с нативными решениями;

- Кадров в секунду: измеряется количество кадров, которое приложение отображает в секунду средствами среды разработки, позволяющими вывести соответствующий счетчик и зафиксировать результаты, важный показатель плавности анимации и интерфейса;

- Использование памяти: измеряется в мегабайтах (МБ) средствами среды разработки, позволяющими осуществлять мониторинг потребляемых ресурсов в реальном времени. Высокое потребления оперативной памяти может привести к снижению производительности не только самого приложения, но и всей операционной системы устройства.

Итоговые результаты тестирования написанных приложений с помощью определенных тестовых случаев приведены в табл. 1. Чтобы исключить влияние окружения, или следов эксплуатации реальных устройств, приложение тестировалось на эмуляторах устройств. В качестве Android устройства использовался эмулятор Google Pixel 6 под управлением ОС Android 11, а в качестве IOS устройства использовался эмулятор Apple IPhone 13 под управлением ОС IOS 13.

Тестирование мобильного приложения на разных платформах

Тестовые случаи Технология и платформа

Compose SwiftUI Kotlin Multiplatform Flutter

Android IOS Android IOS Android IOS

Вес приложения (МБ) 7,7 2,1 9,1 5 20 7,8

Время запуска (С) 0,96 0,9 1,05 0,96 1,6 1,35

Кадров в секунду 55-60 60 55-60 55-60 35-60 54-60

Использование памяти (МБ) 200 50 204 175 30S 268

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

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

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

Jetpack Compose SwiftUl v i, CrossPosterslOS 41 Token* Kotlin Multiplatform Flutter

w CrossPostersAndroid -/Dev/AndrofdProjei - СГ CrossPostersKMP -/Dev/AndroidProject. crossj}oster5_f1uttec -/Dev/AndroldProJe"

> D-gradta > CUetaa v Спврр > CD .fleet > Q.gradle > CD .Иеа > Q.dart_tool > Cj.tdee > О android [cross_postersJlutter_android

v в CrossPosterslOS oi CrossPosterBlOSApp it ContentVlew

> Dbufld Ф Assnts > CD .kotlin > Qj assets

Dune w \ Preview Content > D build > C^ build

v Dsn; Preview Assets v Cr| composeApp v Dfos

~> Co androfdTest ■ > PcraterltemResponse > CD .¡dee > CD symlinks

v Contain ji Posterinfo > D build > D Flutter

> CD Java » CSres ji Poster ji PoslersVlewModel v D*rc * Q"1 android Main [main] > Dfods > D Runner

И AndroidManifest.xml Package Dependencies > Г i kotlin " CD fiunner.*codopro{

> CP test [unttTMt] > 6 AJarnofire 5.&.1 > Cares > CD project.ncwofkspace

0 -gitigriore 0 AndroidManFtest.xmi > D xcshareddata

fj touad-gredto v Qj COinitlOnWsirt ^ project-ptoiproj

* proguare-ruies.pfo > Си composeResources > CD Runner .«workspace

i D build i C?j kotlin [commonMain] > CD RunrterTests

> CD gradle * C? wsMain 0 .gHignore

0 .gitignore > dtotlln S" Pod (lie

bulld.gradle build.gradle.Xts F Podfile.lock

gradlc.propcrtios ^ Qgradlc v Г"| lib

ILJ gradlew > О wrapper V maln.dan

? gradlew.bat libs.versions.taml С Tokens,dart

ф focal-properties v DjOSApp « Cutest

£■:? settingg.gr »die > ED Configuration f widget_t*st.dart

> lib External libraries > QiosApp F .flutter-pluglns

> Scratches and ConsdJes v Cj iosApp.xcodep«! > CD pfcject-xewortipece > Dxcuserdata 1? project, pbxproj 0 .gltlgnofe F .flutter-piuglnfi-dependencfes 0 .gltignore z .metadata anafysis_options.yaml Q Gross-postersJluttorlml

Рис. 7. Сравнение иерархии проектов

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

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

1. Mobile Operating System Market Share Worldwide. [Электронный ресурс] URL: https://gs.statcounter.com/os-market-share/mobile/worldwide/2023 (дата обращения: 10.05.2024).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. Cross-platform mobile frameworks used by software developers worldwide from 2019 to 2023. [Электронный ресурс] URL: https://www.statista.com/statistics/869224/worldwide-software-developer-working-hours (дата обращения: 10.05.2024).

3. The Six Most Popular Cross-Platform App Development Frameworks. [Электронный ресурс] URL: https://www.ietbrains.com/help/kotlin-multiplatform-dev/cross-platform-frameworks.html (дата обращения: 10.05.2024).

4. Android Developers. Quick start. [Электронный ресурс] URL: https: // developer.android.com/ develop/ui/ compose/ setup (дата обращения: 10.05.2024).

5. Android Developers. Why adopt Compose. [Электронный ресурс] URL: https://developer.android.com/develop/ui/compose/why-adopt (дата обращения: 10.05.2024).

6. Что не так с кроссплатформенной разработкой. [Электронный ресурс] URL: https://vc.ru/u/640887-yuriy-pukhov/456197-chto-ne-tak-s-krossplatformennoi-razrabotkoi (дата обращения: 10.05.2024).

7. Flutter Failed To Solve the Biggest Challenge for Our Cross-Platform App. [Электронный ресурс] URL: https://betterprogramming.pub/flutter-failed-to-solve-the-biggest-challenge-for-our-cross-platform-app-c551afa0ef18 (дата обращения: 10.05.2024).

8. Внедрять Kotlin Multiplatform легко. Масштабировать сложно[Электронный ресурс] URL: https://apptractor.ru/info/articles/vnedryat-kotlin-multiplatform-legko-masshtabirovat-slozhno.html (дата обращения: 10.05.2024).

9. The Future of Cross-Platform Development vs Native Apps. [Электронный ресурс] URL: https://moldstud.com/articles/p-the-future-of-cross-platform-development-vs-native-apps (дата обращения: 10.05.2024).

10. Петросян Л.Э. Монографи. Разработка мобильных приложений на Kotlin практикум. [Электронный ресурс] URL: https://ibc.mirea.ru/books/share/55236 (дата обращения: 10.05.2024).

11. Мобильная разработка: Cross-platform или Native. [Электронный ресурс] URL: https://habr.com/ru/companies/agima/articles/586092 (дата обращения: 10.05.2024).

12. Implementing a 2-month Large-scale Banking POC with Kotlin Multiplatform. [Электронный ресурс] URL: https://blog.apter.tech/implementing-a-2-month-large-scale-banking-poc-with-kotlin-multiplatform-mobile-12ab887afb (дата обращения: 10.05.2024).

13. RodionK77, CrossPosters, (2024), GitHub repository. [Электронный ресурс] URL: https://github.com/RodionK77/CrossPosters/tree/master (дата обращения: 10.05.2024).

Каширин Родион Сергеевич, магистрант, [email protected], Россия, Москва, Российский технологический университет МИРЭА

COMPARATIVE ANALYSIS OF NATIVE AND CROSS-PLATFORM APPROACHES TO MOBILE APPLICATION

DEVELOPMENT

The main advantages and disadvantages of native and cross-platform approaches to mobile application development are considered. The experience of developers in the field of application of the technologies under consideration is being investigated. In the course of practical testing, applications are analyzed in predefined test cases developed using both methods.

Key words: mobile development, cross-platform development, Android, Ios, Kotlin Multiplatform, Flutter, Kotlin,

Swift.

Kashirin Rodion Sergeevich, master's, kashirin. r. [email protected]. ru, Russia, Moscow, Russian University of Technology MIREA

УДК 004.94

DOI: 10.24412/2071-6168-2024-10-691 -692

АНАЛИЗ ВЛИЯНИЯ АГЕНТ-ОРИЕНТИРОВАННОГО МОДЕЛИРОВАНИЯ НА ПРИНЯТИЕ РЕШЕНИЙ

В БИЗНЕСЕ

А.М. Клочек, Н.Д. Садчиков

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

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

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

Агент-ориентированное моделирование — это метод, основанный на использовании автономных агентов, которые взаимодействуют друг с другом и с окружающей средой. Каждый агент может принимать собственные решения на основе заданных правил и информации, что позволяет моделировать сложные системы и процессы. Основные характеристики и их пояснения представлены в таблице 1 [1].

Характиристики и их описание АОМ

Характеристика Описание

Автономность Каждый агент действует независимо

Интерактив ность Агенты взаимодействуют друг с другом

Адаптивность Агенты могут изменять свое поведение в ответ на изменения среды

Динамичность Модели могут эволюционировать со временем

Разработка и настройка агент-ориентированных моделей (АОМ) включает в себя несколько ключевых методов и подходов, которые помогают создать эффективные и адаптивные модели. Основным этапом является создание агентов, что может включать использование стохастических моделей, позволяющих учитывать случайные изменения в поведении агентов, или предопределенные сценарии, которые задают четкие правила поведения в различных ситуациях. При этом важно тщательно настраивать параметры агентов, такие как их цели, ресурсы и стратегии взаимодействия с другими агентами. Эти параметры определяют, как агенты будут реагировать на изменения в окружающей среде и на действия других участников. Взаимодействия между агентами также требуют внимания: необходимо определить, как они будут обмениваться информацией, какие механизмы координации будут использоваться и как будут учитываться результаты этих взаимодействий.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.