React Native
: Facebook에서 만든 오픈소스 프로젝트
: 2015년 3월 공개
: 기존 하이브리드에서 있던 성능문제없이 자바스크립트를 이용해 iOS, Android 개발 가능
: 페이스북, 인스타그램, 디스코드, 스카이프등에서 react native를 사용
1. 장점
- 쉬운 접근성 : 새로운 언어의 배움 없이 JavaScript를 이용해 개발할 수 있다.
- 비용 절감 : iOS, Android를 한번에 개발 가능하다.
- Fast Refresh : 코드 수정에 따른 결과를 바로 확인할 수 있다.
2. 단점
- 네이티브앱과의 성능 차이
: 기존 하이브리드 앱보다는 성능이 좋지만 네이티브만큼 좋지 못하다
: 네이티브에 나온 신규 기능을 지원하지 않으면 사용하기 어렵다.
- 디버깅의 어려움 : 명확히 문제를 알기 어렵다.
3. 동작방식
- Bridge
: JavaScript를 이용해 코드를 작성하는데 ios, android 앱으로 동작이 되게 해주는 것
: Bridge는 JavaScript 스레드에서 정보를 받아 Native 스레드로 전달하는 역할을 한다.(JS와 native 사이 통신을 담당한다.)
- virtual DOM(가상 DOM)
: 가상 DOM을 사용하여 데이터가 변했을 때 화면을 다시 그려준다.
: 데이터가 변경되면 실제 보이는 DOM이 아닌 가상 DOM에 변경이 적용되고, 변화가 일어난 가상 DOM을 기반으로 실제 DOM과 비교해서 실제 DOM에서 변경이 필요한 부분을 확인하고 확인되면 가상 DOM과 동일하게 적용해서 변경된다. 이러한 과정을 통해 화면에 변화가 일어나게 된다.