반응형

[Flutter] 4

[Flutter] 렌더링 과정

일반적인 크로스 플랫폼 프레임워크는 안드로이드, IOS의 UI 라이브러리에 추상 계층을 만듭니다. 이 추상 계층은 UI표현을 위해 안드로이드와 IOS 각각의 시스템 라이브러리와 상호작용을 하는데, 이 때 상당한 오버헤드가 발생합니다. 플러터는 자체 고유의 위젯 세트를 사용하여 이러한 추상화를 최소화하고 있습니다. 또 엔진에 Skia(C/C++로 작성된 그래픽 엔진)의 복사본을 포함하고 있어 디바이스 OS의 버전이 낮아도 앱이 최신 성능을 낼 수 있게 해줍니다. 플러터 엔진이 시작되면 플러터 엔진은 GPU 하드웨어가 생성하는 VSync 신호를 받고, 위의 파이프라인과 같이 렌더링할 UI 스레드를 구동합니다. 1. UI Thread : 1~5단계를 수행합니다. 1) Animate : widget state ..

[Flutter] 2023.05.01

[Flutter] Tree 구조와 Widget

플러터에는 화면을 구성하는 3개의 트리 구조가 있습니다. 위젯 트리(Widget Tree)는 코드를 작성하여 화면에 그려지는 객체의 구조이고, 플러터 프레임워크가 화면을 만들 때 엘리먼트 트리(Element Tree), 렌더 트리(Render Tree)가 만들어집니다. 퍼포먼스 최적화와 화면 렌더링 속도를 위해 엘리멘트 트리와 렌더 트리가 별도로 존재합니다. 플러터는 네이티브 앱 수준의 성능을 목표로 하기 때문에 최적의 알고리즘으로 화면에 변화가 있는 부분만 다시 렌더링해서 반영할 수 있도록 설계되어 있습니다. 1) 위젯 트리(Widget Tree) 위젯 자체가 실제 화면에 출력되는 대상은 아니고, 프레임워크에서 뷰 설명을 보고 위젯트리를 참조해 실제 화면에 출력할 객체들을 별도 트리 구조로 만듭니다. ..

[Flutter] 2023.04.10

[Flutter] 프로젝트 시작하기 (macOS)

1. Flutter SDK 설치 아래 링크에 들어가서 Flutter SDK를 설치해줍니다. https://docs.flutter.dev/development/tools/sdk/releases?tab=macos Flutter SDK releases All current Flutter SDK releases, stable, beta, and master. docs.flutter.dev Stable channel (macOS) 에서 최신버전을 다운받았는데, 같은 버전이 2개(x64, arm64) 있어서 어떤걸 다운받아야 할지 모르겠을 때는 터미널에 다음과 같이 입력해주면 됩니다. uname -p 이제 터미널에 Flutter SDK 경로를 입력해주어야 합니다. 아래 Update your path에 나온대로 수행..

[Flutter] 2023.04.09

[Flutter] 에러 해결(Warning: dart on your path resolves to~)

플러터를 다운받은 후, 터미널에 flutter doctor를 쳐보니 다음과 같은 경고 메시지가 떴습니다. ! Warning: `dart` on your path resolves to /(dart의 경로), which is not inside your current Flutter SDK checkout at /(flutter 경로). Consider adding /(flutter 경로)/bin to the front of your path. 플러터는 자체 버전의 dart와 패키지로 함께 제공되어서 다트를 따로 설치할 필요가 없다고 합니다. 터미널에 다음과 같이 입력해서 dart를 uninstall해주면 경고 메시지가 사라지는 것을 확인할 수 있습니다. brew uninstall dart

[Flutter] 2023.04.08
반응형