How Flutter Works: The Flutter Engine and Embedders #DecodingFlutter
- Flutter 앱은 네이티브 앱의 껍질 안에서 실행되며, Android와 iOS에서 Dart 코드는 컴파일된 blob 형태로 실행됩니다. 📱
- Flutter 생성 시 Xcode 또는 Android Studio 프로젝트와 유사한 네이티브 프로젝트가 생성되며, Flutter 엔진을 실행하는 glue 코드가 추가됩니다. ⚙️
- Flutter 엔진은 C++로 작성되었으며, Flutter 프레임워크와 호스트 플랫폼 간의 통신을 담당하고, 그래픽 렌더링 작업을 수행합니다. 🎨
- Flutter 엔진은 UI 스레드(Dart 코드 실행)와 래스터 스레드(페인팅 명령을 픽셀로 변환)라는 두 개의 스레드를 시작합니다. 🧵
- 플랫폼 채널을 통해 Dart 코드에서 네이티브 코드를 호출하거나, 네이티브 코드에서 Dart 코드를 호출할 수 있습니다. 📞
- Flutter 개발자는 플랫폼 채널과 Pigeon 패키지를 사용하여 모든 네이티브 API에 접근할 수 있습니다. 🔑