플러터란?

그런데 왜 플러터를 프레임워크라고 부르냐면 플러터에 오로지 라이브러리만 있는게 아니기 때문이다.
HootJem's avatar
Sep 26, 2024
플러터란?
Dart 언어는 Type을 지원하는 언어로 Type 추론을 지원한다.
Dart를 포함한 대부분의 언어는 프레임워크나 라이브러리 지원에 따라 서버 구현이 가능하다. (프레임워크, 라이브러리 유무에 따라 난이도가 달라질 뿐)
 
Fuchsia는 구글의 새로운 운영체제로, 다양한 기기에서 실행되는 크로스 플랫폼 환경을 제공하고자 한다. 하지만 초기에는 shell 기반으로 개발하는 것이 복잡하고 어려웠다. 편의성을 위해 Dart 를 사용하여 Ui Lib (ui 라이브러리) 를 만들었는데 이게 바로 플러터.
notion image
그런데 왜 플러터를 프레임워크라고 부르냐면 플러터에 오로지 라이브러리만 있는게 아니기 때문이다.
플러터가 해야 하는 역할은 각 OS 에 맞게 컴파일, 바인딩 하는 것. 그림을 그리는 것이다(Skia 가 해준다)
 
Skia 란? 그래픽 엔진이다. 플루터는 Skia 엔진을 사용하여 그린 그림을 그대로 앱에 직접 그림을 그린다.
따라서 플러터는 ui lib frameWork (화면 그리는 프레임워크) 라고 할 수 있다.
 
즉, 플러터에서 그리면 skia 가 운영체제를 무시하고 바로 HW 단에서 그림을 그린다. (= Aot, ahead of time) 컴파일 방식이 Aot 임
 
개발모드에서는 핫리로드를 지원하여 저장하면 바로바로 반영이 된다. 이는 Aot 와는 다르게 JIT(=Just in time)를 지원하기 때문이다. Dart 가상머신을 사용하는 것(VM), 다트 가상머신이 현재 OS를 확인하고 그것에 맞에 컴파일을 하는 역할을 한다. 달라진 한줄만 컴파일 한다. (자바는 일단 전체 컴파일함 .class 파일로 바뀜 → AOT, 그다음 Jvm 에 던지면 한줄 한줄 실행함. → .class 는 컴퓨터가 아니라 자바가 해석할 수 있는 언어. 따라서 자바는 하이브리드 언어임)
 
앱스토어에 뭐 올리면 목적코드를 올리게됨 만약 수정사항 있음녀 변경부분만 바뀌는게 안이라 전체를 넣어야함
 
Share article

[HootJem] 개발 기록 블로그