플래터(소프트웨어)

Flutter (software)
펄럭이다
Google-flutter-logo.svg
원저작자구글
개발자구글 및 커뮤니티
초기 릴리즈알파(v0.0.6) / 2017년 5월, 5년 전(2017-05)[1]
안정된 릴리스
3.0.4 / 2022년 7월 1일; 34일 전 (2022년 7월 1일)
저장소
기입처C, C++, Dart[2]
플랫폼Android, iOS, Google Fuchsia, 웹 플랫폼, Linux, macOSWindows
유형응용 프로그램 프레임워크
면허증.새로운 BSD 라이선스
웹 사이트펄럭이다개발

Flutter는 Google에서 만든 오픈 소스 UI 소프트웨어 개발 키트입니다.Android, iOS, Linux, macOS, Windows, Google Fuchsia [3]을 위한 크로스 플랫폼 애플리케이션을 단일 [4]코드베이스에서 개발하는 데 사용됩니다.

2015년에 [5][6]처음 기술된 Flutter는 2017년 [1]5월에 출시되었습니다.

역사

Flutter의 첫 번째 버전은 "Sky"로 알려졌으며 안드로이드 운영 체제에서 실행되었다.2015년 Dart 개발자[7] 서밋에서 [8]공개되었으며 초당 120프레임으로 일관되게 렌더링할 수 있습니다.구글은 2018년 9월 상하이에서 열린 구글 개발자 데이 기조연설에서 플래터 1.0 이전 마지막 메이저 릴리스인 플래터 릴리즈 프리뷰 2를 발표했다.그 해 12월 4일, Flutter Live 이벤트에서 Flutter 1.0이 공개되어 프레임워크의 첫 번째 안정판이 되었다.2019년 12월 11일 Flutter Interactive 이벤트에서 [9]Flutter 1.12가 공개되었습니다.

2020년 5월 6일, Dart 소프트웨어 개발 키트(SDK) 버전 2.8과 Flutter 1.17.0이 출시되어 iOS 장치의 성능을 약 50% 향상시키는 Metal API와 새로운 Material 위젯 및 네트워크 추적 개발 도구가 추가되었습니다.

2021년 3월 3일, 구글은 온라인 플래터 인게이지 이벤트 중에 플래터 2를 출시했다.이 주요 업데이트는 새로운 CanvasKit 렌더러 및 웹 특정 위젯을 사용하는 웹 기반 애플리케이션에 대한 공식 지원, Windows, macOSLinux대한 얼리 액세스 데스크톱 애플리케이션 지원 및 향상된 Add-to-App API[10]제공했습니다.이 릴리스에서는 사운드 null-safety 기능을 갖춘 Dart 2.0도 사용되었으며, 이로 인해 많은 외부 패키지의 변경과 문제가 발생하였습니다.그러나 Flutter 팀에는 [11]이러한 문제를 완화하기 위한 지침과 도구가 포함되어 있습니다.

2021년 9월 8일, 다트 2.14와 플래터 2.5가 구글에 의해 출시되었습니다.이 업데이트는 Android 전체 화면 모드와 Google의 Material Design의 최신 버전인 Material You를 개선했습니다.Dart는 보풀 상태를 표준화하고 Apple Silicon을 안정적으로 지원하는 [12][13]두 가지 새로운 업데이트를 받았습니다.

Flutter의 현재 안정적인 채널은 3.0.2이고 Dart 버전은 2.17.3입니다.

프레임워크 아키텍처

Flutter의 주요 구성 요소는 다음과 같습니다.

다트 플랫폼

플래터 앱은 다트 언어로 작성되며 언어의 고급 [15]기능을 많이 활용합니다.

애플리케이션을 쓰고 디버깅하는 동안 Flutter는 적시 실행 엔진을 제공하는 Dart 가상 시스템에서 실행됩니다.이것에 의해, 고속의 컴파일 시간과 「핫 새로고침」이 가능하게 됩니다.이것에 의해, 소스 파일의 수정이 실행중의 애플리케이션에 주입될 수 있습니다.Flutter는 상태 저장 핫 새로고침 지원을 통해 이 기능을 더욱 확장합니다. 대부분의 경우 소스 코드에 대한 변경 내용이 재시작이나 [16]상태 손실 없이 실행 중인 앱에 즉시 반영됩니다.

성능을 향상시키기 위해 모든 플랫폼의 Flutter 앱 릴리스 버전은 사전 시간([17]AOT) 컴파일을 사용합니다.

플래터 엔진

주로 C++로 작성된 Flutter의 엔진은 Google의 Skia 그래픽 라이브러리를 사용하여 낮은 수준의 렌더링을 지원합니다.또한 Android 및 [15]iOS에서 제공하는 플랫폼별 SDK와 상호 작용합니다.Flutter Engine은 Flutter 응용 프로그램을 호스팅하기 위한 휴대용 런타임입니다.애니메이션 및 그래픽스, 파일과 네트워크 I/O, 접근성 지원, 플러그인 아키텍처, Dart 런타임 및 컴파일 툴체인을 포함한 Flutter의 핵심 라이브러리를 구현합니다.대부분의 개발자는 Flatter Framework를 통해 Flatter와 상호 작용합니다. Flatter Framework는 사후 대응적인 프레임워크와 플랫폼, 레이아웃 및 기본 위젯 세트를 제공합니다.

기초 라이브러리

Dart로 작성된 Foundation 라이브러리는 [15][18]엔진과 통신하기 위한 API와 같은 Flutter를 사용하여 응용 프로그램을 구축하는 데 사용되는 기본 클래스와 함수를 제공합니다.

설계별 위젯

Flutter 프레임워크에는 특정 설계 언어에 적합한 두 가지 위젯 세트가 포함되어 있습니다.머티리얼 디자인 위젯은 구글의 동명 디자인 언어를 구현하고 쿠퍼티노 위젯은 애플의 iOS 휴먼 인터페이스 [15][19][20][21]가이드라인을 구현합니다.

IDE 지원

Flutter는 플러그인을 통해 다음 IDE 및 에디터에 대한 공식 지원을 유지합니다.

기타 IDE는 커뮤니티 지원 플러그인과 함께 사용하거나 명령줄에서 [8]Flutter 도구를 사용하여 사용할 수 있습니다.

위젯

Flutter는 다양한 위젯을 사용하여 완전히 작동하는 응용 프로그램을 제공합니다.이러한 위젯은 Flutter의 프레임워크 [22]아키텍처입니다.Flutter의 위젯 카탈로그는 프레임워크에 대한 전체 설명과 API를 제공합니다.

플래터 위젯의 기본

위젯은 일반적으로 세 가지 기본 유형으로 정의됩니다.상태 저장 위젯, 상태 비저장 위젯 및 상속된 위젯입니다.Flutter 프레임워크의 중앙 클래스 계층으로서 모든 Flutter [23]응용 프로그램의 구성에 세 가지 기본 유형의 위젯이 사용됩니다.위젯의 모든 인스턴스는 변경되지 않지만 상태 저장 위젯을 통해 사용자와 애플리케이션 간의 상호 작용을 수행할 수 있습니다.메서드 setState에 대한 접근을 허용함으로써 상태를 개별 상태 개체로 유지할 수 있습니다.또는 상태 비저장 위젯이 상수로 작동하며 표시되는 내용을 변경하려면 먼저 위젯을 다시 생성해야 합니다.상속된 위젯은 다른 위젯이 상속된 위젯의 상태를 구독할 수 있도록 하여 해당 상태를 하위 [24]위젯에 상속할 수 있도록 합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Chris Bracken. "Release v0.0.6: Rev alpha branch version to 0.0.6, flutter 0.0.26 (#10010) · flutter/flutter". GitHub. Retrieved 2018-08-08.
  2. ^ "FAQ - Flutter". Retrieved 2018-08-08.
  3. ^ "Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI". Ars Technica. 8 May 2017.
  4. ^ Amadeo, Ron (2018-02-27). "Google starts a push for cross-platform app development with Flutter SDK". Ars Technica. Retrieved 2021-06-11.{{cite web}}: CS1 maint :url-status (링크)
  5. ^ "With Flutter, Google Aims Dart to Mobile App Cross-Development". InfoQ. Retrieved 2022-03-17.
  6. ^ "Google announces Flutter 1.0, the first stable release of its cross-platform mobile development toolkit". Android Police. 2018-12-05. Retrieved 2022-03-17.
  7. ^ "Sky: An Experiment Writing Dart for Mobile (Dart Developer Summit 2015)". YouTube.
  8. ^ a b Amadeo, Ron (1 May 2015). "Google's Dart language on Android aims for Java-free, 120 FPS apps". Ars Technica.
  9. ^ "Flutter: the first UI platform designed for ambient computing". Flutter blog. Retrieved 2019-12-11.
  10. ^ "Version 2 of Google's Flutter toolkit adds support for desktop and web apps". TechCrunch. Retrieved 2021-03-06.
  11. ^ "Migrating to null safety". dart.dev. Retrieved 2022-02-04.
  12. ^ Sells, Chris (2021-09-08). "What's new in Flutter 2.5". Flutter. Retrieved 2022-02-04.
  13. ^ "Flutter 2.5.0 release notes". docs.flutter.dev. Retrieved 2022-02-04.
  14. ^ "Flutter SDK releases".
  15. ^ a b c d "Technical Overview - Flutter". flutter.dev. Retrieved 2017-12-13.
  16. ^ Lelel, Wm (26 February 2018). "Why Flutter Uses Dart". HackerNoon. Retrieved 5 December 2018.
  17. ^ stephenwzl (2018-08-01). "Flutter's Compilation Patterns". ProAndroidDev. Retrieved 2018-12-06.
  18. ^ "foundation library - Dart API". docs.flutter.dev. Retrieved 2017-12-13.
  19. ^ "Material Design Widgets - Flutter". flutter.dev. Retrieved 2017-12-13.
  20. ^ "Cupertino (iOS-style) Widgets - Flutter". flutter.dev. Retrieved 2017-12-13.
  21. ^ "Human Interface Guidelines". developer.apple.com. Retrieved 2019-10-08.
  22. ^ "Introduction to widgets". flutter.dev. Retrieved 2020-10-08.
  23. ^ "Widget class - widgets library - Dart API". api.flutter.dev. Retrieved 2021-10-04.
  24. ^ Das, Pankaj (2020-08-14). "What is the Relation Between Stateful and Stateless Widgets In Flutter? >> Flutter". flutteragency.com. Retrieved 2022-06-20.

외부 링크