React Native
는 모바일 개발에 사용되는 프레임워크입니다.
사실 모바일 앱 개발을 하기 위해선 Android
는 kotlin 혹은 java로 ios
는 swift 혹은 objective-c 로 개발을 해야 합니다.
그러나 Facebook에서 기존에 사용하던 React를 모바일에 사용하면 어떨까 하는 고민을 하다가 React Native를 개발했습니다.
<aside> 💡 React Native로 모바일을 개발한다는 것은?
</aside>
네이티브
android, ios 개발을 별도로 진행하는 것을 의미합니다.
android : Kotlin, Java
ios : swift, objective-c
하이브리드 앱
android, ios에서는 기본적으로 웹뷰
라고 해서 브라우저 기능을 탑재하고 있습니다. 웹뷰를 사용하면 html, css, js를 읽을 수 있습니다. 하이브리드 앱은 이 원리를 이용해서 웹 기반의 HTML, CSS, JS 개발을 통해 모바일 개발을 하는 기술을 의미합니다. 하이브리드 앱을 이용하면 web, android, ios 등을 동시에 개발할 수 있습니다.
대표적인 하이브리드 앱으로 ionic이 있습니다.
크로스플랫폼
대표적인 크로스플랫폼 프레임워크인 REACT NATIVE
하이브리드 앱과 유사하게 동시에 다양한 OS 앱 개발이 가능합니다. 그러나 웹뷰를 기반으로 하지 않고 Native API와 직접 통신한다는 차이가 있습니다.
대표적인 크로스 플랫폼 앱으로 React Native와 Flutter가 있습니다.
안드로이드와 ios에서는 기본적으로 javascript를 실행시킬 수 있습니다.
React Native 프레임워크에는 Bridge
가 들어있어 javascript와 Native API가 통신을 할 수 있도록 도와줍니다. 실제로 React Native로 개발한 화면에서 보이는 컴포넌트는 전부 Native의 UI를 가져온거죠!
이 외 네트워크 통신이나 계산 같은 비즈니스 로직은 javascript Thread를 통해 실행됩니다