본문 바로가기
Flutter

[Flutter] 플러터 - Impeller, Skia

by s_hoonee 2024. 1. 21.
반응형

Impeller가 무엇인가요?

Flutter 3.10에서 Impeller는 Skia를 대체하고 iOS의 기본 렌더링 엔진이 되었습니다. 이 변경은 플러터의 초기 버벅거림 문제를 해결하기 위한 노력으로, Impeller는 Skia의 문제를 개선하고 성능을 향상시키는 데 중점을 두었습니다.

Impeller는 플러터 엔진이 동작하는 동안 미리 수행되는 작업을 통해 초기 버벅거림 문제를 완화하는 역할이라고합니다.

https://docs.flutter.dev/perf/impeller

 

Impeller rendering engine

What is Impeller and how to enable it?

docs.flutter.dev

Skia가 무엇인가요?

Skia는 C++로 개발된 2D 그래픽 라이브러리로, OpenGL을 사용하여 렌더링됩니다. Flutter에서는 Skia가 그래픽 엔진으로 활용되는데 Skia를 선택한 이유 중 하나는 OpenGL을 사용하여 모든 운영체제에서 동작할 수 있기 때문입니다.       

-> 플터가 크로스플랫폼이 되는 이유!!           

     

Impeller의 역할 및 동작 원리:

1. 오프라인 컴파일 : Impeller는 오프라인 컴파일러를 통해 일부 코드를 미리 컴파일함

2. 셰이더 촤적화 : 미리 컴파일된 셰이더는 초기화 과정에서 앱 크기나 시작 시간의 문제를 예방하기 위해 특별한 최적화 기술을 활용합니다.

3. Skia 대신 사용 : Impeller는 Skia가 동적으로 생성하는 복잡한 셰이더 대신에 작고 단순한 셰이더 세트를 사용하여 렌더링을 수행합니다.

4. 하드웨어 가속 그래픽 API 활용 : Impeller는 Flutter 엔진의 핵심 부분을 재작성하여 최신 하드웨어 가속 그래픽 API인 Metal 및 Vulkan과 같은 기술을 활용합니다.