앱 만들기 프로젝트/Flutter

Flutter - 1.3 How Flutter Works

지나가는물리학부생 2024. 10. 17. 21:46
반응형

Flutter는 ios, android, windows 등등 거의 모든 환경에서 실행 가능하다.
어떻게 이게 되는 걸까?

nomadcoders의 강의와 flutter 공식 문서를 기초 내용으로 할 것이다.
공식문서 출처(Flutter architectural overview): https://docs.flutter.dev/resources/architectural-overview

  1. 네이티브 앱 개발을 할 경우(Swift로 iOS, Java로 안드로이드)
    • 운영체제와 직접적으로 대화.
  2. Flutter로 개발하는 경우
    • 운영체제와 직접적으로 소통 X -> ex) 실제 안드로이드 버튼을 만들어내는 기능 X

공식문서에서는...
During development, Flutter apps run in a VM that offers stateful hot reload of changes without needing a full recompile. For release, Flutter apps are compiled directly to machine code, whether Intel x64 or ARM instructions, or to JavaScript if targeting the web.

  1. The layer model: The pieces from which Flutter is constructed.
  2. Reactive user interfaces: A core concept for Flutter user interface development.
  3. An introduction to widgets: The fundamental building blocks of Flutter user interfaces.
  4. The rendering process: How Flutter turns UI code into pixels.
  5. An overview of the platform embedders: The code that lets mobile and desktop OSes execute Flutter apps.
  6. Integrating Flutter with other code: Information about different techniques available to Flutter apps.
  7. Support for the web: Concluding remarks about the characteristics of Flutter in a browser environment.

flutter는 Virtual Machine상에서 가동된다고 한다.
왼쪽의 그림에서 핸드폰은 맨 아래에 있는 'Runner'를 실행한다.
이 Runner는 'Embedder'를 실행한다.

이 Runner와 Embedder는 플랫폼(android, iOS)에 특화된것이라 생각하면 된다.
그리고 Embedder는 'Engine'을 실행한다.(C, C++로 만들어짐)

이제 이 Engine이 'Framework'를 실행하고 이 Framework는 우리가 직접 만든 Dart 앱(flutter)을 실행시킨다.

Engine이 직접 framework가 지시하는대로 그림을 새로 그린다고 생각하면 된다.

따라서, iOS와 Android의 native한 구성 요소들을 사용할 수 없다.
(그래서 최대한 비슷하게 만든게 있긴 하지만, 살짝 다르다.)

반응형

'앱 만들기 프로젝트 > Flutter' 카테고리의 다른 글

Flutter - 3.2 Buttons Section  (0) 2024.10.25
Flutter - 3.1 Developer Tools  (0) 2024.10.24
Flutter - 3.0 Header  (1) 2024.10.23
Flutter - 2.3 Hello World  (7) 2024.10.18
Flutter - 1.4 Flutter vs React Native  (3) 2024.10.17