플러터란 ?
플러터(Flutter)는 구글이 출시한 오픈 소스 크로스 플랫폼 GUI 애플리케이션 프레임워크이다.
안드로이드, iOS, 윈도우즈, 리눅스 및 웹용 애플리케이션과 구글 퓨시아용 앱의 주된 소스코드로 사용된다.[3]
https://ko.wikipedia.org/wiki/%ED%94%8C%EB%9F%AC%ED%84%B0
프레임워크 아키텍처
플러터의 주요 구성 요소는 다음과 같다:
- 다트 플랫폼
- 플러터 엔진(Flutter engine)
- 파운데이션 라이브러리(Foundation library)
- 디자인 특화 위젯(Design-specific widgets)
정리
플러터란?
- cross-platform 프레임워크 ( iOS와 Android, Web 플랫폼 )
- 위젯들을 이용해 Widget tree를 쌓으며 User Interface를 코드로 구현하는 환경을 제공한다.
- JIT(Just-In-Time), AOT(Ahead-Of-Time) 두 가지 컴파일러를 모두 사용 가능
JIT은 런타임 전이 아니라 필요할 때에 코드를 컴파일
JIT 컴파일러는 메소드가 호출될 때마다 바이트코드를 해석하는 대신,
실행중인 기계(컴퓨터)의 바이트코드를
기계어 명령어로 컴파일 한 다음 객체코드를 대신 호출합니다.
JIT이 모든 코드를 처음에 기계어로 변환하는 것은 아니고
필요한(바로 사용되는) 것들만 기계어로 변환합니다.
AOT란 ahead-of-time의 약자로
고수준의 언어들(C 또는 C++) 또는 자바 바이트코드와 같은 중간 표현을
시스템에 맞는 기계어로 변환하는 방식을 말합니다.
시스템에 맞게 컴퓨터가 바로 실행할 수 있는 기계어로 미리 컴파일
한다는 뜻이고 이로 인해 브라우저에서 더 빠른 렌더링을 제공합니다.
JIT AOT 차이점?
1. JIT(just-in-time)은 런타임일 때 브라우저에서 애플리케이션을 컴파일 한다.
2. AOT(ahead-of-time)는 서버에서 빌드할 때 앱을 컴파일 한다.
3. JIT으로 빌드하면 브라우저에서 컴파일이 되므로 유저의 컴퓨터
성능에 따라 렌더링이 느릴 수 있다. 대신 빌드할 때 AOT보다 시간이 덜 걸리고
파일이 크지 않을 수 있다.
4. AOT로 빌드하면 미리 컴파일이 다 되어있어서 브라우저에서
바로 실행되므로 유저는 빠르게 페이지들을 사용할 수 있다.
대신 빌드할 때 JIT보다 시간이 더 걸리고 파일이 클 수 있다.
프로그래밍 언어 : 다트(Dart)
GUI 특징 :
- Skia Graphic Engine이라는 그래픽 라이브러리를 통해
화면에 그려지는 모든 픽셀을 자체적으로 컨트롤하기 때문에
UI를 구현할 때 iOS/Android간의 차이가 거의 없다.
플러터의 특징
1. 플러터는 객체지향 언어지만, 어느 언어보다 독립적인 Super 객체지향 언어라고 할 수 있다.
간단히 모든것이 Class화 되어있다는 말이다.
화면을 구성하는 버튼, 텍스트필드 등 모든 것들이 Class화 되어있고 이들을 Widget이라고 한다.
따라서 화면을 구성하는 모든 요소들은 매개변수의 형태로 속성을 지정할 수 있다.
2. . 플러터에서는 디자인과 기능을 통합하여 다트로 UI와 기능을 자연스럽게 써내려갈 수 있어
이러한 번거로움이 없고, 더 빠른 개발이 가능하게 되었다.
https://www.youtube.com/watch?time_continue=9&v=siow15Yn8r8&feature=emb_logo