React Native
React-Native란 페이스북이 개발한 오픈소스 모바일 애플리케이션 프레임워크이다.
javascript 하나로 android, ios, web을 대응할 수 있는 크로스플랫폼이다.
리액트의 Component 형태로 작성하면 -> React Native -> Bridge -> ios & Android 순서대로 변환되어 출력된다.
React-Native의 장단점은 모두 크로스 플랫폼이란 점에서 나온다.
장점
- 하나의 코드로 관리 할 수 있다.
- 러닝커브가 높은 React를 사용한다.
- Fast Refresh : 변화를 바로바로 확인할 수 있다.
- 오픈소스 플랫폼
단점
- 일부기능은 Native 접근이 필요하다.
- 오픈소스와 라이브러리 의존도가 높다.
- bridge사용으로 인해 무거운 프로젝트일 경우 android에서 성능이 조금 저하될 수 있다.
- 업데이트가 잦다.
Expo CLI & React Native CLI
React-Native는 두가지의 CLI(Command-Line Interface)로 개발 할 수 있다.
하나는 Expo CLI, 또 다른 하나는 React Native CLI를 이용하는 것이다.
둘 중 선택하는 방법은 구현하고자 하는 프로젝트의 모든 기능이 expo에서 제공될 경우 expo CLI를 사용하면 되고, 그렇지 않을 경우 React Native 사용을 추천한다.
Expo CLI
- 장점
- 기본제공되는 API와 라이브러리가 있어 초반 앱 개발을 단순화해준다.
- Expo Go 어플만 있으면 기기 상관없이 프로젝트의 실행이 가능하다.
- 단점
- 추가적인 네이티브 모듈 사용이 불가능하다.
React Native CLI
- 장점
- 네이티브 모듈 연결이 가능하여 다양한 라이브러리를 사용할 수 있어 자유도가 높다. ex) 인앱결제의 경우 react native cli에서만 사용가능하다.
- 단점
- 기본 제공되는 라이브러리가 적어 필요한 기능이 있으면 직접 설치하여야 한다.
- iphone 출시를 위해서는 Mac 개발이 필수이다.
- Native 폴더 구조에 대한 기본 지식이 필요하다.