최근 1개년 크로스 플랫폼 프레임워크 구글 트렌드

플러터

리액트네이티브

자마린

MAUI

코틀린 멀티플랫폼

세계 기준 구글 트렌드

한국 기준 구글 트렌드

https://apption.co/embeds/114aab0e

https://apption.co/embeds/cdc01114

<aside> 💡 명실상부 크로스 플랫폼 개발의 선두주자가 된 프레임워크

</aside>

플러터와 리액트네이티브의 장단점

플러터 리액트네이티브
지원언어 다트 자바스크립트
장점 네이티브 개발자 친화적 환경
네이티브 수준의 성능
언어와 프레임워크의 공급자와 수요자가 일치함 (구글이 개발)
기능 필요시 제약없이 언어와 프레임워크간의 상호적 발전 가능 오픈소스 라이브러리 다수
웹 개발언어와의 연계
커뮤니티-드리븐 발전 환경
단점 비교적 최근 시장 진입
사실상 플러터만을 위한 언어 습득
코드푸시 미지원
SEO 미지원 (웹 개발시) 기존 네이티브 개발자 진압장벽
병목 현상으로 인한 성능저하
모회사의 부진한 관심

플러터의 성능이 좋은 이유?

  1. 배포(Release mode) 시 AOT를 통해서 각 플랫폼의 네이티브 코드로 컴파일한다.
  2. 디바이스 렌더링을 Skia라는오픈 소스 그래픽 라이브러리에 맡긴다. (곧 Impeller 엔진으로 교체될 예정)

플러터와 리액트네이티브 구조 비교

플러터와 리액트네이티브 구조 비교

  1. 위젯과 채널을 나누어 바로 접근하는 플러터와 달리 RN은 브릿지를 거치므로 병목 현상이 발생한다.

플러터의 구조

플러터 프레임워크는 Framework(Dart), Engine(C/C++), Embedder(Platform-specific) 세 계층으로 나눠져 있다.

이 중 가장 로우 단계인 임베더 계층은 플러터가 지원하는 안드로이드, iOS, 웹, 맥OS, 윈도우, 리눅스 6개의 네이티브 플랫폼과 통신하는 기능을 모듈화한 계층이며, 각 플랫폼의 네이티브 언어로 작성되어 있다.

구조는 다음과 같다

Untitled

플러터를 써야 하는 이유?

  1. Hot Reload를 통한 쉽고 빠른 개발
    1. 코드를 수정한 후 저장하면 빌드-단말기 설치하는 과정을 생략하고 수정 내용이 즉시 반영되므로 개발 시간을 축소할 수 있다. 특히 UI 구성에 유용하다.
    2. 단, Release mode (AOT 컴파일)이 아닌 Debug mode (JIT 컴파일) 에서만 사용 가능한 기능