플러터 아키텍처
앱 개발은 Dart 언어로 개발된 프레임워크에서 제공하는 다양한 API를 이용한다.
이렇게 개발한 앱을 플러터 엔진이 실행하는데 엔진은 대부분 C++로 작성되어 있다.
엔진이 제공하는 기능 가운데 플랫폼 채널은 각 플랫폼의 네이티브 코드와 연동하는 방법을 제공한다.
플러터는 애플리케이션의 화면을 스키아 그래픽 엔진으로 직접 출력한다.
플러터로 개발한 애플리케이션을 어느 플랫폼에서 실행하든 프레임워크와 엔진 부분은 같으므로 모든 플랫폼에서 동작하는 애플리케이션을 똑같은 코드로 작성할 수 있다.
각 플랫폼마다 어느정도 차이가 각 플랫폼에 맞게 실행되도록 하는 역할이 임베더이다.
임베더는 플랫폼에 종속된 부분이다. 안드로이드 용 임베더는 자바와 C++로, iOS와 macOS 용은 오브젝티브-C 나 C++로, 윈도우와 리눅스용은 C++로 작성되었다.
플러터 특징
1. 크로스 플랫폼 프레임워크 이다.
2. Dart 언어로 개발한다.
3. 뛰어난 성능과 강력한 애니메이션 기법을 제공한다.
플러터로 개발한 앱은 네이티브 앱의 성능만큼 뛰어나다.
플러터는 화면과 사용자 이벤트 처리를 웹 앱 처럼 브라우저에 맡기지 않고, 리액트 네이티브 처럼 네이티브 코드와 연동하지 않는다.
플러터는 화면을 출력할 때 플러터 엔진에서 스키아 그래픽 엔진을 이용해 직접 렌더링 한다.
그만큼 화면 렌더링 속도가 빠르고 따라서 자연스럽고 강력한 애니메이션을 구현 할 수 있다.
4. 모든 플랫폼에 똑같은 UI 를 제공할 수 있다.
리액트 네이티브는 플랫폼 별 네이티브 기능과 연동하므로 스타일이 서로 다른 UI를 출력한다. 그러나 플러터는 네이티브와 연동하지 않고 스키아 엔진을 이용해 플러터에서 화면을 직접 출력하고 사용자 이벤트를 처리한다. 따라서 성능이 뛰어날 뿐 아니라 모든 플랫폼에서 똑같은 화면을 제공할 수 있다. 물론 각 플랫폼의 네이티브 앱 스타일로 화면을 구성할 수도 있다.
5. 네이티브 기능과 최소한으로만 연동 한다.
네이티브와 연동이 많으면 네이티브가 변경됐을 때 그만큼 앱을 자주 업데이트 해야 하는 번거로움이 있어 플러터는 네이티브 기능과 최소한으로만 연동한다.(플러터 공식 매뉴얼)
http://www.yes24.com/Product/Goods/117206541
'# 02 > Flutter' 카테고리의 다른 글
[Flutter] StatefulWidget 의 State (0) | 2023.03.12 |
---|---|
[Flutter] 위젯 트리 (0) | 2023.03.12 |
[Flutter] 크로스 플랫폼 앱 개발과 플러터 (0) | 2023.03.05 |
[Flutter] 플러터 아키텍처! (0) | 2023.02.02 |
[Flutter] 렌더링 원리 (0) | 2023.02.02 |