Waylog Blog

React Native vs Flutter: 크로스 플랫폼 승자는?

Mobile

iOS와 Android를 한 번에 만드는 크로스 플랫폼 개발. 양대 산맥인 React Native(RN)와 Flutter를 비교해 봅니다.

1. 언어

  • RN (Meta): JavaScript (TypeScript). 웹 개발자가 넘어가기 쉽습니다. 생태계가 깡패입니다(npm).
  • Flutter (Google): Dart. 언어를 새로 배워야 하지만, Java/C#과 비슷해서 금방 배웁니다.

2. 성능 및 아키텍처

  • RN: Bridge 방식. JS 코드와 네이티브 모듈이 다리를 통해 통신합니다. 이 통신 비용 때문에 애니메이션이 많으면 느려질 수 있습니다(물론 JSI, Hermes 엔진으로 많이 개선됨).
  • Flutter: Skia 엔진이 자체적으로 그림을 다 그립니다. 네이티브 컴포넌트를 쓰는 게 아니라, 픽셀 단위로 직접 렌더링 하므로 성능이 네이티브급에 가깝고 OS 버전을 덜 탑니다.

3. UI 컴포넌트

  • RN: OS의 네이티브 UI를 호출합니다. 그래서 아이폰에선 아이폰스럽게, 갤럭시에선 갤럭시스럽게 보입니다. 업데이트되면 UI가 바뀔 수 있습니다.
  • Flutter: 머터리얼(Material) & 쿠퍼티노(Cupertino) 위젯을 자체 제공합니다. OS 업데이트와 상관없이 항상 똑같은 UI를 보장합니다.

결론

기존 웹 인력이 많고 앱 업데이트(Code Push)가 중요하다면 RN, 최고의 성능과 일관된 디자인이 중요하다면 Flutter를 추천합니다.