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

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

CC BY
19
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
разработка / кроссплатформенность / мобильное приложение / development / cross-platform / mobile application

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дрягин К.Н.

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

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

COMPARATIVE ANALYSIS OF MOBILE APPLICATION PERFORMANCE ON REACT NATIVE AND SWIFT

There is an eternal dilemma in the world of mobile application development: the choice between a native approach and a cross-platform solution. Native applications created specifically for a specific platform usually have high performance and full access to the device's functionality. However, cross-platform solutions such as React Native offer the ability to develop a single code for multiple platforms, which can greatly simplify the development and maintenance process.

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

УДК 004

Дрягин К.Н.

студент магистратуры Московский политехнический университет (г. Москва, Россия)

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА REACT NATIVE И SWIFT

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

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

React Native (также известный как RN) - это популярная платформа мобильных приложений на основе JavaScript, которая позволяет создавать мобильные приложения с собственным интерфейсом для iOS и Android. Фреймворк позволяет создавать приложения для различных платформ, используя одну и ту же кодовую базу.[1]

Цель данного исследования состоит в том, чтобы провести сравнительный анализ производительности кроссплатформенного приложения, разработанного на React Native, с нативным приложением для iOS, написанным на Swift. Основной гипотезой является предположение о том, что кроссплатформенное приложение потребляет значительно больше ресурсов процессора по сравнению с нативным решением и задержка будет минимальной.

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

ю ■ >

п га Я < 'X. & л У а

1 ■ ' &*Л»Г РнИМ! 1 МЯЗ а «

0 СРд шш\

ммшгу 111 мй

ЕЛЙГЭУ 1ГП0К1 1и1||||||||»||||||>|||||||||||1|||

оьяк

ГИЧУРОЛ г «щ щ»

Ни~т*1д $1аг|. РлДО о.4„ ^

ОВД* Сй№ДО1М<1

I Г|' ими»

чм ЙН

Г 8 О вШИГОДМ

"»•ЮФУкСМГЮТИИ«« * # * Тсу1ч ТИГМдИ 51ч *г1#П«£1М

■|И0»1»а|1к1Т|19ап Я (*(|{П( «с1*л№1ел 10 раггт*^.' *|#(||*г1еа№1М;а11дл ЫтиНт 1а илЬвп." 'О»10оу!С»0Г1.П1«1:ЗМ. • • ■ Мгоирь С К* И«*» iorlwn5.lJ.im

'ГУ1*КС*Я1Г011»Х| V Гмаи: «7.4,

С,«. Ъоноя: 3*.*, т1оМ; *-*Г *№1Н(1*и«Снг<1л|Ы й («и«

ar&■,»tш^^Jp<i^^*4eonъ•rt ГшЛм) « гк^ИЧ^Иол м

Л5

Я С««Ш У1и1"

Рис. 1. Обзор инструментов при выполнении теста.

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

Каждый тест, который проводился, начинался с холодного запуска, где для каждого теста выполнялось 10 запусков, а затем среднее значение из 10 запусков представлялось в виде графика. Первый тест загружал 3 элемента, второй - 5 элементов, третий - 10 элементов, и последний - 100 элементов. Этот эксперимент проводился в изолированной среде, что дополнительно улучшало качество данных, поскольку не могли возникать внешние факторы окружающей среды.

Если данные покажут, что приложения могут работать с временем рендеринга менее 2 000 мс, то гипотеза может быть доказана верной. Если приложение на React Native демонстрирует время рендеринга более 2 000 мс, то гипотеза будет считаться ложной.

Три элемента в коде

1250 -г

1000 -г

750 --

500 --

250 --

1202

1098

Swift

React Native

Рис. 2. Выполнение кода с 3 элементами.

На рисунке 2 изображено отображение трех элементов на экране пользователя. Эти столбцы представляет время выполнения в React Native, и в Swift. Данные этого графика указывают на то, что конечный пользователь не заметит никаких различий в производительности между приложениями. В общем, React Native работает лучше на 7,7% по сравнению с Swift в этом тесте.

Рис. 3. Выполнение кода с 5 элементами.

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

Рис. 4. Выполнение кода с 10 элементами.

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

Рис. 5. Выполнение кода с 100 элементами.

На рисунке 5 производительность приложения на React Native далека от оптимальной задержки, приложение на Swift по-прежнему обеспечивает хороший скорость задержки. Сравнение здесь показывает разницу в производительности между двумя приложениями в 113%.

Можно многое сказать о представленных данных на различных графиках. В некоторых случаях React Native показал лучшую производительность по сравнению со Swift. При отображении 3 элементов на экране просмотра, как показано на рисунке 2, React Native показал на 7,7% лучшую производительность. Когда это число равнялось 5, как показано на рисунке 3, React Native по-прежнему демонстрировал лучшие результаты при полном охвате области просмотра пользователями, увеличившись на 5,2% по сравнению

с показателями проекта Swift. Увеличив количество элементов до 10, мы впервые заметили серьезную разницу в производительности между двумя приложениями.

Изучая рисунок 5, мы можем наблюдать разницу в производительности на 24% в пользу проекта Swift. Последний тест, в котором содержалось 100 элементов, оказался самым большим отличием между ними, показав колоссальную разницу в производительности - 114% в пользу проекта Swift.

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

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

Когда количество элементов в приложении увеличивается, особенно до сотен или тысяч, разница в производительности между React Native и Swift становится более заметной. React Native, используя JavaScript, может столкнуться с проблемами производительности из-за интерпретации кода и управления памятью, особенно при выполнении сложных операций с большим объемом данных.

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

Из этих данных мы можем сделать вывод: Таким образом, чем больше элементов в приложении, тем более заметной становится разница в производительности между React Native и Swift, и в пользу последнего,

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

СПИСОК ЛИТЕРАТУРЫ:

1. Что такое React Native? Комплексное руководство 2021 [Электронный ресурс]. URL: https://habr.com/ru/articles/596183/ (дата обращения:01.04.24)

Dryagin K.N.

Moscow Polytechnic University (Moscow, Russia)

COMPARATIVE ANALYSIS OF MOBILE APPLICATION PERFORMANCE ON REACT NATIVE AND SWIFT

Abstract: there is an eternal dilemma in the world of mobile application development: the choice between a native approach and a cross-platform solution. Native applications created specifically for a specific platform usually have high performance and full access to the device's functionality. However, cross-platform solutions such as React Native offer the ability to develop a single code for multiple platforms, which can greatly simplify the development and maintenance process.

Keywords: development, cross-platform, mobile application.

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