React-Native 개념
Post

React-Native 개념

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 폴더 구조에 대한 기본 지식이 필요하다.