본문 바로가기
Dart/Flutter

[Flutter] 임펠러(Impeller) 사용해보기

by 검은냥냥이 2023. 1. 31.
Kaleidoscopia는 임펠러로 그래픽 성능을 개선한 예를 보여주는 데모

임펠러는 Flutter의 새로운 렌더링 런타임으로 Flutter 3.7 Impeller는 Flutter 프레임워크의 최신 버전에서 추가된 기술입니다. Impeller는 성능, 그래픽 품질, 호환성, 개발 효율 등을 개선하는 기술로, 플러터 개발자가 더 높은 효율성으로 애플리케이션을 개발할 수 있도록 돕습니다.

사전 컴파일된 셰이더를 사용하여 보다 예측 가능한 성능을 제공하며, 실행 시 셰이더 컴파일로 인한 프레임 손실을 완화합니다. iOS와 Android의 최신 로우 레벨 API인 Metal과 Vulkan의 프리미티브를 활용합니다. 또한 동시성을 효과적으로 활용하여 스레드에 단일 프레임 워크로드를 분산합니다.

 

셰이더 활용

 

트위터에서 즐기는 Renan 💙🦄

“This is a #flutter app Managed to make some glowing stuff with #flutter while learning shaders this weekend. It animates on scroll and gyroscope events. The shader is sampled with the actual canvas of a widget sub tree; see below it applied to an "Edita

twitter.com

 

임펠러(Impeller) 장점

  • ` Impeller` 기술은 높은 FPS와 낮은 렌더링 대기 시간을 제공하여 개선된 성능을 제공합니다.
  • ` Impeller`은 높은 품질의 그래픽을 제공하며, 더 많은 픽셀을 처리할 수 있습니다.
  • ` Impeller` 기술은 더 많은 디바이스에서 호환되며, 플러터 애플리케이션이 더 많은 플랫폼에서 실행될 수 있습니다.
  • ` Impeller`는 개발자가 더 높은 효율성으로 애플리케이션을 개발할 수 있도록 돕습니다.

 

임펠러 적용하기

임펠러를 적용하기에 앞서 AOS는 아직 프리뷰를 지원하지 않기 때문에, IOS만 가능합니다.

 

IOS

`Info.plist`

권한 추가

<key>FLTEnableImpeller</key>
<true/>

 

AOS

`AndroidManifest.xml`

권한 추가

<!-- 3.7 임펠러 -->
<meta-data
    android:name="io.flutter.embedding.android.EnableImpeller"
    android:value="true" />

 

Args 추가

`vscode/launch.json`

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "base",
      "request": "launch",
      "type": "dart",
      "args": [
		"--dart-define=flutter.inspector.debugDescription=false",
        "--dart-define=flutter.jank=none"
        // 현재 IOS만 사용가능
        // "--enable-impeller"
      ]
    },
    {
      "name": "base (profile mode)",
      "request": "launch",
      "type": "dart",
      "flutterMode": "profile"
    },
    {
      "name": "base (release mode)",
      "request": "launch",
      "type": "dart",
      "flutterMode": "release"
    }
  ]
}
728x90
사업자 정보 표시
레플라 | 홍대기 | 경기도 부천시 부일로 519 화신오피스텔 1404호 | 사업자 등록번호 : 726-04-01977 | TEL : 070-8800-6071 | Mail : support@reafla.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기