flutter란
Flutter는 Google에서 개발하고 Mobile World Congress 2018에서 최초 베타 릴리스를 발표하면서 새롭게 소개된 크로스 플랫폼 모바일 앱 개발 프레임워크입니다.
또한 개발자가 iOS와 Android 두 OS에 대해 고품질 기본 인터페이스를 제작하는 데 도움을 주는 크로스 플랫폼 프레임워크라고 할 수 있습니다.
기존 UI를 모두 버리고 자체적으로 UI를 렌더링하기 때문에 iOS에서 material 디자인과 ripple 애니메이션 을 볼 수 있고 Android 에서 cupertino 디자인을 볼 수 있습니다.
마치 화면 전체를 2D 그래픽 API로 fillRect 하고 drawText drawImage 해서 앱을 만드는 것처럼 Flutter 엔진이 Skia 기반으로 렌더링 해줍니다. 웹 개발에서 HTML을 모두 무시하고 전체를 flash나 canvas로 만드는 것과 같습니다.
호환성과 확장성: 플루터는 안드로이드와 iOS 뿐만 아니라 웹 및 데스크톱 플랫폼까지 확장 가능한 크로스 플랫폼 프레임워크입니다. 이는 개발자가 동일한 코드베이스를 사용하여 여러 플랫폼에 애플리케이션을 배포할 수 있음을 의미합니다.
빠른 개발: 플루터는 Hot Reload 기능을 제공하여 개발자가 애플리케이션의 변경 사항을 실시간으로 확인하고 적용할 수 있습니다. 이는 앱을 개발하는 프로세스를 빠르고 효율적으로 만들어줍니다.
아름다운 UI: 플루터는 Material Design 및 Cupertino 스타일의 위젯을 제공하여 높은 품질의 사용자 인터페이스(UI)를 만들 수 있습니다. 이를 통해 각 플랫폼의 네이티브 룩 앤 필을 유지하면서도 코드를 공유할 수 있습니다.
고성능: 플루터는 네이티브 성능을 재현하도록 최적화되어 있으며, 애플리케이션의 성능을 향상시키는 다양한 기능을 제공합니다.
플랫폼 독립적 개발: 플루터는 네이티브 코드를 직접 작성할 필요 없이 하나의 코드베이스로 다양한 플랫폼을 타겟팅할 수 있도록 해줍니다. 이는 개발자들이 애플리케이션을 여러 플랫폼에 대해 동시에 유지보수하거나 확장할 수 있게 합니다.
Flutter와 비슷한 기능을 하는 것으로 React Native가 존재합니다
flutter 개발시 사용 언어
Flutter는 Google이 개발한 오픈 소스 프로그래밍 언어인 Dart를 사용합니다. Dart는 UI를 구축하는 데 최적화되어 있으며, Dart의 많은 강점은 Flutter에서 활용됩니다. Dart 는 웹 및 모바일 앱 은 물론 서버 및 데스크톱 애플리케이션을 개발하는 데 사용할 수 있습니다 .
C 스타일 구문을 사용하는 객체 지향 , 클래스 기반 , 가비지 수집 언어 입니다 . 기계 코드 , JavaScript, WebAssembly 로 컴파일 할 수 있으며 인터페이스 , 믹스인 , 추상 클래스 , 구체화된 제네릭 및 유형 유추를 지원합니다.
flutter는 dart란 언어를 사용하기 때문에 Flutter는 네이티브 특징을 완전히 지원하지는 않습니다. 따라서, 특정 플랫폼에 대한 높은 수준의 접근이 필요한 경우에는 네이티브 개발을 고려해야 합니다.