크로스 플랫폼 개발이 가능한 프레임워크
언어 : dart
기존 swift , java는 운영체제와 상호작용해서 버튼같은 요소들이 만들어지고 동작한다.
하지만 flutter는 운영체제와 직접 소통하지 않는다.
그럼 위젯이 어떻게 만들어지는가.
이 역할을 엔진이 담당한다. (엔진은 C , C++코드로 만들어 졌다)
"플랫폼은 엔진을 동작시키고 엔진이 dart코드를 동작시켜 UI를 렌더링한다."
실제 운영체제에 의해 그려지지 않는다는 것은
Fake 위젯. 실제 위젯과 닮은 위젯.
덕분에 플랫폼에 의존하지 않을 수 있다. (draw by engine 덕분에)
실행 순서를 보면
1. dart 코드를 컴파일
2. 유저가 애플리케이션을 실행하면 runner프로젝트를 실행
3. 엔진이 UI를 그림
엔진은 화면 상의 모든 픽셀을 그린다.
호스트 플랫폼을 사용하는 게아니고.
하지만 이말은 우리 앱상에 내이티브 앱들이 지닌 컴포넌트나 위젯을 가질 수 없다는 뜻이기도 하다.(flutter 단점)
세밀한 디자인 사항, 전부 커스마이징해야한다면 Flutter
IOS의 디자인 같은 걸 따르지 않아도된다. 마음대로 디자인이 가능
하지만 IOS 스타일의 위젯들을 만들거라면 RN을 사용하는 게 좋을 듯하다.
디자인 커스터마이징이 가능하다.
크로스 플랫폼 개발이 가능하다.
이 장점은 엔진이 UI를 렌더링하기 때문에 가능한 것이다.