React Native를 만들기위한 소프트웨어 조건은 reactJS만이 필요한것이 아니다. 모바일 앱을 만들기 위해서는 앱을 제작하는 모든 소프트웨어를 가지고 있어야 하기 때문이다.

안드로이드 앱을 만들경우 안드로이드 SDK를 설치하고 JAVA 및 시뮬레이터 등 설치해야할 소프트웨어와, 애플 앱을 만들경우 XCode와 시뮬레이터을 설치해야한다. 하지만 이러한 개발 환경을 갖추지 않고도 native을 개발하여 모바일로 바로 확인할 수 있는 테스트 소프트웨어가 따로 개발되어 있어 그것으로 개발진행을 하여도 된다.

<aside> 💡 React Native는 JS만으로 개발할 수 없다는 것이다.

</aside>


React Native에서 우리가 개발한 JS는 그닥 중요한 요소가 아니다. Native를 개발하면서 모바일과 native간에 통신을 가능하게하는 인프라시설이 가장 중요한 요소이다.

f630e145c1ffbc96df47f96bd6347b80.png

Native는 Shell과 비슷한 역할을 하는거라 볼 수 있는데, 개발한 JS코드를 native가 모바일 운영체제와 통신해서 앱이 동작하게 만드는 것이다. 그래서 그러한 운영체제와 통신할 수 있는 인프라가 ADK와 IDK같은 개발툴에서 이루어진다.

위와같이 native를 개발하기 위한 모든 시스템은 ADK와 IDK가 준비하고 있기에 우리는 JS만 개발하면 되는것이다.

EXPO

Expo는 native 플랫폼 툴이 없어도 JS코드를 바로 모바일에서 확인할 수 있게 도와주는 프로그램이다.(테스트 프로그램이다) 그리고 expo를 아래와 같이 cli명령어를 입력하여 설치하기만 하면 JS만으로 모바일 앱을 만드는데 필요한 프로그램이 설치된다.

npm install --global expo-cli

<aside> 💡 MacOS사용자라면 Watchman이란 프로그램을 같이 설치해 주어야 한다.

</aside>

PC에 expo설치를 맏치면 아이폰이나 안드로이드폰 스토어로가서 expo앱을 다운로드 받는다.

Native를 접하지 않는 일반적인 상황에서 native를 생각할때 모바일 안에 있는 브라우저라고 생각들 한다. 하지만 native는 브라우저환경 위에서 돌아가는것이 아니라 진짜 앱을 만드는 프레임워크이기 때문에 시뮬레이터나 다른 개발툴이 필요한것이다.

Native는 일종의 컴파일러과 같은것이다. 개발자가 구현한 JS를 OS환경에 맞추어 JAVA나 Xcode로 변환하여 앱을 만들어 준다.