ReactNative와 NativeScript의 주요 차이점은 무엇입니까?


대답 1:
면책 조항 :이 답변은 한 팀이 다른 팀보다 낫다는 것을 증명하는 목적이 아니며 두 팀의 놀라운 작품을 비판하고 싶지는 않지만 NativeScript와 React Native의 차이점을 나열하고 싶습니다.

이 두 프레임 워크는 브라우저를 사용하여 기본 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 네이티브 OS의 네이티브 UI 구성 요소를 사용하여 _actualy_입니다. 이는 앱의 UX에 매우 긍정적 인 영향을 미칩니다. 또한 앱에 필요한 최종 광택이 브라우저 기반 앱인 PhoneGap과 동일한 작업에 필요한 것보다 훨씬 작기 때문에 앱을 더 빠르게 구현할 수 있습니다.

이제 당신의 질문에. 기술적 인 것과 비 기술적 인 것에는 많은 차이가 있습니다.

비 기술적 측면

NativeScript는 매우 유명한 개발자 회사 인 Telerik (진행 회사)에서 제공하며 NativeScript 프레임 워크는 핵심 비즈니스의 일부입니다. ReactNative는 Facebook에서 개발되었으며, 우리 모두 알고 있듯이 개발자 도구 회사가 아닙니다. 이것이 왜 중요한가? Telerik에 의존하는 경우 대부분의 심각한 소프트웨어 상점에 필요한 지원 (개발자 또는 프로덕션)을받을 수있는 옵션이 있습니다. 또한 기업에서 일하는 경우 특정 도구, 서비스 및 솔루션 스택이 필요합니다. 예를 들어 코드 암호화 및 보안. Telerik / NativeScript를 사용하면이 모든 것을 얻을 수 있지만 Facebook / React의 우선 순위는 아닙니다.

NativeScript는 이미 버전 2.0이며 ReactNative는 아직 성숙 초기 단계입니다. 적절한 프레임 워크를 선택할 때 위험을 평가할 때도 계산해야합니다. NativeScript를 사용하면 iOS 및 Android 모두에 대해 전체 스택을 사용할 수 있습니다. RN의 경우 오늘날과 같이 크로스 플랫폼 스토리에는 여전히 많은 차이가 있습니다. 이러한 격차는 매일 채워지고 있으며 FB 팀에 따르면 이는 다음 1 년 동안 RN 팀의 주요 우선 순위 중 하나입니다. NativeScript에 이미 사용 가능한 많은 유료 생산성 도구, 서비스 및 구성 요소가 있습니다. 이것은 상용 소프트웨어를 구축 할 때 사용할 프레임 워크를 결정할 때 중요한 역할을합니다.

기술적이지 않은 마지막 것은 커뮤니티 규모입니다. 두 프레임 워크 모두 오픈 소스이며 무료입니다. ReactNative는 React.js의 확장이므로 전체 react.js 커뮤니티에 베팅한다고 가정 할 수 있습니다. 반면 NativeScript는 Google의 지원을받으며 AngularJS 커뮤니티를 대상으로합니다. 두 커뮤니티는 모두 규모가 크며 (수백만 명의 개발자)이 두 프레임 워크가 유용합니다. 이것은 또한 위험 평가에서 중요한 역할을합니다.

이제 기술적 인 측면에서

차이의 톤. ReactNative와 NativeScript가 취하는 접근 방식은 개발자 환경에 영향을 미치며 기본 라이브러리 결과를 사용하고 재사용하는 기능에도 크게 다릅니다. 둘 다 iO와 Android에서 모두 우수한 성능을 제공합니다. 대부분 60fps입니다. 두 프레임 워크에서 다듬어야하는 시나리오가 여전히 있지만 오늘날까지도 진정한 네이티브 앱처럼 동작합니다.

ReactNative 아키텍처

아키텍처에 대해 이야기-위에서 언급 한 ReactNative는 React.JS의 확장이므로 ReactJS에서와 동일한 UI 업데이트 원칙을 따릅니다. 예 : 가상 DOM을 사용합니다. 간단히 말해-_background thread_에서 UI에 발생하는 변경 사항을 계산하고 이러한 변경 사항을 일괄 적으로 적용합니다. 그들이 백그라운드 스레드에서 이것을하고 있다는 사실에는 장단점이 있습니다. 물론 긍정적 인면은 UI 스레드가 건드리지 않고 (응답 성이 높은 UI로 이어짐) 부정적인면에서는 _fast_를 기본 네이티브 OS와 통신하는 기능을 제한하는 것입니다. 즉, 네이티브 OS를 많이 호출하는 구성 요소가 있으면 앱이 매우 느리고 실제로 느려집니다. 좋은 점은 이것이 대부분의 경우에 필요하지 않다는 것입니다.

나쁜 점은 사용자 지정 네이티브 구성 요소 또는 네이티브 API를 사용해야하는 경우 이러한 구성 요소 및 API에 액세스하려면 iOS 용 ObjC 및 Android 용 Java를 알아야합니다. 이것은 많은 JS 개발자들에게는 거래 차단기 일 수 있습니다. NativeScript에서이를 달성하기 위해 ObjC / Java를 알 필요는 없습니다 (아래 참조).

 ReactNative 웹 사이트 에이 내용을 자세히 설명하는 매우 좋은 기사가 있으며이 이유로 인해 UI 스레드에서 더 많은 작업이 수행되도록이 아키텍처를 변경하려고한다고 언급하고 있습니다. 이 기사의 인용문은 다음과 같습니다.

스레딩 모델을 대폭 변경해야한다고 생각하지 않습니다. 모든 것을 메인 스레드로 옮김으로써 핵심 변경을해야합니다.

나는 기사를 여기에서 읽는 것이 좋습니다.

NativeScript 아키텍처

NativeScript 핵심 팀 개발자는 여기에서보다 고전적인 접근 방식을 취하고 있습니다. 그들은 UI 스레드를 사용하여 Android, Windows 등 인기있는 대부분의 프레임 워크에서 사용되는 것과 동일한 모델 인 UI를 실행합니다. 이는 앱을 개발하는 훨씬 간단한 방법을 허용합니다-개발자는 항상 UI에 액세스 할 수 있습니다 응용 프로그램 트리. 백그라운드 스레드에서 무언가를 실행 해야하는 경우 이것이 가능하다는 점에 주목할 가치가 있습니다. http, image, sql lite 데이터베이스와 같은 핵심 구성 요소 중 일부는 실제로 백그라운드 스레드에서 많은 작업을 수행하여 UI 스레드의 부하를 줄입니다. 이 접근 방식은 JavaScript에서 직접 _any_ 기본 API에 액세스 할 수 있다는 엄청난 이점이 있습니다.

NativeScript 스레딩 아키텍처를 자세히 설명하는이 기사를 읽으십시오-http : //developer.telerik.com/fea ....

기본적으로 당신은 손대지 않은 전체 네이티브 API에 액세스합니다. 특히 장기적으로 앱을 지원해야 할 때 많은 이점이 있습니다. 네이티브 API에는 래퍼가 없으므로 전체 경험이 더 단순하고 오류가 적습니다. 문자 그대로-com.android.button.init ()와 같은 것을 작성할 수 있습니다. 또한 수정하지 않아도 타사 기본 라이브러리의 전체 스택을 직접 재사용 할 수 있다는 이점이 있습니다. 이를 통해 확장을보다 쉽게 ​​소비하고 만들 수 있습니다. 현재 커뮤니티에서 사용 가능한 확장 기능이 220 개가 넘습니다. 이 방법의 또 다른 이점은 CSS 및 JavaScript를 사용하여 만든 NativeScript의 애니메이션이 UI 스레드에서 실행되기 때문에 훨씬 더 부드럽게 실행된다는 것입니다.

위에서 언급했듯이 NativeScript는 Google의 지원을 받으므로 Angular 개발자라면 NativeScript를 사용하면 집처럼 느낄 수 있습니다. Angular 2 API 전체가 지원되며 NativeScript와 웹 응용 프로그램 사이에서 코드를 재사용 할 수 있습니다.

위의 아키텍처를 통해 NativeScript는 새로운 OS 릴리스에 대해 0 일 지원을 제공 할 수 있습니다. 현재 NativeScript는 여전히 알파 단계 인 Android N 릴리스를 지원합니다.

앱 코드를 실행하는 데 사용되는 JS 엔진

두 프레임 워크 모두 기존 JavaScript 엔진을 활용하여 런타임시 JavaScript 코드를 실행한다는 점을 언급 할 가치가 있습니다. ReactNative는 iOS 및 Android에서 JavaScriptCore를 사용하고 있습니다. NativeScript는 Android에서 V8을 사용하고 iOS에서 JavaScriptCore를 사용합니다. 최근 Microsoft는 ReactNative에서 Windows Universal에 대한 지원을 추가했으며 자체 Chakra JS 엔진을 사용하고 있습니다. 나는 이것이 ReactNative 코드의 나머지 부분과 어떻게 병합되는지 잘 모르겠습니다 (의심 할 것입니다).

표준 사용

소프트웨어는 많이 변경되므로 시나리오에 적합한 프레임 워크를 선택할 때 위험을 줄이기 위해 표준에 의존하는 것이 중요합니다.

두 프레임 워크 모두 표준과 호환되는 ECMAScript 코드를 사용하므로 웹과 모바일 앱간에 코드를 재사용 할 수있어 ROI가 매우 우수합니다.

NativeScript의 장점은 표준 호환 CSS 선언도 사용한다는 것입니다. 이를 통해 모바일과 웹 앱간에 훨씬 더 큰 기술 / 코드 재사용 스토리가 가능합니다. CSS 키 프레임을 사용한 애니메이션 설명도 지원합니다. 이 모든 것은 기본 코드로 내려가므로 CSS 선언은 기본 경험으로 변환됩니다. 기본 애니메이션 작성에 CSS를 사용하는 방법을 참조하십시오.

UI 선언

두 프레임 워크 모두에서 앱의 UI를 설명하는 선언적 구문을 가질 수 있습니다. ReactNative는 단일 파일에서 UI 선언을 인라인하기 위해 React에있는 표기법을 사용합니다. NativeScript는 코드를 사용하여 UI를 빌드하거나 UI 구현을 위해 별도의 파일을 통해 UI를 구축하여 기존 MVC / MVVM 패턴을 사용할 수있게함으로써보다 고전적인 접근 방식을 사용하고 있습니다. 나는 어느 것이 더 낫다고 말하지 않을 것입니다-그것은 개인적인 취향의 문제입니다. 나를 위해 UI와 코드를 분리하는 것이 MVVM을 사용하는 것이 더 좋지만, 이것이 내가 쓰는 데 사용되는 편견입니다.

NativeScript의 CSS를 알고 있다면 외부 스타일 시트 나 인라인 스타일을 사용하여 응용 프로그램을 훨씬 쉽게 스타일링 할 수 있습니다. ReactNative는 JSON 선언을 기반으로 스타일을 지정하기 위해 자체 표기법을 사용하고 있습니다. 다시 CSS와 비슷하지만 다릅니다.

언어 지원

ReactNative와 NativeScript는 모두 최신 JavaScript를 사용하고 있습니다. 둘 다 최신 및 가장 큰 JS를 사용하기 위해 Babel을 지원합니다.

NativeScript가 더 성숙함에 따라 여기에는 더 많은 옵션이 있습니다. NativeScript는 TypeScript와 긴밀하게 통합되어 있습니다 (도구, IDE 등). 이것은 Angular 2와의 추가 통합을 제공하고 생산성을 높이고 있으며 이러한 앱에 대한 장기적인 지원을 훨씬 쉽게 만듭니다.

개발자 경험, 디버깅

두 프레임 워크 모두 빠른 방식으로 애플리케이션을 개발할 수있는 기능을 제공합니다. 둘 다 핫 리로드 기능을 제공합니다. 이는 대부분의 경우 앱을 다시로드 할 필요없이 장치에서 코드 변경 사항을 즉시 확인할 수있는 기능입니다.

전체 앱 스택이 JavaScript이기 때문에 개발자 경험 및 IDE 측면에서 사용 가능한 모든 IDE를 사용할 수 있습니다. Facebook은이 글을 쓰는 시점에 아직 릴리스되지 않은 자체 IDE를 개발하고 있으며 NativeScript는 Visual Studio Code를 권장 편집기로 홍보하고 있습니다. Microsoft는 VS 코드 디버거에 대해 NativeScript와 ReactNative를 모두 구현했습니다.

테스팅

모든 표준 호환 JavaScript이므로 사용 가능한 도구를 사용하여 단위 테스트를 작성할 수 있습니다. 두 프레임 워크 모두 Karma, Jasmine, Mocha와 같은 가장 널리 사용되는 테스트 프레임 워크를 지원합니다.

기능 테스트의 경우 UI가 완전히 고유하므로 Appium과 같은 기본 프레임 워크에서 작동하는 모든 테스트 도구를 사용할 수 있습니다.

NativeScript에서 테스트를 작성하는 방법을 참조하십시오. ReactNative에서.

공연

위에서 성능 측면에서 여러 번 언급했듯이 두 프레임 워크에 만족할 것입니다. 잘 알려진 PhoneGap 앱보다 크게 개선되었습니다. 최종 앱은 실제 기본 앱과 다르지 않습니다. 실제 네이티브 UI 구성 요소를 사용하면 두 프레임 워크 모두에 큰 이점이 있습니다.

두 프레임 워크 모두 런타임시 로딩 시간 (둘 다 1 초 미만)과 FPS (대부분의 경우 60fps) 측면에서 뛰어난 성능을 제공합니다.

안드로이드에서는 여전히 성능은 좋지만 기본 네이티브 OS 아키텍처로 인해 전반적인 성능은 iOS만큼 좋지 않습니다. 로딩 시간과 런타임 동작은 iOS만큼 세련되지 않습니다. 그러나 이것은 순수한 네이티브 앱에도 유효하므로 NativeScript 및 ReactNative에서 너무 까다 롭지 마십시오. ReactNative는 NativeScript (1.4s vs 2.2s)에 비해 Android에서 로딩 시간이 약간 빠릅니다. NativeScript 팀은 메모리 힙 스냅 샷을 도입하여이 문제를 해결하고 있지만이 기능은 아직 실험 중입니다.

실제 앱

일부 실제 앱의 경우 NativeScript 키친 싱크 앱에 대한 다음 링크를 볼 수 있습니다.

Android에서-> https : //play.google.com/store/ap ...

iOS에서-> https : //itunes.apple.com/bg/app / ...

또는 NativeScript 쇼케이스 갤러리에서 앱을 확인할 수 있습니다.

ReactNative의 경우 주방 싱크 앱을 알지 못하지만 쇼케이스 앱을 확인할 수 있습니다. 최상의 구현을 위해 Facebook에서 수행 한 앱을 확인하십시오.

닫는 중

개인적으로 주요 의사 결정은 기존 기술을 기반으로합니다. Angular 기술이 있으면 NativeScript를 사용하십시오 .React 개발자라면 ReactNative가 더 친숙하고 사용하기 쉽습니다. 상용 소프트웨어를 구현하는 경우 NativeScript 및 Angular 기술 세트에서 제공되는 지원 및 서비스를 고려하십시오. 더 많은 사용자 정의 네이티브 UI가 필요한 경우 ObjC 또는 Java를 알 필요가 없기 때문에 NativeScript가 더 적합합니다. 하루가 끝날 무렵 두 프레임 워크는 모두 현대적이며 약속을 지키며 최고의 앱으로 이어질 것입니다.

행복한 코딩, 그리고 위의 도움이되기를 바랍니다 :). 자세한 내용은 언제든지 문의하십시오. 확실히 여기서 다루지 않은 많은 것들이 있지만, 더 나아가서 위의 모든 것을 더 자세히 설명 할 수 있습니다. 트위터에서 @ValioStoychev에 연락 할 수 있습니다.

공개 : 나는 NativeScript의 PM으로 일하지만 완전히 편견을 풀려고 노력했습니다. 위의 내용에 감사드립니다. 사실이 잘못되었다고 생각되면 알려 주시면 수정 사항을 적용하겠습니다.


대답 2:

React Native와 NativeScript의 차이점

React Native와 NativeScript는 모두 놀라운 프레임 워크입니다. 두 프레임 워크는 브라우저를 사용하여 Native 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 두 팀에서 수행 한 작업은 훌륭하지만 여기에 NativeScript와 React Native의 차이점이 있습니다.

또한 기본 리 액트 네이티브 인터뷰 질문을 읽으십시오

네이티브 스크립트

네이티브 반응

반응이 좋고 도움이되는 커뮤니티.

반응이 좋고 도움이되는 커뮤니티.

'실제'생산 사용량 없음

입증 된 생산 사용량.

소규모 회사에서 유지 관리합니다.

거대한 회사에서 유지 관리합니다.

덜 인기

인기 있는.

리 액트 네이티브보다 오래된

NativeScript보다 최신


대답 3:

React Native와 NativeScript의 차이점

React Native와 NativeScript는 모두 놀라운 프레임 워크입니다. 두 프레임 워크는 브라우저를 사용하여 Native 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 두 팀에서 수행 한 작업은 훌륭하지만 여기에 NativeScript와 React Native의 차이점이 있습니다.

또한 기본 리 액트 네이티브 인터뷰 질문을 읽으십시오

네이티브 스크립트

네이티브 반응

반응이 좋고 도움이되는 커뮤니티.

반응이 좋고 도움이되는 커뮤니티.

'실제'생산 사용량 없음

입증 된 생산 사용량.

소규모 회사에서 유지 관리합니다.

거대한 회사에서 유지 관리합니다.

덜 인기

인기 있는.

리 액트 네이티브보다 오래된

NativeScript보다 최신


대답 4:

React Native와 NativeScript의 차이점

React Native와 NativeScript는 모두 놀라운 프레임 워크입니다. 두 프레임 워크는 브라우저를 사용하여 Native 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 두 팀에서 수행 한 작업은 훌륭하지만 여기에 NativeScript와 React Native의 차이점이 있습니다.

또한 기본 리 액트 네이티브 인터뷰 질문을 읽으십시오

네이티브 스크립트

네이티브 반응

반응이 좋고 도움이되는 커뮤니티.

반응이 좋고 도움이되는 커뮤니티.

'실제'생산 사용량 없음

입증 된 생산 사용량.

소규모 회사에서 유지 관리합니다.

거대한 회사에서 유지 관리합니다.

덜 인기

인기 있는.

리 액트 네이티브보다 오래된

NativeScript보다 최신


대답 5:

React Native와 NativeScript의 차이점

React Native와 NativeScript는 모두 놀라운 프레임 워크입니다. 두 프레임 워크는 브라우저를 사용하여 Native 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 두 팀에서 수행 한 작업은 훌륭하지만 여기에 NativeScript와 React Native의 차이점이 있습니다.

또한 기본 리 액트 네이티브 인터뷰 질문을 읽으십시오

네이티브 스크립트

네이티브 반응

반응이 좋고 도움이되는 커뮤니티.

반응이 좋고 도움이되는 커뮤니티.

'실제'생산 사용량 없음

입증 된 생산 사용량.

소규모 회사에서 유지 관리합니다.

거대한 회사에서 유지 관리합니다.

덜 인기

인기 있는.

리 액트 네이티브보다 오래된

NativeScript보다 최신


대답 6:

React Native와 NativeScript의 차이점

React Native와 NativeScript는 모두 놀라운 프레임 워크입니다. 두 프레임 워크는 브라우저를 사용하여 Native 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 두 팀에서 수행 한 작업은 훌륭하지만 여기에 NativeScript와 React Native의 차이점이 있습니다.

또한 기본 리 액트 네이티브 인터뷰 질문을 읽으십시오

네이티브 스크립트

네이티브 반응

반응이 좋고 도움이되는 커뮤니티.

반응이 좋고 도움이되는 커뮤니티.

'실제'생산 사용량 없음

입증 된 생산 사용량.

소규모 회사에서 유지 관리합니다.

거대한 회사에서 유지 관리합니다.

덜 인기

인기 있는.

리 액트 네이티브보다 오래된

NativeScript보다 최신


대답 7:

React Native와 NativeScript의 차이점

React Native와 NativeScript는 모두 놀라운 프레임 워크입니다. 두 프레임 워크는 브라우저를 사용하여 Native 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 두 팀에서 수행 한 작업은 훌륭하지만 여기에 NativeScript와 React Native의 차이점이 있습니다.

또한 기본 리 액트 네이티브 인터뷰 질문을 읽으십시오

네이티브 스크립트

네이티브 반응

반응이 좋고 도움이되는 커뮤니티.

반응이 좋고 도움이되는 커뮤니티.

'실제'생산 사용량 없음

입증 된 생산 사용량.

소규모 회사에서 유지 관리합니다.

거대한 회사에서 유지 관리합니다.

덜 인기

인기 있는.

리 액트 네이티브보다 오래된

NativeScript보다 최신


대답 8:

React Native와 NativeScript의 차이점

React Native와 NativeScript는 모두 놀라운 프레임 워크입니다. 두 프레임 워크는 브라우저를 사용하여 Native 앱으로 패키지하지 않는 차세대 크로스 플랫폼 모바일 프레임 워크의 일부입니다. 두 팀에서 수행 한 작업은 훌륭하지만 여기에 NativeScript와 React Native의 차이점이 있습니다.

또한 기본 리 액트 네이티브 인터뷰 질문을 읽으십시오

네이티브 스크립트

네이티브 반응

반응이 좋고 도움이되는 커뮤니티.

반응이 좋고 도움이되는 커뮤니티.

'실제'생산 사용량 없음

입증 된 생산 사용량.

소규모 회사에서 유지 관리합니다.

거대한 회사에서 유지 관리합니다.

덜 인기

인기 있는.

리 액트 네이티브보다 오래된

NativeScript보다 최신