🚀Flutter 개요
Cross Flatform Framework중 현재 가장 인기 있는 프레임워크는 구글에서 개발한 Flutter이다.
Cross Flatform Framework란 안드로이드, ios를 하나의 코드베이스로 개발할 수 있는 효율적인 개발 프레임워크인데, 대표적으로 Microsoft의 Xamarin, Meta의 React Native, Google의 Flutter가있다.
Flutter | React Native | Xamarin | |
회사 | Facebook (Meta) | Microsoft | |
개발 언어 | Dart | JavaScript | C# |
출시 년도 | 2017 | 2015 | 2011 |
장점 | 제일 높은 성능, 낮은 진입 장벽, Hot Reload, 수많은 오픈소스 패키지, 한글 및 영어 레퍼런스 | JS언어 기반, 성숙한 프레임워크, Hot Reload | C# 개발자들 친숙함 (이미 자마린의 점유율은 Cordova, Ionic에 밀렸다) |
단점 | 인지도 낮은 Dart언어, React Native에 비해 낮은 성숙도 | 네이티브 브릿지로 인한 병목 현상, jsx 사용 | 너무 낮은 생산성, 레퍼런스 부족, 수많은 단점들 |
Cross Flatform Framework의 장점
- 단기간에 앱을 개발 하고 싶은 경우
- 시장에 변화에 맞춰 빠르게 앱을 수정해야 할 때 (스타트업)
Flutter VS. React Native
이와 같이, 2022년도 현재 크로스 플랫폼 프레임워크 승자는 Flutter라고 볼 수 있다.
장점 1. 제일 높은 성능
React Native
- JS Bridge - JS 모듈과 네이티브 플랫폼간의 다리 역할
- JSX기반 코드들을 네이티브 코드로 컴파일 하여 CPU와 메모리를 많이 갈굼
Flutter
- 구글 자체 개발 언어 Dart 프레임워크 사용
- Dart언어는 Skia 그래픽 라이브러리를 사용, low-level 언어인 C/C_++ 사용
- RN과 다르게 네이티브 플랫폼과 프레임워크 사이의 변환이 JS에 비해 적고 성능이 좋다
React Native는 앱 전체가 자바스크립트로 구동하며, UI 컴포넌트들이 화면에 그려지는 부분은 JS 브릿지를 통해 구현된다. 모든 코드들이 JS로 구동되는 점에서 앱의 성능 저하가 매우 심하다.
Flutter는 다트언어에 내부적으로 skia엔진을 탑재하고 있기 때문에 UI컴포넌트를 렌더링하기 위해 플랫폼에 따로 요청하지 않고 즉시 렌더링 할 수 있다.
skia 엔진의 렌더링 속도가 네이티브와 동일하다고 봐도 무방 할 정도로 렌더링이 빠름, 그리고 JS가 아닌 C++기반으로 작성 되기 때문에, JS의 런타임보단 훨씬 빠르다고 볼 수 있다.
장점 2. Hot Reload
Hot reload
- 앱이 실행되고 있는 상태에서, 앱의 상태를 유지한 채로 변경사항을 적용시켜주는 기능.
npm dev 모드로 웹 빌드 하듯, 고치고 수정만 하면 Hot Reload 된다는 점에서 쾌적한 개발 환경을 제공 해준다.
레퍼런스
'Flutter 개발 > Flutter 개념' 카테고리의 다른 글
[Flutter] State & Widget 살펴보기 (0) | 2022.03.08 |
---|---|
[Flutter] 오픈소스 패키지 사용해보기 (0) | 2022.03.08 |