Flutter’s 2024 로드맵 공유

arcanine
Flutter Seoul
Published in
7 min readFeb 26, 2024

투명성을 위해, 우리는 로드맵의 고수준 세부사항을 공유하고자 합니다. 이를 통해 다른 사람들이 우리의 우선순위를 볼 수 있고 우리가 하고 있는 작업을 바탕으로 계획을 세울 수 있습니다.

우리의 계획은 고객 피드백과 새로운 시장 기회에 따라 시간이 지나면서 변화할 것입니다. 우리는 분기별 설문조사와 GitHub 이슈에 대한 피드백을 사용하여 작업을 우선순위에 두고 있습니다. 여기에 나열된 목록은 전체 목록으로 간주되거나, 우리가 모든 이 작업을 완료하겠다는 약속으로 보아서는 안 됩니다. 우리가 무엇에 대해 작업해야 한다고 여러분이 생각하는 피드백이 있다면, 연락을 취하도록 권장합니다(예: 이슈를 제기하거나, 이슈의 첫 번째 댓글에 “좋아요” 이모지 반응을 사용하는 것 등). Flutter는 오픈 소스 프로젝트이며, 아래에 제시된 주제뿐만 아니라 다른 분야에서도 기여를 환영합니다.

Flutter에 장기적으로 기여할 계획을 가진 기여자나 기여자 팀이 있고, 여러분의 계획된 노력을 로드맵에 반영하기를 원한다면, Hixie(ian@hixie.ch)에게 연락해 주세요.

2024

이 로드맵은 포부를 담고 있습니다; Flutter와 Dart에서 가장 활발하게 활동하는 기여자들이 올해 작업할 계획이라고 밝힌 내용 중 일부입니다. 일반적으로 엔지니어링 작업에 대해 어떠한 보장도 하기 어렵고, 수백 명의 기여자가 있는 오픈 소스 프로젝트의 경우 더욱 그렇습니다.

Core framework & engine

Impeller를 중심으로 품질과 성능에 계속해서 초점을 맞추고 있습니다. iOS에서 Skia 백엔드를 제거함으로써 Impeller로의 iOS 마이그레이션을 완료할 계획입니다. Android에서는 Impeller가 Vulkan과 OpenGLES를 지원할 것으로 예상합니다; 단기적으로는 Skia를 대신 사용할 수 있는 opt-out도 제공할 예정입니다. 또한, Impeller 테스트 인프라를 개선하여 생산 환경에서의 회귀를 줄이고자 합니다.

코어 프레임워크에 대해서는 Material 3을 완전히 지원하는 작업을 완료할 것으로 예상합니다. 또한, 앱 바와 탭 바와 같은 Apple 기기에서의 디자인 기대치를 충족하는 데 필요한 적응을 더 잘 지원하기 위해 코어 프레임워크를 일반화하는 옵션도 조사하고 있습니다.

blankcanvas 작업도 계속될 것으로 예상됩니다.

Mobile (Android and iOS) platforms

2023년에 우리는 여러 Flutter View를 지원하는 계획을 시작했습니다 — 2024년에는 이 지원을 Android와 iOS로 확장할 계획입니다. 또한 플랫폼 뷰의 성능과 테스트 커버리지/테스트 가능성을 개선하는 작업도 진행 중입니다.

우리는 최신 Apple 표준, 예를 들어 프라이버시 매니페스트Swift 패키지 매니저를 지원함으로써 iOS 제품을 현대화하는 작업을 계속할 것입니다. 또한 향후 Android 릴리스를 위한 필요한 지원도 조사할 것입니다.

Android에서는 Android 빌드 파일에서 Kotlin을 지원하는 것을 조사할 것입니다.

Interop은 Dart에서 네이티브 코드와 인터페이스하는 데 중요합니다. 우리는 Dart에서 직접 Objective C 코드를 호출하는 지원 작업을 완료할 것으로 예상하며, Swift 코드를 직접 호출하는 지원을 조사할 것입니다. 마찬가지로 Android에 대해서는 Java와 Android로의 호출 지원 작업을 계속할 것입니다. 또한 주 OS/플랫폼 스레드에서만 호출될 수 있는 API를 호출하는 데 대한 지원을 개선하는 방안을 조사할 것입니다.

우리는 더 큰 Flutter 앱이 종종 하이브리드 앱(Flutter 코드와 일부 Android/iOS 플랫폼 코드/UI를 모두 포함하는 앱)으로 시작하는 추세가 증가하는 것을 보고 있습니다. 우리는 이를 성능/오버헤드와 개발자 인체공학 측면에서 어떻게 더 잘 지원할 수 있는지 조사할 것입니다.

Web platform

우리는 성능과 품질에 계속해서 초점을 맞출 것이며, 전체 애플리케이션 크기를 줄이는 방안, 멀티 스레딩의 더 나은 사용, 플랫폼 뷰 지원, 앱 로드 시간 개선, CanvasKit을 기본 렌더러로 만들기, 텍스트 입력 개선 및 Flutter 웹의 SEO 지원 옵션 조사 등을 포함합니다.

Dart를 WasmGC로 컴파일하는 작업을 완료할 것으로 예상하며, 이를 통해 Flutter 웹 앱의 Wasm 컴파일을 지원할 것입니다. 이는 JS와 Wasm 컴파일 모두를 지원하는 Dart의 새로운 JS interop 메커니즘도 포함합니다.

또한 웹에서 핫 리로드를 지원하기 위한 작업을 재개할 계획입니다.

Desktop platforms

우리가 대부분의 시간을 모바일 및 웹 플랫폼에 할애할 것으로 예상하는 동안(위에서 논의한 바와 같이), 우리는 여전히 데스크톱 플랫폼에서 일부 진보를 계획하고 있습니다:

  • macOSWindows에서 플랫폼 뷰를 지원하는 데 진전을 이루길 희망하며, 이를 통해 웹뷰와 같은 것들에 대한 지원을 가능하게 할 것입니다.
  • Linux에서는 GTK4 지원과 접근성에 중점을 둘 것입니다.
  • 모든 플랫폼에서 우리는 하나의 Dart isolate에서 여러 뷰를 지원하는 작업을 계속할 것이며, 최종 목표는 하나의 위젯 트리에서 여러 창 렌더링을 지원하는 것입니다.

Ecosystem

우리는 새로운 시대의 AI 기반 Flutter 앱을 지원하기 위해 AI 프레임워크와 협력할 계획입니다.

우리는 유지 관리하는 flutter.dev 플러그인 세트를 확장할 계획이 없으며, 대신 기존 플러그인의 품질을 향상시키고 핵심 기능의 격차를 해결하는 데 집중할 것입니다(예를 들어, isolates 사용과 앱에 추가하는 사용 사례를 더 잘 지원하는 업데이트된 shared_preferences API를 조사하는 것). 또한 Flutter Favorites와 같은 커뮤니티 계획들(initiatives)을 지원할 것입니다.

또한 Flame 커뮤니티와의 공동 노력으로 Flutter를 사용한 캐주얼 게임 개발 지원을 계속 추가할 것입니다.

Tooling and AI

우리는 핵심 프로그래밍 작업을 위한 AI 지원을 제공하기 위해 AI 솔루션과의 통합을 기대하고 있습니다.

또한 Google의 IDX 팀과의 협업을 계속 이어가며 디자인 도구와의 통합 가능성을 탐색할 것입니다.

Programming language

Dart 팀은 Dart에서 매크로를 지원하는 것의 실현 가능성 평가를 완료할 예정이며, 2024년에는 그것을 지원하는 첫 단계를 출시하거나, 극복할 수 없는 구조적 문제를 발견한 경우 이 노력을 포기할 예정입니다. 매크로에 대한 주요 사용 사례로는 직렬화/역직렬화, 데이터 클래스, 일반적인 확장성 등이 있습니다.

우리는 더 적은 양의 언어 기능에 대해 조사할 것이며, 이는 구문 변경을 통해 장황함을 줄이는 것을 포함합니다(예를 들어, primary constructorsimport syntax shorthand), 그리고 정적으로 검사된 변이(variance)에 대한 더 나은 지원을 포함합니다.

마지막으로, Dart 비즈니스 로직을 더 많은 곳에서 재사용하고, Dart에 대한 더 많은 플러그인 가능성/확장성을 조사할 것입니다(예를 들어, DevTools 및 분석기에서).

Releases

우리는 2023년과 유사하게 2024년 동안 네 번의 안정 버전 릴리스와 열두 번의 베타 릴리스를 계획하고 있습니다.

Non-goals

우리는 여전히 코드 푸시나 핫 업데이트에 대한 내장 지원에 투자할 계획이 없습니다. 코드 푸시의 경우, shorebird.dev의 친구들이 관심을 가질 만한 제품을 제공할 수 있습니다. UI 푸시(서버 주도 UI로도 알려짐)의 경우, rfw 패키지를 추천합니다.

안녕하세요. Flutter Seoul 의 nine 입니다. Flutter Seoul Medium 에 2024 Flutter roadmap 게시글로 처음 인사 드립니다.

24년 2월 16일에 Flutter roadmap 이 공개되어 이를 한글로 번역하여 공유합니다. 번역이 틀리거나 잘못된 부분이 있다면 말씀해주세요!

읽어주셔서 감사합니다.

--

--