Study 2주차 :: Flutter 공부하기 (1) - Introduction

김모디·2023년 3월 2일
0

Flutter Study

목록 보기
2/3
post-thumbnail

1. Introduction

[1] Flutter란?

  • 3D, 가상현실 등 안드로이드, ios, web 뿐만 아니라 iot, 게임 등 다양한 걸 만들 수 있다.
  • flutter는 하이브리드 플랫폼처럼 os와 직접 소통하는 게 아니다.
    - 짜여진 코드를 flutter framework가 사용하고, 이를 C, C++로 만들어진 엔진을 통해 어플리케이션의 실제 UI를 렌더링한다. (이러한 점은 unity와 비슷하다.)

[2] Flutter의 작동방식

  • 각 계층은 다른 계층에 영향을 끼칠 수 없다.
  • flutter는 native widget을 사용하지 않는다.
    - 앱에서 실행할때 네이티브 앱들과 화면상에서 다른 부분이 존재한다.
    • ios와 비슷하게 구성하려했지만 실제 운영체제가 아닌 렌더링 엔진에 의해 그려지는 것이다 보니 조금씩 다른 부분이 존재한다. (ios 유저라면 헷갈릴 수 있지만 실제론 렌더링 엔진이란 것을 잊지 말자!)

출처 : https://docs.flutter.dev/resources/architectural-overview

Flutter Framework

: 개발자와 Flutter를 연결한다.

  • dart 언어로 작성되었다.
  • Flutter Framework를 통해 개발자들은 Flutter와 소통할 수 있다.
  • 레이아웃이나 기본 라이브러리가 포함되어있다.

Engine

: 화면을 렌더링하여 보여준다.

  • C, C++로 작성되었다.
  • 새 프레임을 칠해야 할 때마다 합성된 장면을 래스터화하는 역할을 한다.
  • Flutter 애플리케이션을 지원하는 데 필요한 기본 요소를 지원한다.
    - Skia를 통한 그래픽, 텍스트 레이아웃, 파일 및 네트워크 I/O, 접근성 지원, 플러그인 아키텍처, Dart 런타임 및 컴파일 도구 체인 등 저수준의 핵심 API를 제공한다.
  • 코드를 실행하는 하나의 가상 VM과 비슷하다.

Embedder

: 호스트 플랫폼(ios, andorid, web .etc) 상에서 엔진을 가동시킨다.

  • 플랫폼에 적합한 언어로 작성된다. (java, C++ -> Android / Objective-C, Objective-C++ -> iOS, macOS / C++ -> windows, linux)
  • 단순히 캔버스를 렌더링하거나 카메라의 행위를 조작한다.
profile
안녕하세요. 1년차 (실상은 병아리 n개월차) 웹 프론트엔드 개발자입니다. tistory와 oopy를 거쳐 새로운 블로그에 공부한 내용을 기록해보고자 합니다.

0개의 댓글