하나의 코드로 모바일, 웹, 데스크톱 앱의 화면을 직접 그리는 도구
아이폰, 안드로이드, 윈도우, 맥, 리눅스, 웹까지 하나의 코드베이스로 앱을 만들 수 있습니다. Flutter는 구글이 만든 SDK로, 디자인 의도를 그대로 구현하고 빠른 성능을 내는 데 초점을 맞춥니다. 개발자는 별도의 네이티브 코드를 작성하지 않고도 다양한 플랫폼에 맞는 앱을 배포할 수 있습니다.
화면의 모든 픽셀을 직접 제어
Flutter는 화면의 각 픽셀을 제어할 수 있는 계층형 아키텍처를 제공합니다. 그래픽, 비디오, 텍스트, 컨트롤을 겹쳐서 애니메이션을 만들 때 제한이 없습니다. iOS에는 Cupertino, 다른 플랫폼에는 Material 디자인 시스템을 기본으로 지원하며, 완전히 새로운 시각적 컴포넌트를 만들 수도 있습니다. 디자이너는 프레임워크의 제약으로 디자인을 타협하지 않고 원래 의도한 대로 구현할 수 있습니다.
하드웨어 가속으로 구현한 속도
Skia와 Impeller 같은 하드웨어 가속 2D 그래픽 라이브러리를 사용해 그래픽 처리를 담당합니다. 이는 Chrome과 Android의 기반이 되는 기술입니다. Flutter는 디바이스의 네이티브 속도에서 끊김 없이 그래픽을 렌더링하도록 설계되었습니다. Dart 언어를 사용해 iOS와 안드로이드용 ARM 기계 코드, 웹용 JavaScript와 WebAssembly, 데스크톱용 Intel x64와 ARM 코드로 컴파일합니다.
코드 수정 즉시 반영되는 개발 환경
상태를 유지하면서 코드를 수정하면 결과가 즉시 화면에 반영되는 핫 리로드 기능을 제공합니다. 앱을 재시작하지 않고도 변경 사항을 확인할 수 있어 개발 속도가 빨라집니다. Visual Studio Code와 IntelliJ / Android Studio용 편집기 플러그인을 포함하며, 다른 개발 도구와도 함께 사용할 수 있습니다. 수만 개의 패키지를 제공하여 개발을 가속화합니다.
네이티브 코드와의 연동
기존 네이티브 코드와 함께 작동하도록 설계되었습니다. Android, iOS, macOS, Linux, Windows에서 FFI(외부 함수 인터페이스)를 지원하여 다른 네이티브 코드를 쉽게 접근할 수 있습니다. 플랫폼별 API도 지원합니다. Flutter는 완전한 오픈소스 프로젝트이며, 기여를 환영합니다.
사용 전 확인해야 할 사항
Flutter SDK를 다운로드하거나 사용할 때 구글 서비스 약관에 동의하게 됩니다. GitHub에서 설치한 경우, 처음 실행 시 또는 flutter upgrade 명령을 실행할 때 구글 서버에서 Dart SDK를 다운로드합니다. 이는 flutter 도구 자체를 실행하는 데 필요합니다. 릴리스 및 변경 사항 알림을 받으려면 flutter-announce 메일링 리스트에 가입할 수 있습니다. 문서에서는 릴리스 간 깨지는 변경 사항도 추적합니다.