https://medium.com/flutter/whats-next-for-flutter-b94ce089f49c
나이로비에서 열린 Flutter Forward 행사에서 우리의 비전 제시
오늘 우리는 Flutter Forward 에서 Flutter에 대한 우리의 비전을 공유하게 되어 기쁩니다 . 전 세계 개발자들이 Flutter의 향후 방향에 대해 알아보기 위해 대면 및 온라인으로 모여 케냐의 나이로비에서 실시간으로 스트리밍되는 개발자 이벤트입니다.
Flutter는 앱 개발자가 단일 코드베이스에서 모바일, 웹 및 데스크톱용으로 빌드할 수 있게 해주는 UI 도구 키트입니다. Flutter를 사용하면 아름다운 앱 을 빌드 하여 화면의 모든 픽셀을 완벽하게 제어할 수 있습니다. 하드웨어 가속 그래픽 및 기본적으로 컴파일된 기계 코드를 지원하는 휴대전화 또는 컴퓨터 의 하드웨어를 활용하여 빠릅니다 . 앱에서 코드 변경 사항을 즉시 확인할 수 있는 상태 저장 핫 리로드와 같은 기술을 통해 생산성 이 향상됩니다. 이식성 덕분에 동일한 소스 코드를 사용하여 놀라지 않고 다양한 플랫폼에 배포할 수 있습니다 . 또한 완전히 오픈 소스 이므로 라이센스 비용이나 개발 도구 비용을 지불할 필요가 없습니다.
Flutter는 지금까지 700,000개 이상의 게시된 앱을 통해 인기가 입증되었습니다. 큰 아이디어 가 있는 소규모 스타트업부터 중요한 요구 사항이 있는 기업에 이르기까지 . Google에서도 Flutter가 Google Classroom 과 같은 팀 이 모바일 및 웹 사용자에게 고품질 솔루션을 제공할 수 있게 해주는 유용한 도구임을 알게 되었습니다. 또한 Google Ads , Google 지도 , Google Pay 및 물론 Firebase 를 포함한 다른 개발자 도구에서도 이에 대한 지원을 추가하고 있습니다 .
https://youtu.be/JVJF_M9bgj4
"Flutter를 사용하여 동일한 기능에 대해 코드 크기를 66% 줄였습니다. 이는 각 플랫폼의 버그가 줄어들고 향후 기술 부채가 줄어드는 것을 의미합니다." (Kenechi Ufondu, 소프트웨어 엔지니어, Google Classroom)
Flutter의 첫 번째 릴리스는 Android 및 iOS에서 모바일 앱을 빌드하기 위한 UI 도구 키트를 제공했지만 Flutter 3에서는 Windows, macOS, Linux 및 웹을 포함하도록 프로덕션 지원을 확장하는 동시에 임베디드 플랫폼에서 Flutter를 사용할 수 있도록 했습니다. 이를 기반으로 이번 주 에 iOS의 새로운 렌더링 엔진, Material 3 및 iOS 스타일 위젯에 대한 향상된 지원, 개선된 국제화 지원, 백그라운드 처리 등 광범위한 새 기능을 추가한 최신 안정 릴리스인 Flutter 3.7 을 출시했습니다. 개선 및 개발자 도구 업데이트.
그러나 이번 행사에서 우리는 Flutter에 대한 투자의 다음 물결인 획기적인 그래픽 성능, 웹과 모바일을 위한 완벽한 통합, 새롭고 떠오르는 아키텍처에 대한 초기 지원, 지속적인 집중 등을 미리 볼 수 있기를 기대 하고 있습니다. 개발자 경험에 대해. 우리는 앞으로 몇 달에 걸쳐 점진적으로 제공될 작업을 선보일 예정이며, 이를 통해 어디에서나 사용할 수 있는 고품질의 아름다운 사용자 경험을 구축하려는 모든 개발자를 위한 강력한 도구 키트로서의 Flutter에 대한 우리의 비전에 대해 여러분이 흥분하게 되기를 바랍니다. 픽셀이 그려집니다.
고지 사항: 여기에서 미리 보는 기능은 아직 개발 중이며 앞으로 몇 달 동안 크게 변경될 수 있습니다. 이 초기 단계에서 표시하는 것은 얼리 어답터가 기여할 수 있는 기회를 제공하도록 설계되었습니다.
4가지 테마: 획기적인 그래픽 성능, 웹과 모바일을 위한 완벽한 통합, 초기부터 새롭게 떠오르는 아키텍처, 개발자 경험에 대한 지속적인 집중.
획기적인 그래픽 성능
역사적으로 교차 플랫폼 프레임워크는 추상화 계층을 생성하는 문제로 인해 비주얼에 대한 절충안이 필요했습니다. Flutter는 모든 장치에서 하드웨어 가속 그래픽과 일관된 시각적 모양을 제공하는 자체 렌더링 레이어를 사용하여 대부분과는 다른 접근 방식을 취했습니다. 앞으로 우리는 이 분야에서 Flutter의 기존 강점을 확장하는 획기적인 그래픽 성능 에 투자할 것입니다.
Flutter Forward에서는 Flutter의 차세대 렌더링 엔진인 Impeller 에 대한 더 많은 진행 상황을 보여주고 있습니다 . Impeller는 Flutter에 최적화되어 그래픽 파이프라인에 대한 더 많은 유연성과 제어 기능을 제공하고 새로운 기회를 열어줍니다. 임펠러는 셰이더 컴파일로 인한 런타임 시 드롭된 프레임을 완화하는 미리 컴파일된 셰이더를 사용하여 보다 예측 가능한 성능을 제공합니다. iOS 및 Android의 최신 저수준 API인 Metal 및 Vulkan의 프리미티브를 활용합니다. 또한 동시성을 효과적으로 사용하여 단일 프레임 워크로드를 여러 스레드에 분산시킵니다.
Impeller는 Wonderous 와 같이 까다로운 그래픽 앱을 위한 부드럽고 매끄러운 성능을 제공합니다 . 여기에 표시됨: https://wonderous.app 에서 사용할 수 있는 다양한 장치 및 폼 팩터에 맞게 UI를 조정하는 최신 버전의 Wonderous .
부드럽고 매끄러운 UI를 제공하는 것 외에도 Impeller는 특정 시나리오에서 성능을 크게 향상시킬 수 있습니다. 하나의 데모(아래 표시)는 이에 대한 최상의 사례를 보여줍니다. 왼쪽에는 현재 기본 렌더러를 사용하여 빌드된 SVG 클리핑을 사용하는 만화경 앱이 있습니다. 페이지를 아래로 스크롤하면 렌더링이 프레임당 예산보다 오래 걸리고 프레임 속도가 7~10fps로 떨어지면서 성능이 떨어집니다. 오른쪽은 Impeller에서 실행되는 동일한 앱을 보여주며 결함 없는 60fps로 렌더링됩니다.
https://youtu.be/Z7v-YRdHusM
Impeller를 사용한 그래픽 성능 향상의 예를 보여주는 Kaleidoscopia 데모입니다.
처음부터 구축하는 것의 한 가지 이점은 아키텍처가 완전히 새로운 사용 사례를 지원할 수 있다는 것입니다. 커스텀 셰이더에 대한 새로 도입된 지원은 이미 Flutter 위젯 계층 구조와의 완벽한 통합을 보여주는 몇 가지 놀라운 새 데모 로 이어지고 있습니다. 여기서 우리의 작업은 모바일 장치에만 국한되지 않습니다. 이제 웹에서도 사용자 지정 셰이더를 조기에 지원하고 있으며, 이제 동일한 코드로 iOS, Android 및 브라우저에서 하드웨어 가속 환경을 지원합니다.
Flutter 픽셀 셰이더 데모를 보여주는 Chrome 웹 브라우저의 스크린샷. Flutter 마스코트인 Dash의 이미지가 있지만 슬라이더 컨트롤로 조정할 수 있는 모자이크 스타일의 효과가 있습니다.
Flutter는 이제 웹에서 픽셀 셰이더를 지원하여 다양한 멋진 시각 효과를 사용할 수 있습니다. (신용 거래:
에릭 고메즈
.)
이제 우리는 Flutter로 3D 를 지원하는 초기 작업을 시작하고 있습니다. 기조연설에서 우리는 Blender 로 생성된 모델을 가져올 수 있고 핫 리로드를 사용하여 Blender를 실시간으로 반복하고 실행 중인 앱에서 결과를 볼 수 있음을 보여주었습니다. 아직은 초기 단계지만 3D를 다른 Flutter 경험에 통합할 수 있는 가능성과 함께 우리가 얻고 있는 초기 성능에 대해 매우 기쁘게 생각합니다.
Impeller를 사용하면 Flutter가 3D 그래픽을 렌더링할 수 있습니다. 이 재미있는 Dash 데모에서 볼 수 있습니다.
3D 및 사용자 지정 셰이더를 추가하면 휴대용 UI 툴킷의 그래픽 성능에 대한 기준이 새로운 수준으로 높아집니다. 이러한 새로운 기능이 출시되면 이를 통해 여러분이 무엇을 하게 될지 매우 기대됩니다.
웹과 모바일을 위한 완벽한 통합
Flutter와 Dart를 사용하여 완전히 앱을 작성할 수 있지만 거의 모든 사소한 프로젝트는 다른 코드와 연결해야 합니다. 웹에서 Flutter는 더 큰 앱 내에서 포함된 구성 요소로 사용될 수 있습니다. 모바일에서 앱은 시스템 API 또는 다른 언어로 작성된 기타 코드를 호출해야 할 수 있습니다. 따라서 우리의 두 번째 주요 투자 주제는 웹과 모바일의 원활한 통합입니다.
웹에서 우리는 Flutter 콘텐츠를 모든 표준 웹에 추가할 수 있게 해주는 요소 임베딩<div> 이라고 하는 새로운 기능을 미리 보고 있습니다 . 이러한 방식으로 포함되면 Flutter는 웹 구성 요소가 되어 웹 DOM과 깔끔하게 통합되고 CSS 선택기 및 변환을 사용하여 부모 Flutter 개체의 스타일을 지정할 수도 있습니다.
또한 JavaScript와 Dart 코드 간의 원활한 상호 운용성을 지원하기 위해 js 패키지 를 크게 변경하고 있습니다. js를 사용하면 Dart 코드의 모든 함수에 속성을 추가한 다음 JavaScript 코드에서 호출할 수 있습니다.@JSExport
이 두 가지 새로운 기능을 결합하면 웹에서 Flutter를 사용하는 몇 가지 흥미롭고 새로운 시나리오가 열립니다. Flutter Forward에서 선보인 개념 증명 데모 에서 HTML 기반 웹 페이지에 포함된 간단한 Flutter 앱을 볼 수 있습니다. CSS를 사용하여 애니메이션 회전 효과를 적용합니다. 회전하는 동안에도 Flutter 콘텐츠는 대화형으로 유지됩니다. 데모는 또한 HTML 버튼과 JavaScript 이벤트 핸들러를 사용하여 Flutter 상태를 변경하거나 그 반대로 할 수 있음을 보여줍니다. 이 작업이 완료되면 Flutter를 사용하여 기존 웹 앱에 상호작용성을 추가할 수 있는 많은 새로운 기회가 열릴 것이라고 생각합니다.
Flutter 웹 데모의 스크린샷. 전통적인 Flutter 카운터 앱이 표시되지만 CSS에서 기울어지고 변형되어 여성이 iPhone을 들고 있는 사진의 일부처럼 보입니다.
요소 포함을 사용하면 Flutter를 <div> 요소에 포함하고 CSS를 사용하여 스타일을 지정할 수 있습니다.
Android 및 iOS로 전환하면서 Flutter는 Kotlin 또는 Swift와 같은 언어로 작성된 코드와 통신하기 위한 메시지 기반 접근 방식을 제공하는 플랫폼 채널을 사용하여 오랫동안 시스템 API와의 통합을 지원해 왔습니다. 이렇게 하면 해당 라이브러리에 대한 액세스가 잠금 해제되지만 앱 작성자는 여러 언어에 정통해야 하며 상당한 양의 상용구 코드가 필요합니다.
우리는 이제 라이브러리를 직접 호출할 수 있는 시스템 상호 운용성을 위한 새로운 접근 방식에 대한 작업을 시작하고 있습니다. iOS에서 우리는 Swift 및 Objective-C 라이브러리에 대한 지원을 추가하여 C 상호 운용성을 위한 FFI에 대한 작업을 구축하고 있습니다. Android에서는 JNI를 사용하여 Kotlin으로 작성된 Jetpack 라이브러리에 연결합니다. 새로운 명령을 통해 Dart는 언어 간 상호 운용을 위한 바인딩을 자동으로 생성하고 데이터 클래스를 적절하게 변환합니다. 완료되면 이 작업을 통해 Flutter 개발자가 플러그인을 사용하거나 다른 API 구문을 배울 필요 없이 새로운 Jetpack 또는 iOS 라이브러리를 호출할 수 있을 뿐만 아니라 플러그인 작성자의 작업이 크게 쉬워지기를 바랍니다. 자세한 내용 은 샘플을 확인하세요 !
새롭고 떠오르는 아키텍처 초기 단계
다양한 프로세서 아키텍처에 대한 Dart의 폭 넓은 지원과 고도로 최적화된 JavaScript 컴파일러 덕분에 Flutter는 이미 다양한 장치와 폼 팩터에서 실행될 수 있습니다. 그러나 몇 가지 흥미로운 새 옵션이 등장하면서 세 번째 주제는 새롭고 떠오르는 아키텍처를 조기에 지원하는 것 입니다.
WebAssembly 는 최신 브라우저에 대한 지원 이 증가하면서 플랫폼 중립적인 이진 명령 형식으로 성숙해졌습니다 . 흥미롭게도 WebAssembly는 JavaScript 이외의 다른 언어에 대한 웹 플랫폼을 엽니다. 최근 몇 달 동안 Chrome 팀 및 기타 WebAssembly 파트너와 협력하여 Dart와 같은 가비지 수집 언어에 대한 조기 지원 을 추가했습니다. WebAssembly에 대한 이 새로운 확장은 이제 Chrome의 최신 개발 빌드에서 플래그로 지원됩니다. Flutter Forward에서는 WebAssembly에 대한 Flutter 컴파일에 대한 초기 지원을 공개 하여 웹 지원을 위한 추가 속도 및 크기 최적화를 가능하게 합니다.
점점 더 많은 관심을 받고 있는 또 다른 플랫폼 아키텍처는 광범위한 사용을 위해 설계된 개방형 표준 ISA(Instruction Set Architecture)인 RISC-V 입니다. Android 팀은 최근에 RISC-V를 지원하기 위한 작업 에 대해 발표했으며 , Flutter가 RISC-V 기기에서 실행될 수 있도록 하기 위한 자체 여정의 일환으로 Dart가 이제 RISC-V를 지원함 을 발표하게 되어 기쁩니다. 사용할 수 있습니다. 프로덕션 RISC-V 하드웨어는 아직 초기 단계이지만 Flutter Forward에서 우리는 Linux를 실행하는 자체 조립 휴대용 터미널인 ClockworkPi DevTerm Kit R-01 에 대한 현재까지의 진행 상황을 시연했습니다. RISC-V 지원은 Flutter가 다양한 요구 사항에 맞는 강력한 UI 도구 키트를 제공할 수 있는 임베디드 시나리오에서 특히 중요할 것이라고 생각합니다.
ClockworkPi RISC-V 휴대용 단말기의 사진. 이것은 iPad와 거의 같은 크기의 작은 장치이지만 미니어처 키보드, 트랙포인트 마우스 및 터미널 디스플레이가 있습니다.
Dart 콘솔 앱을 실행하는 실험용 RISC-V 컴퓨터인 ClockworkPi DevTerm R-01.
개발자 경험에 대한 지속적인 관심
위에서 설명한 모든 것의 기초는 상태 저장 핫 리로드와 같은 기능을 통해 처음부터 Flutter의 특징인 개발자 생산성입니다. 미래를 위한 우리의 네 번째이자 마지막 투자 영역은 Flutter와 Dart 모두 에서 개발자 경험에 지속적으로 초점을 맞추는 것입니다.
Flutter Forward에서 우리는 Dart 언어의 세련된 진화에 대한 우리의 약속을 보여주기를 희망하는 일부 주요 새 Dart 언어 기능에 대한 초기 작업의 일부를 미리 보고 있습니다. 개발 채널에서 특히 함께 잘 작동하는 두 가지 새로운 개선 사항인 레코드 및 패턴 에 대한 초기 지원을 제공합니다.
새로운 레코드 및 패턴 기능의 데모를 실행하는 VSCode의 이미지. Dart가 이제 여러 값을 반환할 수 있음을 보여줍니다. 데모 코드는 https://gist.github.com/timsneath/a75fd9f76b5b61c42676c9232160d14d에 있습니다.
여러 함수 매개변수를 반환하고 수신하는 데 사용되는 레코드 및 패턴의 간단한 예입니다.
우리는 또한 공식적으로 Dart 3 를 발표합니다. 이것은 언어에 건전한 널 안전을 도입하기 위한 우리 작업의 정점입니다. Dart 3는 또한 언어를 더욱 현대화하기 위해 오랫동안 사용되지 않는 다른 기능을 제거합니다. 일치하는 Flutter 빌드와 함께 Dart 3의 알파 품질 빌드를 게시하기 시작하여 개발자가 패키지와 앱을 테스트할 수 있습니다. Dart 3에 대한 자세한 내용 은 Dart 채널의 별도 블로그 게시물을 확인하십시오 .
물론 우리는 Flutter의 개발자 경험에도 투자하고 있습니다. 작년 I/O에서 발표 한 캐주얼 게임 툴킷의 성공에 이어 뉴스 툴킷 의 첫 번째 버전을 공유하고 있습니다. 처음부터 앱을 디자인합니다. 여기에는 탐색 및 검색, 인증, 광고 통합, 알림, 프로필 및 구독과 함께 기사 중심 앱을 구축하는 데 필요한 모든 것이 포함되어 있으며 Google 뉴스 이니셔티브 연구의 모범 사례가 통합되어 있습니다. 오늘 우리는 Hespress 를 포함하여 이 툴킷을 기반으로 앱을 구축하고 있는 이곳 아프리카의 얼리어답터 3명을 소개합니다., 모로코에서 가장 큰 뉴스 사이트 중 하나인 Bold Sports 는 인기 있는 나이지리아 스포츠 사이트입니다. 그리고 The Standard , 케냐에서 가장 오래된 신문.
Google 뉴스 툴킷의 얼리 어답터였던 세 명의 아프리카 기반 뉴스 게시자의 이야기입니다.
함께 나아가기
Flutter가 앞으로 나아갈 방향에 대한 기대를 공유해 주시기 바랍니다. 우리는 핵심 개발자 경험에 막대한 투자를 계속하는 동시에 Flutter로 훨씬 더 강력한 경험을 구축할 수 있는 길을 닦는 몇 가지 근본적인 개선을 하고 있습니다.
이 이미지는 우리의 방향을 요약합니다.
향후 작업을 위한 4가지 테마: 획기적인 그래픽 성능(임펠러, 쉐이더, 3D 지원); 웹과 모바일을 위한 완벽한 통합(요소 임베딩, JNIgen 및 FFIgen) 새롭고 떠오르는 아키텍처(WebAssembly 및 RISC-V)에 초기 단계; 개발자 경험(Dart 언어 기능, 사운드 null 안전, Google News Toolkit 및 Wonderous)에 대한 지속적인 초점.
자체 개발 테마 외에도 FlutterFlow 가 네이티브 모바일 애플리케이션 개발을 위한 로우 코드 빌더인 FlutterFlow 와 디자이너와 개발자가 사용자 인터페이스 개발에서 협업할 수 있는 유연한 도구를 제공하는 Widgetbook 과 같이 Flutter 생태계가 계속해서 확장되는 방식을 보는 것은 기쁩니다.
끝으로 케냐에 와서 현지 개발자들의 기업가 정신과 재능을 볼 수 있어서 정말 기뻤습니다. 여기 아프리카에서 Flutter 커뮤니티의 활력은 특별합니다. Flutter Kenya 사용자 그룹에만 1,000명이 넘는 개발자가 있습니다. 그리고 Flutter가 아프리카 전역의 개발자들에게 빠르게 성장하는 앱 경제에 참여할 수 있는 새로운 기회를 제공할 수 있다는 사실에 매우 기쁩니다. Klasha는 Flutter를 사용하여 신속하게 시장에 진출하고 지역 문제를 해결하는 이러한 약속의 좋은 예입니다. 다음은 Flutter 사용 경험에 대한 동영상입니다.https://youtu.be/o8NPZ2ofLbI
Klasha( https://klasha.com/ )의 이야기, 아프리카 소비자들에게 전 세계 상품에 원활하게 액세스할 수 있는 기술 스타트업 및 Flutter 사용 경험.
'프로그래밍 > App' 카테고리의 다른 글
[Flutter] Flutter 4.0 New Features (0) | 2023.06.08 |
---|---|
Flutter 개발을 위한 10가지 최고의 Visual Studio 코드 확장 (0) | 2023.02.01 |
딥링크(Deeplink) : URI스킴, 유니버셜 링크, 앱링크 구분과 이해 (0) | 2022.08.03 |
브라우저에서 모바일 애플리케이션 열기. Open Mobile Application From The Browser( web) , intent, deeplink, url scheme (0) | 2022.08.03 |
[리눅스] Linux - process kill all killall 프로세스이름으로 종료하기 (0) | 2021.04.22 |