'
Дрягин К.Н.
СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА REACT NATIVE И SWIFT *
Аннотация:
в мире разработки мобильных приложений существует вечный дилемма: выбор между нативным подходом и кроссплатформенным решением. Нативные приложения, созданные специально для определенной платформы, обычно обладают высокой производительностью и полным доступом к функциональным возможностям устройства. Однако кроссплатформенные решения, такие как React Native, предлагают возможность разработки единого кода для нескольких платформ, что может значительно упростить процесс разработки и обслуживания.
Ключевые слова:
разработка, кроссплатформенность, мобильное приложение
React Native (также известный как RN) - это популярная платформа мобильных приложений на основе JavaScript, которая позволяет создавать мобильные приложения с собственным интерфейсом для iOS и Android. Фреймворк позволяет создавать приложения для различных платформ, используя одну и ту же кодовую базу.[1]Цель данного исследования состоит в том, чтобы провести сравнительный анализ производительности кроссплатформенного приложения, разработанного на React Native, с нативным приложением для iOS, написанным на Swift. Основной гипотезой является предположение о том, что кроссплатформенное приложение потребляет значительно больше ресурсов процессора по сравнению с нативным решением и задержка будет минимальной. Для проверки этой гипотезы будет проведен ряд экспериментов, включающих тестирование выполнения кода, анализ процессов приложений и сравнение результатов.Рис. 1. Обзор инструментов при выполнении теста.Каждый тест проводился с использованием автоматизированного тестирования пользовательского интерфейса внутри специальных инструментов, как показано на рисунке 1. Процесс включал запуск приложения с нуля и измерение времени до отображения элементов.Каждый тест, который проводился, начинался с холодного запуска, где для каждого теста выполнялось 10 запусков, а затем среднее значение из 10 запусков представлялось в виде графика. Первый тест загружал 3 элемента, второй - 5 элементов, третий - 10 элементов, и последний - 100 элементов. Этот эксперимент проводился в изолированной среде, что дополнительно улучшало качество данных, поскольку не могли возникать внешние факторы окружающей среды.Если данные покажут, что приложения могут работать с временем рендеринга менее 2 000 мс, то гипотеза может быть доказана верной. Если приложение на React Native демонстрирует время рендеринга более 2 000 мс, то гипотеза будет считаться ложной.Рис. 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, и в пользу последнего, благодаря его нативной природе и эффективному использованию ресурсов устройства.
Номер журнала Вестник науки №4 (73) том 4
Ссылка для цитирования:
Дрягин К.Н. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА REACT NATIVE И SWIFT // Вестник науки №4 (73) том 4. С. 622 - 628. 2024 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/14130 (дата обращения: 24.06.2025 г.)
Вестник науки © 2024. 16+
*