Flutter 는 Google에서 출시하고 오픈 소스로 제공하는 크로스 플랫폼 개발 프레임워크이며 Dart 언어를 통해 개발이 가능합니다.
아래에서는 플러터 기술 전체의 주요 기능을 소개합니다.
Flutter 자체 드로우 엔진을 활용해 성능, IOS/Android에서 일관성있는 UI 두가지를 보장합니다.
Flutter의 하위 레이어는 Skia를 2D 렌더링 엔진으로 사용하며 Skia는 Google의 2D 그래픽 처리 기능 라이브러리로 글꼴, 좌표 변환 및 비트맵을 포함하여 모두 효율적이고 간결한 성능을 제공합니다. Skia는 크로스 플랫폼이며 매우 친숙한 API를 제공합니다.현재 Google Chrome 브라우저와 Android 모두 Skia를 2D 드로잉 엔진으로 사용합니다.
높은 개발 효율성
고성능
Flutter는 매끄럽고 충실도가 높은 UI 경험을 제공하도록 설계되었습니다. 이를 달성하기 위해 Flutter는 각 애니메이션 프레임에서 많은 코드를 실행할 수 있어야 합니다. 이는 프레임을 떨어뜨리는 주기적인 일시정지 없이 고성능을 제공하는 언어를 의미하며 Dart는 AOT를 지원하며 현시점에서 JavaScript보다 더 잘할 수 있습니다.
빠른 메모리 할당
기능적 스트림을 사용하므로 기본 메모리 할당자에 크게 의존합니다. 따라서 사소한 작업을 효율적으로 처리하는 메모리 할당자를 갖는 것이 중요할 것이며 Flutter는 이 기능이 없는 언어에서 효율적으로 작동하지 않을것 입니다.
null 세이프티
정적 타입을 통해 안정성있는 개발을 지원합니다.(정적 타입의 경우 컴파일시 예기치 않은(타입) 에러 부분을 미리 감지할 수 있습니다.)
Dart Community
플러터 프레임워크 구조는 프레임워크,엔진,임베딩 3구조로 나눌수 있으며 해당 내용에 대해 간략히 소개하겠습니다.
Skia 엔진 , Dart 런타임, 텍스트 조판 엔진 등 주로 C++로 구현되어 있으며, 코드가 dart:ui 라이브러리 호출은 엔진 레이어로 이동한 다음 실제 드로잉 및 디스플레이를 구현합니다
Embedder, 임베딩 레이어. Flutter의 최종 렌더링 및 상호 작용은 해당 플랫폼의 운영 체제 API에 따라 달라지며 임베딩 레이어는 주로 특정 플랫폼에 Flutter 엔진을 설치하는 역할을 합니다.
Android - Java, C++
iOS,MacOS - Objective-C Objective-C++
Windows,Linux : C++
Flutter 코드는 임베딩 레이어를 통해 모듈방식으로 기존 앱에 통합하거나 앱 본체로 사용할 수 있습니다.