2021년 현재 안드로이드 앱은 약 287만 개, iOS는 196만 개가 출시되어있습니다. 현시점에서 가장 인기 있는 모바일 앱 개발 플랫폼인 Flutter, React Native, Xamarin 3가지 플랫폼의 특징 및 장단점을 비교해보겠습니다.


비교할 3가지 모바일앱 개발 플랫폼은 각각 구글, 페이스북, 마이크로소프트라는 IT 기업에서 지원하는 기술입니다. 2022년 현시점에서 구글 트렌드를 기준으로 가장 인기 있는 순서는 다음과 같습니다.

모바일앱개발-플랫폼-트렌드-비교이미지
모바일앱개발-플랫폼-트렌드


이어서 각 플랫폼이 가지는 특징과 장단점을 자세히 알아보겠습니다.

모바일 앱 개발 플랫폼 비교

비 교

장 점

단 점

Flutter

- 빠른 UI 동작성능

- 효과적인 반응형 레이아웃

- Dart 언어 학습필요

- 구글틱한 UI (커스터마이즈 필요)

React Native

- 빌드 및 배포최적화

- Java Script 사용

- 타 개발 플래폼 대비 상대적으로 느린 동작속도

Xamarin

- iOS, Android, Windows 동시개발가능

- .Net 기반 C# 개발경험 활용가능

- 한국어 개발레퍼런스가 적다

- 최종바이너리 사이즈가 크다


1. Flutter (플러터)

최근에 가장 인기 있는 모바일 앱 환경입니다. 구글에서 개발한 Dart 언어를 이용해야 하는 점은 새로운 언어를 배워야 한다는 단점이 될 수도 있지만, 이것만 알면 HTML, CSS, JS 등에 대한 지식이 없이도 개발 대응이 가능하다는 점에서 장점이 되기도 합니다.

하지만 Dart 자체가 JS와 문법적인 유사점이 많아 기존에 모바일 앱 개발 경험이 있는 경우, 큰 어려움 없이 적응할 수 있으므로 부담을 느낄 필요는 없습니다.

장점

  • 빠른 성능과 반응형 레이아웃 등의 장점을 통해 초보자라도 완성도 높아 보이는 앱을 만들 수 있습니다. 소프트웨어는 사실 비주얼적인 첫인상이 매우 중요하기 때문입니다.
  • RN (React Native) 같은 다른 플랫폼에 비해 Skia Graphic Engine과 같은 그래픽 라이브러리를 통해 더욱 빠른 UI 구동 및 제어가 가능합니다.

단점

  • 통합 개발환경이지만 기본 UI 디자인은 구글틱한 느낌이 강합니다. iOS와 같은 통합 UI 디자인을 적용하기 위해서는 소위 구글 물을 빼기 위한 UI의 커스터마이즈가 필수적입니다.
  • Dart라는 생소한 언어를 학습해야 합니다. 하지만 타 개발 플랫폼의 경험이 있다면 비슷한 용어와 개념을 이용하므로 빠르게 익힐 수 있습니다.

2. React Native

페이스북에서 개발한 모바일 앱 개발 플랫폼으로 범용적인 JavaScript 언어를 이용해서 Android 및 iOS의 통합된 UI를 개발할 수 있습니다. 자바스크립트를 main 언어로 사용하여 이에 익숙한 개발자의 작업 효율성을 높일 수 있습니다.

또한 개발 코드의 변경 사항을 바로 확인해볼 수 있으며, OTA 실시간 배포기능으로 버그수정을 실시간으로 앱에 적용할 수 있는 장점이 있습니다.

장점

  • Live reload, Hot reload 같은 기능을 통해 코드 변경 내용에 대해 최적화된 빌드 및 변경 사항의 확인이 가능합니다.
  • OTA 실시간 배포기능으로 앱 실행 시 언제나 최신 JS를 다운로드하고 실행하기 때문에 별도의 심사 없이 최신 수정사항에 대한 배포가 용이하다는 장점이 있습니다.

단점

  • Native 개발환경보다는 느리다는 것이 가장 큰 단점입니다. 실제 개발 시 이를 체감할 정도의 부하가 큰 특성이 앱이 아닌 경우 적용이 용이하며, 사실 대부분의 앱에서는 체감할 정도의 속도 저하는 아니라고 알려져 있습니다.

3. Xamarin

마이크로소프트에서 개발한 오픈소스 모바일 앱 개발플랫폼입니다. .Net 기반의 C# 언어를 사용했으며, 안드로이드 iOS 간 약 80~90%의 코드를 공유할 수 있습니다. 동일 코드로 윈도 앱까지 함께 개발할 수 있는 점에서 유리합니다.

장점

  • iOS, Android, Windows UWP(Universal Windows Application) 앱을 동시에 개발할 수 있습니다. C#을 이용한 XAML 및 .Net 기반 개발 경험이 있으면 생산성을 높일 수 있다.
  • MS의 Visual Studio 무료 툴을 이용해 개발환경 구축 및 사용이 용이합니다.

단점

  • Xamarin 개발 시 참고할 수 있는 한국어로 되어있는 개발 레퍼런스가 많지 않습니다.
  • 앱 빌드 시 Xamarin 플랫폼이 함께 빌드되어 최종 바이너리 사이즈가 크다.

맺음말

개인이 취미로 하는 개발인 경우 최신 트렌드를 쫓아 이용해보는 것도 좋다고 생각합니다. 하지만 기업에서 대규모 리소스를 투입하는 경우라면, 현재 개발인력의 백그라운드에 따른 리닝커브 및 향후 유지보수 비용까지 고려해야 합니다.