티스토리 뷰

반응형

Flutter 3.10에 오신 것을 환영합니다! 놀라운 Flutter 커뮤니티의 엄청난 노력을 빨리 보여주고 싶습니다. 이 Flutter 릴리스는 오늘날 에도 사용할 수 있는 놀라운 Dart 3를 실행합니다 !

Flutter 3.10에는 웹, 모바일, 그래픽, 보안 등에 대한 많은 개선 사항이 포함되어 있습니다. 사업을 시작합시다!

뼈대

재료 3

Material 라이브러리는 이제 최신 Material Design 사양 과 일치합니다 . 변경 사항에는 새로운 구성 요소 및 구성 요소 테마, 업데이트된 구성 요소 비주얼 등이 포함됩니다. 개발자는 테마 플래그를 사용하여 이러한 변경 사항을 "선택"해야 합니다 useMaterial3. 다음 안정 릴리스에서는 useMaterial3기본값이 true.

재료 라이브러리의 M3 버전을 선택하려면 테마를 설정 useMaterial3 : true하십시오 MaterialApp. 이 flutter create명령은 새 앱을 만들 때 이를 테마에 추가합니다.

이러한 변경 사항을 미리 보려면 데모 앱 을 확인하십시오 . 데모를 사용하면 useMaterial3켜고 끌 수 있습니다.

ColorScheme.fromImageProvider()

모든 M3 구성 요소는 테마의 기본 색상을 구성합니다 ColorScheme. 기본 색 구성표는 보라색 음영을 사용합니다. 단일 "시드" 색상 또는 이미지에서 사용자 지정 색 구성표를 만들 수 있습니다. 데모로 두 변형을 모두 시도하십시오. 생성된 색 구성표는 보기 좋고 접근하기 쉬워야 합니다.

NavigationBar

M3 버전의 BottomNavigationBar위젯을 제공합니다. M3는 다른 색상, 강조 표시 및 고도를 사용 하지만 이전과 동일하게 작동합니다. 위젯 의 기본 모양을 재정의하려면 위젯을 NavigationBars사용하십시오 NavigationBarTheme. 기존 앱을 이 구성 요소로 마이그레이션할 필요는 없지만 새 앱에 사용해야 합니다.

NavigationDrawer

Drawer 위젯을 기반으로 M3 목적지 선택 위젯을 제공합니다 . NavigationDrawer위젯 의 단일 선택 목록을 표시합니다 NavigationDestinations. 이 목록에 다른 위젯도 포함할 수 있습니다. NavigationDrawer필요할 때 스크롤할 수 있습니다 . 위젯 의 기본 모양을 재정의하려면 위젯을 NavigationDrawers사용하십시오 NavigationDrawerTheme.

SearchBar 및 SearchAnchor

이러한 구성 요소는 검색 쿼리에 대한 예측 텍스트를 제공합니다. 사용자가 검색 쿼리를 입력하면 앱은 "검색 보기"에서 일치하는 응답 목록을 계산합니다. 사용자는 하나를 선택하거나 쿼리를 조정합니다. 이러한 구성 요소의 M3 디자인을 재정의하려면 SearchBarTheme및 SearchAnchorTheme위젯을 사용하십시오.

보조 탭 표시줄

M3를 사용하면 탭 콘텐츠의 두 번째 계층을 만들 수 있습니다. 이 초를 구분하려면 TabBar를 사용하십시오 TabBar.secondary.

M3 용으로 업데이트된 DatePicker

M3는 DatePicker위젯의 달력 및 텍스트 필드 버전 모두에 대한 색상, 레이아웃 및 모양을 업데이트합니다. 이것은 API를 변경하지 않지만 새 DatePickerTheme.

M3 용으로 업데이트된 TimePicker

M3는 TimePicker와 마찬가지로 DatePicker위젯의 일반 버전과 소형 버전 모두에 대한 색상, 레이아웃 및 모양을 업데이트합니다.

M3 용으로 업데이트된 BottomSheet

M3 색상 및 모양 업데이트 외에도 이제 하단 시트에 로 설정할 때 포함되는 선택적 끌기 핸들이 추가 showDragHandle됩니다 true.

M3 용으로 업데이트된 ListTile

M3는 ListTile이 위젯의 ​​위치와 간격을 업데이트합니다. 여기에는 콘텐츠 패딩, 선행 및 후행 위젯 정렬, 최소 선행 너비 및 세로 간격이 포함됩니다. API는 변경되지 않은 상태로 유지됩니다.

M3용 서랍 업데이트

M3는 Drawer레이아웃을 약간 변경하면서 색상과 높이를 업데이트합니다.

TextField 업데이트

TextFieldM3는 기본 제스처를 지원하도록 모든 위젯을 업데이트합니다 . 마우스를 사용한 두 번 클릭 또는 세 번 클릭은 터치 장치에서 두 번 탭하거나 세 번 탭하는 것과 동일하게 작동합니다. 기본적으로 TextField및 CupertinoTextField위젯은 이러한 기능을 사용합니다.

TextField더블 클릭/탭 제스처

  • 더블 클릭 + 드래그: 단어 블록에서 선택 영역을 확장합니다.
  • 두 번 탭 + 드래그: 단어 블록에서 선택 영역을 확장합니다.

TextField세 번 클릭/탭 제스처

트리플 클릭

  • 여러 줄 TextField(Android/Fuchsia/iOS/macOS/Windows) 내부일 때 클릭한 위치에서 단락 블록을 선택합니다.
  • 멀티 라인 TextField(Linux) 내부에 있을 때 클릭한 위치에서 라인 블록을 선택합니다.
  • 한 줄의 모든 텍스트를 선택합니다 TextField.

세 번 탭

  • 여러 줄 안에 있을 때 클릭한 위치에서 단락 블록을 선택합니다 TextField.
  • 한 줄의 모든 텍스트를 선택합니다 TextField.

세 번 클릭 + 드래그

  • 단락 블록에서 선택 영역을 확장합니다(Android/Fuchsia/iOS/macOS/Windows).
  • 라인 블록에서 선택을 확장합니다(Linux).

Flutter는 SLSA 레벨 1을 지원합니다.

이제 Flutter Framework는 SLSA (Supply Chain Levels for Software Artifacts ) 레벨 1로 컴파일됩니다. 이는 다음을 포함한 많은 보안 기능의 구현을 인정합니다.

  • 스크립팅된 빌드 프로세스 . Flutter용 빌드 스크립트는 이제 신뢰할 수 있는 빌드 플랫폼에서 자동화된 빌드를 허용합니다. 보호된 아키텍처를 기반으로 구축하면 아티팩트 변조를 방지하여 공급망 보안을 개선할 수 있습니다.
  • 감사 로깅을 통한 다자간 승인 . Flutter 릴리스 워크플로는 여러 엔지니어가 승인한 후에만 실행됩니다. 모든 실행은 감사 가능한 로그 레코드를 생성합니다. 이러한 변경 사항은 아무도 소스 코드와 아티팩트 생성 사이에 변경 사항을 도입할 수 없도록 합니다.
  • 출처 . 이제 베타 및 안정 릴리스가 출처 로 빌드됩니다 . 이는 프레임워크 릴리스 아티팩트를 빌드한 예상 콘텐츠가 있는 신뢰할 수 있는 소스를 의미합니다. 각 릴리스는 SDK 아카이브 에서 출처를 보고 확인할 수 있는 링크를 게시합니다 .

또한 이 작업을 통해 팀은 SLSA L2 및 L3 준수를 향해 발전할 수 있습니다. 이 두 수준은 빌드 프로세스 도중과 이후에 아티팩트를 보호하는 데 중점을 둡니다.

편물

Flutter 웹 앱의 로드 시간 개선

이 릴리스는 아이콘 글꼴의 파일 크기를 줄입니다. 머티리얼과 쿠퍼티노에서 사용하지 않은 글리프를 정리했습니다.

CanvasKit은 모든 브라우저에서 크기를 줄였습니다.

Chromium 기반 브라우저는 더 작은 맞춤형 CanvasKit "맛"을 사용할 수 있습니다. 호스팅된 CanvasKit은 Google의 업계 최고의 CDN에서 서비스를 제공합니다. 이렇게 하면 성능이 더욱 향상됩니다.

요소 임베딩

이제 페이지의 특정 요소에서 Flutter 웹 앱을 제공 할 수 있습니다 . 이 릴리스 이전에는 앱이 전체 페이지 본문을 채우거나 iframe태그 내에 표시할 수 있었습니다. 샘플 코드는 GitHub에서 찾을 수 있습니다.

셰이더 지원

웹 앱은 Flutter의 조각 셰이더 지원을 사용할 수 있습니다 .

엔진

임펠러

3.7 안정 릴리스에서는 iOS에서 임펠러를 미리 보았습니다. 그 이후로 우리는 사용자로부터 많은 훌륭한 피드백을 받고 해결했습니다. 이 릴리스에서 Impeller에 대한 250개 이상의 커밋으로 Impeller를 iOS의 기본 렌더러로 설정했습니다. 기본적으로 Flutter 3.10이 포함된 iOS용으로 빌드된 모든 앱은 Impeller를 사용합니다. 이러한 iOS 앱은 버벅거림이 적고 일관된 성능이 향상됩니다.

3.7 릴리스 이후 iOS의 Impeller는 메모리 공간을 개선했습니다. 임펠러는 더 적은 렌더 패스와 중간 렌더 타겟을 사용합니다. 최신 iPhone에서 손실 텍스처 압축을 활성화하면 충실도에 영향을 주지 않고 메모리 사용량이 줄었습니다. 이러한 발전으로 인해 iPad의 성능도 눈에 띄게 향상되었습니다.

Wonderous 앱 의 "인용 인용" 화면과 같은 복잡한 화면을 고려하십시오 . 함께 이러한 개선 사항은 해당 화면의 메모리 공간을 거의 절반으로 줄입니다. 메모리 사용량 감소는 또한 GPU 및 CPU 부하를 완만하게 감소시킵니다. Wonderous 앱은 로드 감소를 등록하지 않을 수 있습니다. 이전에는 프레임이 예산 이하로 렌더링되었지만 이번 변경으로 배터리 수명이 연장됩니다.

Impeller는 또한 인기 있는 기능 요청을 더 빠르게 제공할 수 있는 팀의 능력을 잠금 해제합니다. 한 가지 예는 iOS에서 더 넓은 P3 색 영역을 지원합니다. 해당 기능에 대한 설명은 이 게시물의 다른 부분을 참조하십시오.

커뮤니티 기여, 특히 GitHub 사용자 ColdPaleLight 및 luckysmg 는 우리의 발전을 가속화했습니다 . 그들은 충실도와 성능을 향상시키는 몇 가지 임펠러 관련 패치를 작성했습니다.

Impeller는 대부분의 Flutter 앱의 렌더링 요구 사항을 충족하지만 Impeller를 선택 해제할 수 있습니다. 옵트아웃을 선택한 경우 GitHub에 문제를 제출하여 이유를 알려주십시오. 앱 사용자는 Skia와 Impeller가 약간의 차이가 있음을 알 수 있습니다. 이러한 차이점은 버그일 수 있으므로 주저하지 말고 문제를 제출하세요. 향후 릴리스에서는 Flutter의 크기를 줄이기 위해 iOS용 레거시 Skia 렌더러를 제거할 예정입니다.

Impeller의 Vulkan 백엔드에서 진행이 계속됩니다. Android용 임펠러는 계속 개발 중이지만 미리보기 준비는 되지 않았습니다. 가까운 시일 내에 더 많은 정보를 공유할 계획입니다.

진행 상황을 확인하려면 GitHub 프로젝트 보드 를 확인하십시오 .

성능

이 릴리스에서는 임펠러를 제외하고 더 많은 성능 개선 및 수정 사항을 다룹니다.

버벅거림 제거

오픈 소스 기여자 luckysmg 에게 감사드립니다 . 그들은 Metal 드라이버에서 다음 드로어블 레이어를 가져오는 시간을 단축할 수 있다는 것을 발견했습니다. 보너스를 받으려면 FlutterViews배경색을 nil이 아닌 값으로 설정해야 합니다. 이 변경 사항은 최신 iOS 120Hz 디스플레이에서 낮은 프레임 속도를 제거합니다. 경우에 따라 프레임 속도가 3배로 증가합니다 . 이것은 우리가 6개 이상의 GitHub 문제를 해결하는 데 도움이 되었습니다. 이 변경 사항은 핫픽스를 3.7 릴리스로 백포트할 정도로 중요했습니다.

3.7 안정 릴리스에서는 플랫폼 스레드에서 vsync 이벤트가 지연되는 것을 방지하기 위해 플랫폼 스레드에서 Dart 스레드로 로컬 이미지 로드를 이동했습니다. 그러나 사용자는 Dart 스레드에 대한 이 추가 작업으로 인해 약간의 버벅거림이 발생했음을 알게 되었습니다 . 이 릴리스에서는 로컬 이미지의 열기 및 디코딩을 Dart 스레드에서 백그라운드 스레드 로 옮겼습니다 . 이 변경 사항은 vsync 이벤트 지연을 방지하면서 로컬 이미지가 많은 화면에서 잠재적인 긴 일시 중지를 제거합니다. 로컬 테스트 및 자동화된 벤치마크에서 이 변경으로 여러 동시 이미지의 로드 시간이 절반으로 줄었습니다.

우리는 Flutter의 새로운 내부 DisplayList 구조 위에 최적화를 계속 구축하고 있습니다. 이 릴리스에서는 R-Tree 기반 컬링 메커니즘을 추가했습니다 . 이 메커니즘은 렌더러에서 훨씬 이전에 그리기 작업 처리를 제거합니다. 이 최적화는 예를 들어 출력이 화면 밖에서 실패하는 사용자 정의 페인터를 가속화합니다. 마이크로 벤치마크는 DisplayList 처리 시간이 최대 50% 감소한 것으로 나타났습니다. 잘린 사용자 정의 페인트가 있는 앱은 다른 개선 사항을 볼 수 있습니다. 개선 정도는 숨겨진 그리기 작업의 복잡성과 수에 따라 다릅니다.

iOS 시작 대기 시간 줄이기

앱 번들의 식별자 조회에 대한 비효율적인 전략은 앱 시작 대기 시간을 늘 렸습니다 이 시작 대기 시간은 앱 크기에 비례하여 증가합니다. 이 릴리스에서는 번들 식별자 조회를 수정했습니다 . 이로 인해 대규모 프로덕션 애플리케이션에서 시작 대기 시간이 100ms 또는 약 30–50% 감소했습니다.

크기 줄이기

Flutter는 SkParagraph텍스트 모양, 레이아웃 및 렌더링을 위한 기본 라이브러리로 사용합니다. libtxt레거시 및 라이브러리를 대체하기 위한 플래그를 포함했습니다 minikin. 우리는 에 대해 전적으로 확신하므로 이 릴리스에서 및 및 해당 플래그를 SkParagraph제거 했습니다 . 이렇게 하면 Flutter의 압축 크기가 30KB 줄어듭니다.libtxtminikin

안정

3.0 릴리스에서는 렌더링 파이프라인 후반에 Android 기능을 활성화했습니다. 이 Android 기능은 고급 GPU 드라이버 기능을 사용했습니다. 이러한 드라이버 기능은 하나의 "더러운" 영역만 변경될 때 화면을 덜 다시 칠합니다. 유사한 효과로 그래픽 파이프라인에 대한 이전 최적화에 이것을 추가했습니다. 벤치마크 결과가 고무적이었지만 두 가지 문제가 드러났습니다. 첫째, 가장 개선된 벤치마크는 실제 사용 사례를 나타내지 않을 수 있습니다. 둘째, 이 GPU 드라이버 기능을 지원하는 일련의 장치 및 Android 버전을 찾기가 어려웠습니다 . 제한된 발전과 지원을 감안하여 Android에서 부분 다시 그리기 기능을 비활성화했습니다 .

이 기능은 Skia 백엔드를 사용할 때 iOS에서 활성화된 상태로 유지됩니다. 향후 릴리스에서 Impeller와 함께 이를 활성화할 예정입니다 .

API 개선

APNG 디코더

Flutter 3.10은 가장 많이 권장되는 문제 중 하나를 해결합니다 . 이미지를 디코딩하는 기능을 추가 합니다 APNG. APNGFlutter의 기존 이미지 로드 API를 사용하여 이미지를 로드할 수 있습니다 .

이미지 로딩 API 개선

Flutter의 존경받는 엔지니어링 이사인 tvolkert는 의 이미지 로딩 API를 개선했습니다 dart:ui. 새로운 방법을 추가했습니다 instantiateImageCodecWithSize. 이는 다음 세 가지 조건을 충족하는 이미지를 로드하는 사용 사례를 지원합니다.

  • 로드 시간에 알 수 없는 종횡비
  • 경계 상자 제약
  • 원래 종횡비 제약

앱이 네트워크에서 로드된 가능성 풀에서 하나의 이미지를 표시하려고 하는 경우를 예로 들 수 있습니다.

이동하는

아이폰 OS

무선 디버깅

이제 케이블 없이 Flutter iOS 앱을 실행하고 핫 리로드할 수 있습니다! Xcode에서 iOS 장치의 성공적인 무선 페어링 후 flutter run을 사용하여 해당 장치에 앱을 배포할 수 있습니다. 문제가 발생하면 Window > Devices and Simulators > Devices 아래에서 장치 옆에 네트워크 아이콘이 나타나는지 확인하십시오 . 자세한 내용은 설명서를 확인하십시오 .

광역 이미지 지원

iOS의 Flutter 앱은 이제 광역 이미지에 대한 정확한 렌더링을 지원할 수 있습니다. Wide gamut 지원을 사용하려면 앱에서 Impeller를 사용하고 파일 FLTEnableWideGamut에 플래그를 추가해야 합니다 Info.plist.

맞춤법 검사 지원

위젯 SpellCheckConfiguration()은 이제 기본적으로 iOS에서 Apple의 맞춤법 검사 서비스를 지원합니다. 이 위젯을 사용하려면 spellCheckConfiguration의 매개변수를 사용하여 설정하십시오 CupertinoTextField.

적응형 확인란 및 라디오

이 릴리스는 라이브러리 에 CupertinoCheckBox및 위젯을 추가합니다 . Apple의 스타일과 일치하는 확인란 및 라디오 버튼 구성 요소를 만듭니다.CupertinoRadioCupertino

Material 체크박스와 라디오 위젯이 .adaptive생성자를 추가했습니다. iOS 및 macOS에서 이러한 생성자는 해당 Cupertino 위젯을 사용합니다. 다른 플랫폼에서는 Material 위젯을 사용합니다.

Cupertino 애니메이션, 전환 및 색상 개선

Flutter 3.10은 SwiftUI와 일치하도록 일부 애니메이션, 전환 및 색상을 개선했습니다. 이러한 개선 사항은 다음과 같습니다.

플랫폼뷰 성능

PlatformViews화면에 나타날 때 Flutter는 버벅거림 을 줄이기 위해 iOS의 재생률을 조절합니다 . 앱 사용자는 앱이 애니메이션 또는 스크롤 가능으로 표시될 때 이를 알 수 있습니다 PlatformViews.

macOS 및 iOS는 플러그인에서 공유 코드를 사용할 수 있습니다.

Flutter는 이제 플러그인용 파일 sharedDarwinSource의 키를 지원합니다. pubspec.yaml이 키는 Flutter가 iOS와 macOS 코드를 공유해야 함을 나타냅니다.

ios: 
  pluginClass:  PathProviderPlugin 
  dartPluginClass:  PathProviderFoundation 
  sharedDarwinSource:  true 
macos: 
  pluginClass:  PathProviderPlugin 
  dartPluginClass:  PathProviderFoundation 
  sharedDarwinSource:  true

추가 앱 정보를 위한 새로운 리소스

Flutter 개발자가 iOS 앱 확장을 사용하도록 문서를 추가했습니다 . 이러한 확장에는 라이브 활동, 홈 화면 위젯 및 공유 확장이 포함됩니다.

path_provider홈 화면 위젯 생성 및 데이터 공유를 단순화하기 위해 및 플러그인 에 새로운 방법을 추가했습니다 homescreen_widget.

크로스 플랫폼 디자인을 위한 새로운 리소스

문서에는 이제 특정 UI 구성 요소 에 대한 교차 플랫폼 설계 고려 사항이 포함됩니다 . 이러한 각 UI 구성 요소에 대해 자세히 알아보려면 Flutter UX GitHub 리포지토리에서 토론을 확인하세요 . 모든 의견이나 피드백에 감사드립니다!

기계적 인조 인간

안드로이드 CameraX 지원

Jetpack 라이브러리인 Camera X 는 Android 앱에 풍부한 카메라 기능을 추가하는 것을 단순화합니다. 이 기능은 다양한 Android 카메라 하드웨어에 적용됩니다. 이 릴리스에서는 Flutter Camera 플러그인에 CameraX에 대한 예비 지원을 추가합니다. 이 지원은 다음 사용 사례를 다룹니다.

  • 이미지 캡처
  • 녹화
  • 실시간 카메라 미리보기 표시

사용해 보려면 CameraX 구현을 사용하도록 선택하세요. 옵트인하려면 파일에 다음 행을 추가하십시오 pubspec.yaml .

종속성: 
  camera:  ^0.10.4  # 최신 카메라 버전 
  camera_android_camerax:  ^0.5.0

더 많은 CameraX 기능을 계속 추가하고 CameraX를 기본 구현으로 만들 때 귀하의 피드백을 환영합니다.

DevTools

우리는 Dart 및 Flutter용 성능 및 디버깅 도구 제품군인 DevTools를 지속적으로 개선하고 있습니다. 일부 하이라이트는 다음과 같습니다.

  • DevTools UI는 Material 3을 사용합니다. 이것은 모양을 현대화하고 접근성을 향상시킵니다.
  • DevTools 콘솔은 디버그 모드에서 실행 중인 앱에 대한 평가를 지원합니다. 이 릴리스 이전에는 앱을 일시 중지했을 때만 이 작업을 수행할 수 있었습니다.
  • 내장된 Perfetto 트레이스 뷰어는 이전 타임라인 트레이스 뷰어를 대체합니다. Perfetto는 더 큰 데이터 세트를 처리하고 레거시 트레이스 뷰어보다 성능이 뛰어납니다. Perfetto에는 다음과 같은 더 많은 기능이 포함되어 있습니다.
    - 관심 있는 스레드를 고정할 수 있습니다.
    - 여러 프레임에서 여러 타임라인 이벤트를 선택하려면 클릭하고 드래그합니다.
    - SQL 쿼리를 사용하여 타임라인 이벤트에서 특정 데이터를 가져옵니다.

자세히 알아보려면 DevTools 2.23.1 , DevTools 2.22.2 및 DevTools 2.21.1 의 릴리스 정보를 확인하세요 .

지원 중단 및 주요 변경 사항

사용되지 않는 API

이 릴리스의 주요 변경 사항에는 v3.7 릴리스 이후 만료된 더 이상 사용되지 않는 API가 포함됩니다. 추가 컨텍스트 및 마이그레이션 지침과 함께 영향을 받는 모든 API를 보려면 이 릴리스에 대한 지원 중단 가이드를 확인하세요 . Dart Fix는 IDE의 빠른 수정 및 명령 을 사용한 대량 적용을 포함하여 이러한 많은 문제를 해결할 수 있습니다 dart fix.

Android 스튜디오 Flamingo 업그레이드

Android Studio를 Flamingo로 업그레이드한 후 Flutter Android 앱을 Flutter 실행하거나 Flutter 빌드하려고 하면 오류가 표시될 수 있습니다. 이 오류는 Android Studio Flamingo가 번들 Java SDK를 11에서 17로 업데이트하기 때문에 발생합니다 . Java 17을 사용할 때 7.3 이전의 Gradle 버전은 실행할 수 없습니다 . Java SDK와 Gradle 버전 간의 비호환성으로 인해 이 오류가 발생하는지 확인하기 위해 업데이트했습니다 flutter analyze --suggestions . .

이 오류를 수정하는 다양한 방법을 알아보려면 마이그레이션 가이드를 확인하세요 .

창 싱글톤 지원 중단

이 릴리스는 창 싱글톤을 더 이상 사용하지 않습니다. 그것에 의존하는 앱과 라이브러리는 그것에서 멀리 마이그레이션 해야 합니다 . 이렇게 하면 향후 버전의 Flutter에서 앱이 실행될 때 다중 창 지원을 위해 앱을 준비할 수 있습니다.

커뮤니티 덕분에

언제나 그렇듯이 테스트 에 참여해 주신 커뮤니티 덕분에 이러한 주요 변경 사항을 식별하는 데 도움이 됩니다. 자세한 내용은 주요 변경 정책을 확인하십시오 .

마무리

이 릴리스를 마무리하면서 Google의 Flutter 팀은 이 릴리스를 가능하게 한 모든 기여자에게 감사를 표합니다. 귀하의 헌신과 노력은 Flutter를 업계의 판도를 바꾸는 업체로 만들고 애플리케이션 개발을 계속해서 혁신하는 데 도움이 되었습니다. Flutter가 제공하는 모든 놀라운 기능을 활용하기 위해 이 안정적인 최신 버전의 Flutter를 살펴보는 것이 좋습니다. 그렇게 하려면 flutter upgrade! 향후 Flutter의 더 흥미로운 업데이트를 기대해 주세요.

반응형
댓글