Flutter 란?

  • 구글이 만든 프레임워크
  • 하나의 언어로 멀티 플랫폼 어플리케이션 구축이 가능하다.
  • 2024년 현재 Android, iOS, Web Browser, Windows, Linux, macOS .. 그리고 그 외 많은embedded device 에서 작동이 가능
  • 언어는 Dart 를 이용한다. (Dart 또한 구글에서 만든 프로그래밍 언어이다.)
  • JIT 컴파일 뿐만 아니라 AOT (ahead of time) 컴파일을 지원한다.

장점

  • 플러터로 만든 애플리케이션은 멀티 플랫폼에서 사용이 가능하다.
  • 자체 그래픽 엔진을 사용하기 때문에 서로 다른 플랫폼에서도 동일한 디자인과 기능을 장담할 수 있다.
  • 관련 커뮤니케이션이 크고 활동적이며, 커뮤니티에서 공유되는 패키지 또한 많다.

단점

  • 다른 멀티 플랫폼 어플리케이션과 같이, 당연히 네이티브 프레임워크보다는 제어할 수 있는 범위가 좁다.
  • 일반적인 다른 앱보다 무겁다 : 자체 그래픽 엔진을 사용하기 때문에 앱을 배포할 때 코드와 그래픽 엔진 코드가 함께 패키징되어 무겁다.
  • 위와 같은 문제점으로 네이티브 프레임워크에서 사용할 수 있는 UI 컴포넌트, 애니메이션, 제스처 등을 사용하지 못한다.

JIT 컴파일과 AOT 컴파일

아래 포스트를 참고해주세요.

JIT 컴파일과 AOT 컴파일

Reference

플러터를 배워야 하는 이유 : https://www.youtube.com/watch?v=l05wkkCCe2Y
AOT 컴파일 : https://ko.wikipedia.org/wiki/AOT_%EC%BB%B4%ED%8C%8C%EC%9D%BC
AOT 컴파일 : https://selfish-developer.com/entry/AOTAhead-Of-Time-Compiler