Flutter vs Native vs React-Native : 성능 조사

오늘날 모바일 앱을 빌드하는 가장 인기있는 솔루션 중 일부는 React Native 또는 https://inveritasoft.com/technologies/flutter. 네이티브 개발은 AAA 기술 솔루션으로 자리 잡았지만 크로스 플랫폼 앱이 들어오는 시장 공간을 만드는 몇 가지 단점이 있습니다. 일반적으로 네이티브 개발은 프로젝트를 수행하기 위해 개발 팀의 더 많은 노력이 필요하지만 까다로운 부분을 완전히 제어 할 수 있습니다. 기술적 인 부분이 있습니다. 반면에 크로스 플랫폼을 선택하면 공통 코드 기반으로 인해 개발 프로세스 속도가 크게 빨라지고 프로젝트 지원이 쉬워지며 개발 비용을 줄일 수 있습니다.

크로스 플랫폼 개발에 비해 네이티브의 또 다른 장점은 성능입니다. 기술 세계에서 "크로스 플랫폼 앱은 느립니다"라는 고정 관념에 직면 할 수 있습니다. 우리는 그것이 사실인지 그리고 크로스 플랫폼 앱이 네이티브보다 느린 지 테스트하기로 결정했습니다.

다양한 유형의 성능이 있으며 그중 일부는 다음과 같습니다.

  1. 전화 API와 상호 작용 (사진 액세스, 파일 시스템, GPS 위치 가져 오기 등).
  2. 렌더링 속도 (애니메이션 부드러움, UI가 변경되는 동안의 초당 프레임 또는 제 시간에 발생하는 일부 UI 효과).
  3. 비즈니스 로직 (수학적 계산 및 메모리 조작의 속도. 이러한 유형의 성능은 복잡한 비즈니스 로직이있는 앱에서 가장 중요합니다).

iOS 용 CPU 집약적 테스트 (Gauss–Legendre 알고리즘)

iOS 용 메모리 집약적 테스트 (Gauss–Legendre 알고리즘)

iOS

  • Objective-C는 iOS 개발을위한 최고의 프로그래밍 언어입니다. Swift는 Objective C에 비해 1.7 배 느립니다.
  • 놀라움 : Flutter는 Swift보다 약간 빠릅니다 (15 %).
  • React Native는 Objective C보다 20 배 느립니다.
iOS 용 CPU 집약적 테스트 (Borwein 알고리즘)

iOS

  • Objective C는 iOS 앱 개발을위한 최상의 옵션입니다. Swift는 Objective-C에 비해 1.9 배 느립니다.
  • Flutter는 Swift보다 5 배 느립니다.
  • React Native 버전은 Swift 버전보다 15 배 이상 느립니다.
Android 용 메모리 집약적 테스트 (Gauss–Legendre 알고리즘)

기계적 인조 인간

  • Java와 Kotlin은 성능 표시가 비슷하며 Android 개발을위한 최상의 옵션입니다.
  • Flutter는 네이티브보다 약 20 % 느립니다.
  • React Native는 네이티브보다 약 15 배 느립니다.
Android 용 CPU 집약적 테스트 (Borwein 알고리즘)

기계적 인조 인간

  • Java와 Kotlin은 성능 표시가 비슷하며 Android 개발을위한 최상의 옵션입니다.
  • Native는 Flutter보다 2 배 빠릅니다.
  • React 네이티브는 네이티브보다 약 6 배 느립니다.
  1. 모든 테스트는 실제 물리적 장치 (Android 9.0에서 실행되는 iPhone 6s IOS 13.2.3 및 Xiaomi Redmi Note 5)에서 수행되었습니다.
  2. 릴리스 빌드에서 성능을 측정했습니다. 경우에 따라 디버그 빌드가 릴리스 빌드보다 훨씬 느릴 수 있습니다.
  3. 모든 테스트는 여러 번 실행되었으며 평균 결과가 계산되었습니다.
  4. Pi 수를 계산하는 Gauss–Legendre & Borwein 알고리즘이 사용되었습니다. Pi 번호는 1000 만 자릿수 정밀도로 100 번 계산되었습니다.
  5. Gauss–Legendre는 Borwein에 비해 메모리 집약적 인 알고리즘이지만 Borwein은 CPU 집약적입니다.
  6. https://github.com/nazarcybulskij/Mobile_Bechmarks_
  1. 요약하면 모든 크로스 플랫폼 앱이 느린 것은 아닙니다. 그 이상으로 Flutter 앱은 Swift 앱보다 성능이 뛰어납니다.
  2. 초고속 iOS 앱을 개발하고 싶다면 Objective C와 Flutter가 현명한 선택이 될 것입니다.
  3. 부하 계산이 많은 앱의 경우 Flutter는 Android 및 iOS 앱 개발 모두에 적합한 옵션입니다.

저자 :

https://www.linkedin.com/in/ihor-demedyuk-19825248/, 공동 창립자 겸 CTO @ http://inveritasoft.com

https://www.linkedin.com/in/nazarcybulskij/, Flutter 전도사 @ https://inveritasoft.com/contact

원래 게시 된 위치 https://inveritasoft.com/blog/flutter-vs-native-vs-react-native-examining-performance on March 10, 2020

Suggested posts

React 자습서가 가르치지 않는 5 가지 주요 교훈

React 자습서가 가르치지 않는 5 가지 주요 교훈

React 개발자가 알아야 할 필수 개념과 교훈이 많이 있지만 대부분의 튜토리얼에서는 다루지 않습니다. 나는 당신이 알아야 할 가장 중요한 주제 중 일부를 직접 골랐지만, 자세히 다루기 위해 시간을 할애 한 기사는 거의 없습니다.

Express.js 시작하기

Express.js 시작하기

Express는 웹 및 모바일 앱을 만드는 경험을 즐겁게 만드는 기능 세트가 포함 된 Node.js 프레임 워크입니다.

Related posts

성능 최적화 된 A / B 테스트 솔루션

성능 최적화 된 A / B 테스트 솔루션

의제 : 소개 : TL;하지만 읽을 수 있습니다. A / B 테스트, CloudFront 및 Lamba @ edge에 대해 이미 알고있는 경우 AWS Lambda @ edge를 사용한 A / B 테스트로 직접 이동하십시오. A / B 테스트 란 무엇입니까? A / B 테스트는 웹 사이트의 두 가지 버전에 대한 사용자의 참여를 비교하는 데 초점을 맞춘 UX 연구 방법론입니다.

fp-ts (Typescript)에서 Option 및 둘 중 하나 사용

저는 함수형 프로그래밍을 좋아합니다. 몇 년 동안 실수를하거나 토끼 구멍을 뚫는 것으로부터 저를 몇 번 구해 주었기 때문입니다. 동일한 입력이 주어지면 출력이 항상 동일하다는 것을 알면 안심입니다.

Syncfusion Blazor 파일 업로드 구성 요소에서 이미지를 미리 보는 방법

Syncfusion Blazor 파일 업로드 구성 요소에서 이미지를 미리 보는 방법

Syncfusion Blazor 파일 업로드는 하나 이상의 파일, 이미지, 문서, 오디오, 비디오 및 기타 파일을 서버에 업로드하기위한 구성 요소입니다. 여러 파일 선택, 진행률 표시 줄, 자동 업로드, 끌어서 놓기, 폴더 (디렉터리) 업로드, 파일을 포함하는 다양한 기능을 갖춘 HTML5 업로드 구성 요소 (<input type =”file”>)의 확장 버전입니다. 검증 등.

6 React 개발자로서 후회

내가 일찍했으면하는 것

6 React 개발자로서 후회

React는 배울 수있는 훌륭한 도구입니다. 그것은 우리가 우리 자신의 방식으로 일을 할 수있게합니다.