Flutter는 ios, android, windows 등등 거의 모든 환경에서 실행 가능하다.
어떻게 이게 되는 걸까?
nomadcoders의 강의와 flutter 공식 문서를 기초 내용으로 할 것이다.
공식문서 출처(Flutter architectural overview): https://docs.flutter.dev/resources/architectural-overview
- 네이티브 앱 개발을 할 경우(Swift로 iOS, Java로 안드로이드)
- 운영체제와 직접적으로 대화.
- 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.
- The layer model: The pieces from which Flutter is constructed.
- Reactive user interfaces: A core concept for Flutter user interface development.
- An introduction to widgets: The fundamental building blocks of Flutter user interfaces.
- The rendering process: How Flutter turns UI code into pixels.
- An overview of the platform embedders: The code that lets mobile and desktop OSes execute Flutter apps.
- Integrating Flutter with other code: Information about different techniques available to Flutter apps.
- 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 |