Flutter 소개

잠만보·2024년 7월 28일

플러터란?

구글이 구현한 크로스 플랫폼 프레임워크 이다.

초기에 안드로이드 iOS 앱만 지원했지만 지금은 웹사이트 macOS, 윈도우, 리눅스 데스트톱 앱 까지 지원한다.

크로스 플랫폼이므로 하나의 소스코드로 많은 플랫폼에 대응할 수 있어서 개발비용을 아끼고 관리부담을 줄일 수 있다.

기존의 크로스 플랫폼 프레임워크들은 코드를 네이티브 프레임워크 코드로 전환하는 데 중점을 두었다.

하지만 플러터는 스키아(Skia) 엔진이라는 2D 렌더링 엔진과 직접 통신을 하기 때문에 스키아 엔진이 실행되는 플랫폼에서는 똑같은 API 를 사용해서 프로그래밍을 할 수 있다는 장점이 있다.

이러한 점 덕분에 플러터 프레임워크는 어떤 플랫폼이든 일관된 UI를 제공할 수 있다.
그래서 다른 크로스 플랫폼 프레임워크보다 플랫폼별 UI 디버깅 부담이 현저히 적다.

플러터가 스키아 엔진을 사용했을 때, 어떤 장점이 있는 것일까?

  • 대부분의 크로스 플랫폼 앱 개발 프레임워크들은 웹뷰를 사용하거나 각 플랫폼의 UI 라이브러리들을 사용한다.
  • 하지만 플러터는 웹뷰를 사용하지 않고 직접 스키아 엔진을 사용해 화면에 UI를 렌더링한다.
    _ 이때, 새로 필요한 위젯들만 렌더링 하기 때문에 다른 크로스플랫폼 앱 개발 프레임워크보다 상당히 높은(빠른) 퍼포먼스를 선보인다.

플러터의 구조

플러터 프레임워크는 세개의 계층으로 나누어져 있다.
아래에서 부터 임베더, 엔진, 프레임워크 로 되어있다.

임베더 계층

하드웨어와 가장 가까운 로우 레벨의 계층이다.

플러터가 현재 지원하는 6개 플랫폼의 네이티브 플랫폼과 직접 통신을 하고 운영체제의 자체적 기능을 모듈화해둔 계층이다.

이 모듈들은 각 플랫폼의 네이티브 언어로 작성되어 있다.

엔진 계층

대부분 C++ 로 작성되어 있으며 플러터 코어 API 와 스키아 그래픽 엔진, 파일시스템, 네트워크 기능 등이 정의되어 있다.

프레임워크 계층

플러터 프레임워크를 사용하는 데 필수적인 위젯, 애니메이션, 머티리얼 패키지, 쿠퍼티노 패키지 등이 있다.

profile
아프지 말자 - (잘못된 정보, 수정 사항 있으면 언제든지 알려주시면 감사하겠습니다!)

0개의 댓글