Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flutter 2023 전략과 로드맵 - 박제창 @MODUPOP

Flutter 2023 전략과 로드맵 - 박제창 @MODUPOP

Flutter 2023 전략과 로드맵 - 박제창 @MODUPOP
https://festa.io/events/3358
2023년 4월 11일

JaiChangPark

April 11, 2023
Tweet

More Decks by JaiChangPark

Other Decks in Programming

Transcript

  1. Flutter Seoul x MODUPOP
 Flutter 
 2023 전략과 로드맵
 박제창

    - 드림어스컴퍼니
 Flutter Seoul x MODUPOP
 1

  2. Flutter Seoul x MODUPOP
 소개
 박제창 (Dreamwalker)
 
 • Dreamus

    Company 
 
 • Flutter Seoul - Organizer
 • GDG Golang Korea - Organizer
 
 • Github: JAICHANGPARK
 • Twitter: @jaichangpark
 Flutter Seoul x MODUPOP
 2

  3. Flutter Seoul x MODUPOP
 Agenda
 1. What’s Flutter 
 2.

    Flutter 2023 Engineering Roadmap
 2.1 Technical debt and team velocity
 2.2 Performance
 2.3 Quality
 2.4 Security
 2.5 Features
 2.6 Research
 2.7 Releases
 2.8 Non-goals
 3. Flutter 2023 Strategy
 6

  4. Flutter Seoul x MODUPOP
 1. What’s Flutter
 벌써 봄이네요 


    🌸 봄..
 무엇이 떠오르시나요?
 7

  5. Flutter Seoul x MODUPOP
 10
 1. What’s Flutter
 Flutter ?


    Dart Programming Language
 Flutter
 Why Dart?
 Flutter 
 Showcase
 DartPad
 Flutter Architecture
 Platform
 Channel
 JIT/AoT
 DartVM
 pub.dev
 Skia
 Impeller

  6. Flutter Seoul x MODUPOP
 11
 1. What’s Flutter
 Flutter is

    an open source, portable UI framework that gives developers the superpower to build beautiful, high quality apps for any platform from a single codebase.

  7. Flutter Seoul x MODUPOP
 12
 1. What’s Flutter
 Our mission

    is to build the most popular, highest-quality, and highest-productivity UI toolkit 
 for developers
 

  8. Flutter Seoul x MODUPOP
 13
 1. What’s Flutter
 Flutter 는

    
 Dart Programming Language 를 사용합니다. 
 
 

  9. Flutter Seoul x MODUPOP
 14
 1. What’s Flutter
 https://itwatch.dk/ITNyt/Brancher/software/article11210455.ece Dansk

    stjerneduo bag Googles motor har kastet sig over ny megatrend, ITWatch
 Lars Bak
 Kasper Lund

  10. Flutter Seoul x MODUPOP
 15
 1. What’s Flutter
 (A subset

    of) the @dart_lang language team hard at work
 Source : Kevin Moore, Nov. 2022
 Leaf Petersen
 Robert Nystrom

  11. Flutter Seoul x MODUPOP
 16
 1. What’s Flutter
 http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html 1.

    Create a structured yet flexible language for web programming.
 2. Make Dart feel familiar and natural to programmers and thus easy to learn.
 3. Ensure that Dart delivers high performance on all modern web browsers and environments ranging from small handheld devices to server-side execution.
 

  12. Flutter Seoul x MODUPOP
 17
 1. What’s Flutter
 https://news.dartlang.org/2013/11/dart-10-stable-sdk-for-structured-web.html 1.

    2013년 11월 14일 Dart 1.0 발표 
 2. Dart Editor
 3. Dartuim
 We started the Dart project because we believe that every developer deserves simplicity, productivity, and performance
 Dart for the Entire Web , March 25, 2015

  13. Flutter Seoul x MODUPOP
 18
 1. What’s Flutter
 Is Dart

    programming dead already?
 https://hub.packtpub.com/is-dart-programming-dead-already/
 By Amarabha Banerjee - JULY 26, 2018
 
 Worst Programming Languages to Learn in 2018
 https://www.codementor.io/blog/worst-languages-to-learn-3phycr98zk
  14. Flutter Seoul x MODUPOP
 19
 1. What’s Flutter
 Dart Code(Source)


    Javascript
 Dart to Javascript
 Dart2js
 DartVM
 Virtual Machine
 Browser or standalone
 Modern browsers

  15. Flutter Seoul x MODUPOP
 21
 1. What’s Flutter
 질문
 왜

    Flutter는 
 Dart언어를 선택했을까요?

  16. Flutter Seoul x MODUPOP
 22
 1. What’s Flutter
 왜 Flutter는

    Dart언어를 선택했나요?
 
 1. 개발 초기에 Flutter Team도 여러가지 언어와 런타임을 고려
 2. 다른 언어 대비, Dart 언어가 팀에서 요구와 기준에 대한 점수가 높았다.
 2.1. Developer productivity
 2.2. Object-orientation 
 2.3. Predictable, high performance
 2.4. Fast allocation
 3. JIT & AOT 
 3.1. Dart 언어로 구성된 소스코드에서 Native Binary파일을 생성하기 위한 AoT 툴체인이 초기에는 없었음. 
 3.2. Dart 팀과 Flutter 팀과 협력하여 Dart 팀이 AoT 툴체인 개발
 3.3. DartVM도 Flutter에 최적화 되도록 개선 작업 가능 
 

  17. Flutter Seoul x MODUPOP
 23
 1. What’s Flutter
 왜 Flutter는

    Dart언어를 선택했나요?
 
 1. 개발 초기에 Flutter Team도 여러가지 언어와 런타임을 고려
 2. 다른 언어 대비, Dart 언어가 팀에서 요구와 기준에 대한 점수가 높았다.
 2.1. Developer productivity
 2.2. Object-orientation 
 2.3. Predictable, high performance
 2.4. Fast allocation
 3. JIT & AOT 
 3.1. Dart 언어로 구성된 소스코드를 native binary파일을 생성하기위한 AoT 툴체인이 초기에는 없었음. 
 3.2. Dart팀과 Flutter팀과 협력하여 Dart팀이 AoT 툴체인을 개발.
 3.3. DartVM도 Flutter에 최적화되도록 개선작업 가능 
 
 var power =
 (Dart == Google &&
 Flutter == Google)

  18. Flutter Seoul x MODUPOP
 24
 1. What’s Flutter
 Access: 2023-04-08

    
 2023년 4월 8일 기준 4월 7일부터 4월 8일까지의 1일 데이터 비교 
 Flutter, React Native

  19. Flutter Seoul x MODUPOP
 25
 1. What’s Flutter
 2023년 4월

    8일 기준 2004년부터 상호 검색량 비교
 Flutter, React Native

  20. Flutter Seoul x MODUPOP
 26
 1. What’s Flutter
 2023년 4월

    8일 기준 5년 간 검색량 비교
 Flutter, React Native
 2023년 4월 8일 기준 5년 간 검색량 비교
 Flutter, React Native
 서울, 부산, 광주, 인천 ⇒ 6:4 

  21. Flutter Seoul x MODUPOP
 28
 깜짝 퀴즈
 
 그럼 Flutter의

    초기 프로젝트(코드) 명은 무엇일까요?
 (Flutter는 처음부터 Flutter라는 이름이 아니었습니다.)
 1. What’s Flutter

  22. Flutter Seoul x MODUPOP
 29
 1. What’s Flutter
 Business Logic


    Native APIs
 Business Logic
 (Dart)
 Sky Framework
 Sky Engine(C++)
 Cross language Messaging System
 2015
 https://github.com/eseidelGoogle
  23. Flutter Seoul x MODUPOP
 32
 1. What’s Flutter
 DartPad
 


    브라우저상에서 Dart, Flutter 테스트 및 실행 가능
 Github gist와 연동이 가능하여 간단한 코드 공유에 유용 

  24. Flutter Seoul x MODUPOP
 34
 1. What’s Flutter
 Developer experience

    !
 IDE: 다양한 IDE 지원 
 CLI 
 
 Flutter: The one @PixelToaast https://www.youtube.com/watch?v=sIIgtClYq0s
  25. Flutter Seoul x MODUPOP
 36
 1. What’s Flutter
 Flutter 1.0


    2018.12
 Flutter 1.2
 2019.12
 Flutter 1.17
 2020.05
 Flutter 2
 2021.03
 Sound
 Null Safety
 Flutter 2.5
 2021.09
 Flutter 3
 2022.5
 Flutter 3.3
 2022.8
 Flutter 3.7
 2023.1
 Flutter 2.10
 2022.2

  26. Flutter Seoul x MODUPOP
 2. Flutter 2023 
 Engineering Roadmap

    
 38
 https://unsplash.com/ko/%EC%82%AC%EC%A7%84/IUY_3DvM__w
  27. Flutter Seoul x MODUPOP
 39
 2. Flutter 2023 Engineering Roadmap

    
 2.1. Technical debt and team velocity
 • 가장 중요하게 생각하는것: 프로젝트의 전반적인 속도를 높이는것.
 ◦ flaky tests와 같은 기술부채 감소 
 ◦ 새로운 사람들이 팀에 합류하여 프로세스를 개선하는것 
 ◦ 생산성을 보다 빠르게 높이는것 
 
 기술부채와 팀 속도

  28. Flutter Seoul x MODUPOP
 40
 2.Flutter 2023 Engineering Roadmap 


    2.1. Technical debt and team velocity
 Flaky Tests 

  29. Flutter Seoul x MODUPOP
 41
 2.Flutter 2023 Engineering Roadmap 


    2.1. Technical debt and team velocity
 • Velocity 이슈들을 제기하거나 문서화하고 문제를 해결할 수 있는 팀원을 위한 정기 미팅을 시작(진행)할 예정
 • 정기 미팅은 Discord상에서 공지 예정
 ◦ https://discord.gg/BS8KZyg
 ◦ https://github.com/flutter/flutter/wiki/Chat
 
 기술부채와 팀 속도

  30. Flutter Seoul x MODUPOP
 42
 2.Flutter 2023 Engineering Roadmap 


    2.1. Technical debt and team velocity
 Access: 2023-04-08
 
 Issues 
 11,329 Open
 69,421 Closed
 PR 
 188 Open
 42,789 Closed

  31. Flutter Seoul x MODUPOP
 43
 2.Flutter 2023 Engineering Roadmap 


    2.1. Technical debt and team velocity
 • Issue Backlog 검토
 • 더 이상 사용되지 않거나 실행할 수 없는 Issue 종결
 • 나머지 Issue의 우선 순위를 지정하기위한 시간할애
 기술부채와 팀 속도

  32. Flutter Seoul x MODUPOP
 44
 2.Flutter 2023 Engineering Roadmap 


    2.1. Technical debt and team velocity
 • Issue Priorities 
 ◦ P0: The P0 label indicates a critically dire issue such as a build break, regression, or failure in existing features that keeps us from shipping the current build.
 ◦ Pz: The P1 label indicates that the issue deserves immediate attention, such as one actively blocking a top-tier customer who is trying to ship.
 ◦ P2: The P2 label indicates that the issue is about to block a top-tier customer or is an important item of technical debt that we want to fix as soon as possible.
 ◦ P3: The P3 label indicates high-priority issues that are at the top of the work list. This is the highest priority level a bug can have if it isn't affecting a top-tier customer or breaking the build.
 ◦ P4: The P4 label indicates issues that we agree are important to work on, but not at the top of the work list. This is the default level for bugs. 
 ◦ P5: The P5 label indicates issues we think are valid but not important.
 ◦ P6: he P6 label indicates valid issues that are unlikely to ever be worked on.
 기술부채와 팀 속도

  33. Flutter Seoul x MODUPOP
 45
 2.Flutter 2023 Engineering Roadmap 


    2.2. Performance
 1. Shader Compiler Jank를 완벽하게 제거하는 것 
 ◦ iOS부터 시작해서 Android와 데스크톱 플랫폼으로 확장
 2. Web 성능 측면 
 ◦ WebAssembly(wasm) 지원
 3. Multi-threading Rendering
 
 Flutter 성능 측면 

  34. Flutter Seoul x MODUPOP
 46
 2.Flutter 2023 Engineering Roadmap 


    2.2. Performance
 4. 플러터 앱 다운로드 사이즈 감소 
 5. Custom shader의 성능 향상 
 6. VM 측면
 ◦ Memory allocation 전략 성능 향상 
 ◦ 앱 시작 속도에 대한 성능 향상
 ◦ 반응성에 대한 성능 향상 
 
 Flutter 성능 측면 

  35. Flutter Seoul x MODUPOP
 47
 2.Flutter 2023 Engineering Roadmap 


    2.3. Quality
 1. Accessibility (접근성) 
 ◦ Flutter 애플리케이션에 쉽게 접근할 수 있도록 지속적 투자 예정 
 ◦ 모든 플랫폼에서 접근성 지원의 품질 개선 
 2. Documentation (문서화)
 ◦ 버그 수정, 소규모 패치의 형태로 이루어질 예정 
 
 품질
 3. Platform 
 ◦ 빠르게 변화하는 Android, iOS에 대한 지원 
 ◦ iOS: 
 ▪ Cupertino Widget + Widget 수 증가
 ◦ Android: 
 ▪ Predictive Back Gesture
 ▪ Android handwriting input
 ▪ Camera 플러그인 CameraX API 마이그레이션

  36. Flutter Seoul x MODUPOP
 48
 2.Flutter 2023 Engineering Roadmap 


    2.3. Quality
 Android predictive back gesture
 https://developer.android.com/guide/navigation/predicti ve-back-gesture?hl=ko#dev-option
  37. Flutter Seoul x MODUPOP
 49
 2.Flutter 2023 Engineering Roadmap 


    2.3. Quality
 https://github.com/flutter/flutter/issues/109513 Access: 2023-03-27 Android predictive back gesture

  38. Flutter Seoul x MODUPOP
 50
 2.Flutter 2023 Engineering Roadmap 


    2.3. Quality
 https://github.com/flutter/flutter/issues/109558 Access: 2023-03-27 Android predictive back gesture
 Per https://developer.android.com/guide/ navigation/predictive-back-gesture onBackPressed is being deprecated, and we need to switch to OnBackPressedDispatcher and OnBackPressedCallback.

  39. Flutter Seoul x MODUPOP
 51
 2.Flutter 2023 Engineering Roadmap 


    2.3. Quality
 Access: 2023-03-27 https://github.com/flutter/flutter/issues/115607 Access: 2023-03-27
 Android handwriting input

  40. Flutter Seoul x MODUPOP
 52
 2.Flutter 2023 Engineering Roadmap 


    2.3. Quality
 Access: 2023-03-27 https://github.com/flutter/flutter/issues/115607 Access: 2023-04-08
 Android Handwriting Input

  41. Flutter Seoul x MODUPOP
 53
 2.Flutter 2023 Engineering Roadmap 


    2.3. Quality
 https://github.com/flutter/packages/tree/main/packages/camera Access: 2023-04-08
 Camera Plugin
 2022-08-15 CameraX 적용 시작 
 2023-04-08 진행 중

  42. Flutter Seoul x MODUPOP
 54
 2.Flutter 2023 Engineering Roadmap 


    2.4. Security
 1. SLSA-3 달성을 목표 
 ◦ 2022년 SLSA-2 달성 
 2. 2024년에는 SLSA-4를 목표 
 3. Flutter Package & App 개발자의 보안 동일성 
 ◦ 동일한 수준의 보안을 달성 
 보안과 SLSA(Supply chain Levels for Software Artifacts)

  43. Flutter Seoul x MODUPOP
 55
 2.Flutter 2023 Engineering Roadmap 


    2.4. Security
 SLSA(Supply chain Levels for Software Artifacts)

  44. Flutter Seoul x MODUPOP
 56
 2.Flutter 2023 Engineering Roadmap 


    2.4. Security
 SLSA(Supply chain Levels for Software Artifacts)
 SLSA is a set of incrementally adoptable security guidelines, established by industry consensus. The standards set by SLSA are guiding principles for both software producers and consumers: producers can follow the guidelines to make their software more secure, and consumers can make decisions based on a software package’s security posture. SLSA’s four levels are designed to be incremental and actionable, and to protect against specific integrity attacks. SLSA 4 represents the ideal end state, and the lower levels represent milestones with corresponding integrity guarantees.

  45. Flutter Seoul x MODUPOP
 57
 2.Flutter 2023 Engineering Roadmap 


    2.4. Security
 SLSA(Supply chain Levels for Software Artifacts)
 https://opensource.googleblog.com/2023/03/flutter-cocoon-achieves-slsa-level-3.html
  46. Flutter Seoul x MODUPOP
 58
 2.Flutter 2023 Engineering Roadmap 


    2.4. Security
 SLSA(Supply chain Levels for Software Artifacts)
 • Artifact - any file produced as the result of a build pipeline, such as container images, language packages, compiled binaries, etc.
 • Provenance - metadata about how an artifact was built, including the build process, top-level source, and dependencies
 • Digest - the result of a cryptographic hash function which produces a fixed-size value uniquely identifying an artifact, such as a SHA-256 hash of a container image
 • Attestation - a cryptographically signed file recording the provenance of the build pipeline at the time a specific artifact or set of artifacts was produced
 • Attestor - any system or process that produces an attestation, often included as part of a build pipeline after artifact creation and prior to deployment
 • Immutable references - an identifier, such as a URL, that is guaranteed to always point to the same, immutable artifact, such as a specific container image or language package
 • Build integrity - the verification of the output of a build pipeline via attestations
 https://cloud.google.com/blog/products/application-development/google-introduces-slsa-framework
 

  47. Flutter Seoul x MODUPOP
 59
 2.Flutter 2023 Engineering Roadmap 


    2.4. Security
 SLSA(Supply chain Levels for Software Artifacts)
 Provenance
 
 Describe how an artifact or set of artifacts was produced.
 This predicate is the recommended way to satisfy the SLSA provenance requirements.
 
 https://slsa.dev/provenance/v0.1
  48. Flutter Seoul x MODUPOP
 60
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 1. Popularity
 ◦ 이슈의 👍(“thumbs-up”)수가 얼마나 있는지 확인 
 ◦ 우선순위를 정하는데 도움 
 2. Parity and Portability
 ◦ 1개의 플랫폼에서 기능을 지원한다면, 어느 플랫폼에서도 지원할 수 있는것이 중요
 3. Supporting some other effort
 ◦ 예) 성능 향상을 가능하게 하는 새로운 기능 
 Feature를 선정하는 3가지 동기부여 요소

  49. Flutter Seoul x MODUPOP
 61
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 1. Custom asset transformers, because they enable some performance improvements. 2. Efficient 2D scrolling widgets (e.g. tables and trees), to improve the performance of applications with this kind of interface. 3. Multiple windows, especially for desktop platforms, because this is a very highly requested feature. 4. Platform Views on macOS and Windows, by popular demand. 5. Drag and drop, also by popular demand. 6. Wireless debugging on iOS, our second-most-requested feature. 7. Custom "flutter create" templates, which makes it much easier for third-parties (e.g. the Flame engine) to bootstrap developers. 8. Supporting element embedding (see also #32329), which allows Flutter content to be added to any standard web <div>, by popular demand.
  50. Flutter Seoul x MODUPOP
 62
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Efficient 2D scrolling widgets (e.g. tables and trees), to improve the performance of applications with this kind of interface.
 
 https://github.com/orgs/flutter/projects/32/views/1
 Preview: Two-dimensional scrolling in Flutter
 https://youtu.be/UDZ0LPQq-n8
 

  51. Flutter Seoul x MODUPOP
 63
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Multiple windows, especially for desktop platforms, because this is a very highly requested feature.aq
 
 https://github.com/flutter/flutter/issues/30701
 

  52. Flutter Seoul x MODUPOP
 64
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Multiple windows, especially for desktop platforms, because this is a very highly requested feature.aq
 
 https://github.com/orgs/flutter/projects/39/views/1
 Preview: Multiple windows on desktop
 https://www.youtube.com/watch?v=vtB-teu57vw

  53. Flutter Seoul x MODUPOP
 65
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Multiple windows, especially for desktop platforms, because this is a very highly requested feature.aq
 
 The window singleton is deprecated In preparation for supporting multiple views and multiple windows, the window singleton has been deprecated. Code previously relying on the window singleton needs to look up the specific view it wants to operate on via the View.of API or interact with the PlatformDispatcher directly. https://docs.flutter.dev/release/breaking-changes/window-singleton
  54. Flutter Seoul x MODUPOP
 66
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Multiple windows, especially for desktop platforms, because this is a very highly requested feature.aq
 
 https://github.com/flutter/flutter/issues/116929
  55. Flutter Seoul x MODUPOP
 67
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Platform Views on macOS and Windows, by popular demand.
 https://github.com/flutter/flutter/issues/108486
 https://github.com/flutter/flutter/issues/41722
 

  56. Flutter Seoul x MODUPOP
 68
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Drag and drop, also by popular demand.
 https://github.com/flutter/flutter/issues/30719
 https://github.com/flutter/flutter/issues/30719#issuecomment-901185947

  57. Flutter Seoul x MODUPOP
 69
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Drag and drop, also by popular demand.
 https://www.android.com/better-together/nearby-share-app/
 
 Nearby Share for Windows

  58. Flutter Seoul x MODUPOP
 70
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Supporting element embedding (see also #32329), which allows Flutter content to be added to any standard web <div>, by popular demand. https://github.com/flutter/flutter/issues/118481 https://flutter-forward-demos.web.app/#/
  59. Flutter Seoul x MODUPOP
 71
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Supporting element embedding (see also #32329), which allows Flutter content to be added to any standard web <div>, by popular demand.
  60. Flutter Seoul x MODUPOP
 72
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Supporting element embedding (see also #32329), which allows Flutter content to be added to any standard web <div>, by popular demand.
  61. Flutter Seoul x MODUPOP
 73
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Material 3? 
 https://github.com//flutter/flutter/issues/91605
 https://flutter.github.io/samples/web/material_3_demo/#/
 
 Access: 2023-04-08

  62. Flutter Seoul x MODUPOP
 74
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Impeller
 Access: 2023-04-08

  63. Flutter Seoul x MODUPOP
 75
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Impeller
 https://docs.flutter.dev/perf/impeller
 

  64. Flutter Seoul x MODUPOP
 76
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 Pixel Shaders 
 3D Support
 

  65. Flutter Seoul x MODUPOP
 77
 2.Flutter 2023 Engineering Roadmap 


    2.5. Features
 https://youtu.be/goL7tvLQ7Dw?t=4429
 GraphX - Fly Dash! Demo
 https://www.youtube.com/watch?v=T_SkP68BXSY
 Pixel Shaders 
 3D Support
 

  66. Flutter Seoul x MODUPOP
 78
 Disclaimer: 
 This is a

    preview of features in development, planned to release over the next 12-24 months. 

  67. Flutter Seoul x MODUPOP
 79
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 • 1. Adaptive Layout 
 ◦ 많은 개발자의 니즈. 
 ◦ 인터페이스를 여러번 구현하지 않고 복수의 플랫폼을 지원하는 것
 • 2. New graphics backend
 ◦ 3D를 Flutter Scenes에 통합 
 ◦ 2023년에는 3D 관련 실험/연구를 진행 예정
 ◦ The low-level dart:ui API 및 새로운 shader 기능개선
 내부에서 연구되고 있는것

  68. Flutter Seoul x MODUPOP
 80
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 • 3. Wide Color Gamut Support • 4. ICU4C에서 ICU4X로 마이그레이션 ◦ Rust-based ICU Backend • 5. Dart의 새로운 기능을 활용한 Flutter 업데이트 ◦ Record & Pattern을 사용 가능하도록 API 업데이트 ◦ RISC-V 지원하기 위한 toolchain 업데이트 ◦ 플러그인을 위한 새로운 FFI 기능 
 내부에서 연구되고 있는것

  69. Flutter Seoul x MODUPOP
 81
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 https://github.com/flutter/flutter/issues/55092 2020~ Wide Gamut Color Support

  70. Flutter Seoul x MODUPOP
 82
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 Wide Gamut Color Support
 https://github.com/flutter/engine/pull/39111 • iOS 먼저 사용해 볼 수 있음.
 • Beta 채널 또는 master 채널
 2022.02
  71. Flutter Seoul x MODUPOP
 83
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 2020~ ICU4X
 
 • 모든 플랫폼의 빌드 파이프라인데 Rust언어를 포함하는 것 
 • Engine과 Dart FFI 패키지간 Rust 코드를 공유하는 방법
 • 각 패키지들의 바이너리 코드에 대한 tree-shaking 방법 
 https://icu4x.unicode.org/doc/icu/
 https://github.com/unicode-org/icu4x
 
 Unicode ICU4X 2022

  72. Flutter Seoul x MODUPOP
 84
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 Rust? 
 
 • 2006년 Mozilla Research의 Graydon Hoare가 시작한 프로젝트에서 시작 
 • 2010년 공식 발표 
 • https://www.rust-lang.org/
 https://www.rust-lang.org/
 

  73. Flutter Seoul x MODUPOP
 85
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 RISC-V
 The ClockworkPi DevTerm R-01, an experimental RISC-V computer, running a Dart console app.
 https://medium.com/flutter/whats-next-for-flutter-b94ce089f49c

  74. Flutter Seoul x MODUPOP
 86
 2.Flutter 2023 Engineering Roadmap 


    2.6. Research
 RISC-V?
 • RISC (Reduced Instruction Set Computer) 
 • Open Source! 
 • University of California, Berkeley
 • Espressif - ESP-32
 • Google - Titan 
 https://en.wikipedia.org/wiki/RISC-V
  75. Flutter Seoul x MODUPOP
 87
 2.Flutter 2023 Engineering Roadmap 


    2.7. Releases
 • 2023년 중에 4번의 Stable 배포, 12번의 Beta 배포 예정
 • 2023년에는 새로운 기능을 Stable 버전이 아닌 Beta 채널에서 사용할 수 있도록 
 ◦ Stable 채널에서 기다리기 힘들어요 
 ◦ Beta 채널을 이용해보세요~
 
 Flutter 출시계획

  76. Flutter Seoul x MODUPOP
 88
 2.Flutter 2023 Engineering Roadmap 


    2.7. Releases
 The road to Dart3
 • Around January/February 2023: Dart 3 alpha released. 
 • Around March/April 2023: Dart 3 beta released. 
 ◦ This release previews the new features in Dart 3. 
 • Around mid 2023: Dart 3 stable released.
 ◦ Sound null safety becomes the only supported mode.

  77. Flutter Seoul x MODUPOP
 89
 2.Flutter 2023 Engineering Roadmap 


    2.7. Releases
 The road to Dart3
 https://github.com/dart-lang/language/issues/546 2023-03-29

  78. Flutter Seoul x MODUPOP
 90
 2.Flutter 2023 Engineering Roadmap 


    2.7. Releases
 The road to Dart3
 2023-04-08

  79. Flutter Seoul x MODUPOP
 91
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 • Do you know… 
 • Flutter Popular Issues?
 
 
 올해 목표하지 않는것들.

  80. Flutter Seoul x MODUPOP
 92
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 The list of most popular issues
 Access: 2023-03-27 https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
  81. Flutter Seoul x MODUPOP
 93
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 • 1. Web의 Hot Reload 기능
 ◦ 현재 플러터 팀의 모든 Web Compiler 전문가들은 Wasm (WebAssembly) 지원을 위한 작업을 진행 중.
 
 • 2. Built-in 지원
 ◦ Apple Watch
 ◦ Android Wear 
 ◦ Automotive (IVI와 같은 자동차 플랫폼) 
 
 올해 목표하지 않는것들.

  82. Flutter Seoul x MODUPOP
 94
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Hot Reload on web 
 https://github.com/flutter/flutter/issues/53041 • 현재 이 이슈를 같이 작업할 Volunteered 가 없음.
 • 장기적인 Web 관련 작업은 wasm에 초점을 맞추고 있기 때문
 • 곧 해결될 것으로 보이지 않음.
 • 기술적으로 어렵고 미묘한 문제
 2020
  83. Flutter Seoul x MODUPOP
 95
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Built-in System - Automotive
 https://github.com/flutter/flutter/issues/26801
 2019

  84. Flutter Seoul x MODUPOP
 96
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Built-in System - Automotive • Apple CarPlay는 Oğuzhan Atalay가 만든 flutter_carplay를 추천 ◦ CarPlay API 제어를 위한 Flutter API를 제공 ◦ Apple의 API는 템플릿 베이스이다. (Apple's API is template based) ◦ Flutter의 가치를 발휘하지 어려움. (렌더링 엔진, 위젯 프레임워크, 플랫폼 중립성 등) • Android Auto의 경우도 동일 • Oğuzhan Atalay와 함께 협업하여 작업하거나 새로운 플러그인을 만들기를 권장 • CarPlay와 Android Auto가 직접적으로 화면에 픽셀을 그리는 방식을 https://github.com/flutter/flutter/issues/26801#issuecomment-1013565542
  85. Flutter Seoul x MODUPOP
 97
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Built-in System - Apple Watch
 https://github.com/flutter/flutter/issues/28901 https://github.com/flutter/flutter/issues/47928 2019

  86. Flutter Seoul x MODUPOP
 98
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Built-in System - watchOS / tvOS
 • It would involve code changes in the buildroot, and some changes to Dart and Skia 
 ◦ if we aren't totally off Skia and onto Impeller by then
 • Flutter 엔진에서 일부 리팩토링 작업을 진행중
 ◦ macOS, iOS 및 tvOS 또는 watchOS와 같은 embedders 사이에서 더 많은 코드를 공유할 수 있도록 개선할 예정
 • Xcode뿐만 아니라 flutter_tool에서도 작동하도록 하기 위해서는 무선 디버깅이 필수적
 ◦ TV에 USB 테더 옵션이 없음.
 • watchOS SDK는 tvOS SDK보다 iOS와 더 다르므로 Flutter 임베더, WKApplication 수명 주기 이벤트 등에서 WatchKit 의미 체계도 구현필요.
 https://github.com/flutter/flutter/issues/26801#issuecomment-1013565542

  87. Flutter Seoul x MODUPOP
 99
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Built-in System - Android Wear
 https://github.com/flutter/flutter/issues/2057 2016

  88. Flutter Seoul x MODUPOP
 100
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 • 3. Code Push 기능
 • 4. Web의 SEO 지원
 • 5. homebrew를 통한 설치 지원 
 올해 목표하지 않는것들.
  89. Flutter Seoul x MODUPOP
 101
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 https://github.com/flutter/flutter/issues/14330 2018
 https://github.com/eseidelGoogle Code Push

  90. Flutter Seoul x MODUPOP
 102
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 2019
 Code Push
 2019 • Modular application delivery
 • Dynamic extension loading
 • Dynamic patching (2019년 Roadmap에 존재했음.)
 ◦ 1. 스토어 정책 + iOS에서 원하는 퀄리티를 만족하지 못 할거 같음. (“it would be too slow”)
 ◦ 2. 보안 문제 
 ▪ Malware vectors 
 ◦ 3. patching applications를 위한 오픈소스 호스팅 솔루션이 부재함. 
 ▪ 서드파티 서비스에 의존하게 되는것을 지양

  91. Flutter Seoul x MODUPOP
 103
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 2022
 Code Push
 2019 • 2019년 이후에도 내부에서 Research는 계속 진행
 • Stores(Google Play, App Store등)의 정책이 엄격해 짐 
 ◦ JS 기반 솔루션이 스토어상에서 환영받고 있지 못함
 ◦ 상황상..make sense하지 못 한거 같음
 • React Native의 경우 코드 푸시 솔루션을 직접 제공하지 않음
 ◦ Microsoft에서 패키지를 제공하고 있음
 ◦ 이슈 데이터베이스에 거절된 앱들에 대한 많은 문제보고가 있음
 • package:rfw와 같은 UI-push 대체 솔루션이 있음.
 ◦ 코드푸시를 대채 하기는 어려움

  92. Flutter Seoul x MODUPOP
 104
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 https://shorebird.dev/
 

  93. Flutter Seoul x MODUPOP
 105
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 2019 Flutter Web SEO
 https://github.com/flutter/flutter/issues/47600
 https://github.com/flutter/flutter/issues/46789
 

  94. Flutter Seoul x MODUPOP
 106
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 2019 Flutter Web SEO
 • 근본적으로 Flutter Web 앱을 HTML로 렌더링하는건 현재 Flutter 아키테척에서 불가능
 • 그리고 Flutter Web은 근본적으로 클라이언트 사이드 기술로 설계되어 있음.
 • Flutter - WebGL, Wasm을 집중 

  95. Flutter Seoul x MODUPOP
 107
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 2023
 2019 Flutter Web WASM
 Flutter, Dart, and WASM-GC: A new model for Web applications by Kevin Moore @ Wasm I/O 2023 https://youtu.be/Nkjc9r0WDNo
  96. Flutter Seoul x MODUPOP
 108
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Flutter Web WASM
 FLUTTER, DART, AND WASM-GC: A NEW MODEL FOR WEB APPLICATIONS
  97. Flutter Seoul x MODUPOP
 109
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Flutter Web WASM
 FLUTTER, DART, AND WASM-GC: A NEW MODEL FOR WEB APPLICATIONS
  98. Flutter Seoul x MODUPOP
 110
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Flutter Web WASM
 FLUTTER, DART, AND WASM-GC: A NEW MODEL FOR WEB APPLICATIONS
  99. Flutter Seoul x MODUPOP
 111
 2.Flutter 2023 Engineering Roadmap 


    2.8. Non-goals
 Flutter Web WASM
 flutter.dev/wasm

  100. Flutter Seoul x MODUPOP
 112
 3. Flutter 2023 Strategy
 State

    of the market
 ◦ As of January 2023, there are over 700,000 apps in the Play Store that are built with Flutter, and one in five new apps on the Play Store use Flutter
 ◦ Unlike traditional web frameworks, Flutter looks beyond the DOM and JavaScript to a new generation of Canvas and WebAssembly based APIs. 
 ◦ Ubuntu has contributed the Linux port, and are broadly using it for upcoming releases of their Linux distribution, including their installer and software distribution tooling.
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  101. Flutter Seoul x MODUPOP
 113
 3. Flutter 2023 Strategy
 State

    of the market
 https://www.theregister.com/2023/04/04/ubuntu_2304_lunar_lobster_beta/ https://ubuntu.com/blog/whats-new-in-ubuntu-desktop-22-10-kinetic-kudu
  102. Flutter Seoul x MODUPOP
 114
 3. Flutter 2023 Strategy
 We

    Must 
 • migrate our ecosystem to null safety without fragmentation
 • continue to advance Dart tastefully and carefully
 • eradicate jank and other performance impediments with minimal customer effort
 • deliver unparalleled performance on all platforms
 • reduce or eliminate friction when calling system APIs
 • build in supply-chain security without impeding non-Google contributors
 • build an ecosystem that is self-sustaining
 • maintain and grow our reputation for quality
 • win a reputation with design agencies and iOS developers
 • close API and package divergences between platforms
 • grow the diversity of our community
 • support or integrate emerging ways of building UI, such as ML code completion and low-code tools.
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  103. Flutter Seoul x MODUPOP
 115
 3. Flutter 2023 Strategy
 •

    This makes the developer experience one of the most critical aspects of Dart and Flutter.
 ◦ In 2023, our north star objective remains the growth of active users. 
 ◦ Even a beautifully designed framework or programming language is of limited use without an ecosystem that includes libraries, developer tooling, training and a pervasive developer community.
 ◦ developer experience is essential to customers choosing us, since there is no platform for which using Dart or Flutter is the default. 
 ▪ In contrast, for example, Swift and SwiftUI are the default solution for iOS development, Kotlin and Jetpack Compose are the default for Android development, HTML and JavaScript are the default for web development, etc.
 
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  104. Flutter Seoul x MODUPOP
 116
 3. Flutter 2023 Strategy
 3.1

    Performance
 • Mobile
 ◦ Impeller → iOS → Android 
 
 • Web
 ◦ A large re-architecture to target WebAssembly
 ◦ Support multi-threaded rendering
 ◦ Reduce downloaded payload sizes to dramatically improve load time
 ◦ Runtime performance.
 
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  105. Flutter Seoul x MODUPOP
 117
 3. Flutter 2023 Strategy
 3.2

    interoperability
 • For Android, we want to make it easier for apps to integrate seamlessly with the underlying operating system. This includes 
 ◦ reducing the costs of calling Jetpack libraries
 ◦ reducing memory buffer copies
 ◦ making it easier to embed Flutter into existing Android projects.
 
 • For iOS, we need to improve our ability to stay up to date with the latest iOS releases,
 ◦ updates to the Cupertino widget set
 ◦ modernizing the package ecosystem to use Swift Package Manager
 ◦ improving performance. 
 ◦ We are also working on improving interop with Swift and Objective-C code through FFI. 
 
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  106. Flutter Seoul x MODUPOP
 118
 3. Flutter 2023 Strategy
 3.2

    interoperability
 
 • On the web, there is work to reduce the ‘uncanny valley’ syndrome where developers notice differences between Flutter and DOM-based content; 
 ◦ we need to support embedding Flutter into existing web projects through technologies like Web Components; 
 ◦ we need to modernize our JavaScript interop libraries; 
 ◦ we need to continue our work on supporting Wasm, Web Workers, and WebGPU for a more cohesive web experience.
 
 • On Windows and macOS, there are third-party libraries for UI (Fluent and macos_ui respectively). However, we need to complete the work we’ve started on platform views so that we can embed content from other SDKs into Flutter apps, as well as improving accessibility and adding multi-window support.
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  107. Flutter Seoul x MODUPOP
 119
 3. Flutter 2023 Strategy
 3.2

    interoperability
 Chrome ships WebGPU
 
 After years of development, the Chrome team ships WebGPU which allows high-performance 3D graphics and data-parallel computation on the web.
 
 Published on Thursday, April 6, 2023
 https://developer.chrome.com/blog/webgpu-release/
  108. Flutter Seoul x MODUPOP
 120
 3. Flutter 2023 Strategy
 3.3

    Portability
 • Our primary target in 2023 is WebAssembly, specifically the emerging work around support for garbage collected languages known as WasmGC. 
 • We are also working on supporting new processor architectures. 
 ◦ Desktop-class operating systems are increasingly moving to ARM, and we therefore need to support ARM for those operating systems
 ◦ RISC-V is an emerging platform that we will continue to investigate so we can support Flutter and Dart in embedded scenarios as well as future potential use in Android
 
 
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  109. Flutter Seoul x MODUPOP
 121
 3. Flutter 2023 Strategy
 3.4

    Ecosystem
 • As of November 2022, there are over 15,000 games published to the Play Store using Flutter, which represents 59% growth over the last twelve months.
 • 
 In 2023, we will release a second vertical toolkit focused on news, developed by a partner and co-funded by and in partnership with the Google News Initiative. https://medium.com/flutter/flutter-in-2023-strategy-and-road map-60efc8d8b0c7
  110. Flutter Seoul x MODUPOP
 122
 3. Flutter 2023 Strategy
 


    We’ll shift our focus over 2023 away from stable releases as the primary vehicle for announcing new features and towards beta releases as the proving ground, as Chrome does.
 
 https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7
  111. Flutter Seoul x MODUPOP
 123
 Summary Breakthrough graphics performance Seamless

    integration for web and mobile Early to new and emerging architectures Continued focus on developer experience Impeller Shaders for web and mobile 3D support Element embedding JNIgen and FFIgen WebAssembly RISC-V Language features Sound null safety Flutter News Toolkit
  112. Flutter Seoul x MODUPOP
 Thank you
 125
 Flutter 2023 전략과

    로드맵
 박제창(드림어스컴퍼니)