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를 추천합니다.