[Flutter] 플러터 아키텍처 레이어

GH lee·2023년 12월 7일
0

Dart/Flutter

목록 보기
5/12
post-thumbnail

플러터 공식문서를 번역하여 정리한 글입니다.

레이어

목차

  1. 레이어
  2. 반응형 UI
  3. 위젯
  4. 렌더링 프로세스
  5. 플랫폼 채널

레이어

플러터 레이어

임베더

플러터 어플리케이션은 임베더를 통해서 네이티브 어플리케이션과 같은 방식으로 각 플랫폼에 맞게 패키징된다.
우리가 flutter build apk를 실행할때 임베더가 우리의 코드를 apk로 패키징해준다.
그리고 어플리케이션이 os와 상호작용이 필요한 부분을 임베더가 담당해준다.

엔진

플러터의 핵심 API들이 구현되어 있는 부분으로 임펠러 또는 스키아를 통해 그래픽 작업을 수행하고,
임베더를 통해 os와 상호작용이 필요한 기능들을 제공한다.
플러터 엔진은 dart 클래스로 래핑되어 플러터에서 그래픽, 텍스트 렌더링, 입력 등 low-level의 기능들을 사용할 수 있도록
dart:ui로 플러터 프레임워크에 제공된다.
플러터의 textfield 같은 위젯이 dart:ui의 low-level 기능을 추상화하여 제공하는 예시이다.

프레임워크

개발자들은 플러터 프레임워크를 통해 작업을 수행한다.
Foundation에서 Material, Cupertino로 갈수록 추상화 단계가 높아진다.
프레임워크는 상대적으로 작은 부분이며, 개발자들이 사용하는 많은 기능들을 제공한다.
여러가지 위젯과 카메라, 웹뷰, http, 애니메이션 등이 포함된다.

플러터 앱 뜯어보기

플러터 앱

  • Dart App
    개발자가 생성한 어플리케이션

  • Framework
    high-level의 API를 제공

  • Engine
    플러터의 핵심 API를 제공
    Framework에 dart:ui로 API 제공

  • Embedder
    플랫폼에 따른 고유 기능과 서비스 API를 제공

  • Runner
    MainActivity.java, AppDelegate.swift 처럼
    플랫폼에 특화된 코드와 Flutter를 연결하는 부분

profile
Flutter Junior

0개의 댓글