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

2023 Flutter ロードマップ - Flutter Meetup Tokyo (#18...

JaiChangPark
February 15, 2023

2023 Flutter ロードマップ - Flutter Meetup Tokyo (#18) / Osaka (#10)

2023 Flutter ロードマップ
Flutter Meetup Tokyo (#18) / Osaka (#10)

JaiChangPark

February 15, 2023
Tweet

More Decks by JaiChangPark

Other Decks in Programming

Transcript

  1. ᥦ࿭ᖖ෨ Park Jai-Chang (Dreamwalker) • Dreamus Company • Flutter Seoul

    • GDG Golang Korea • Flutter/Android/Go/Rust • Twitter: @jaichangpark • Github: @JAICHANGPARK
  2. Agenda 1. Technical debt and team velocity 2. Performance 3.

    Quality 4. Security 5. Features 6. Research 7. Releases 8. Non-goals
  3. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 1.

    Technical debt and team velocity ࿰ᘤ᧣ᐔᯊͺφ⑲ϥ΀ᖩႷ(ϞϲμϋΨ) · ͧ ͖ ͯ ͡ ͻ • ͖ͶΔ΀Κ͘ͽfᒡͱͳ͞͹͟ΝᱠΔᬍ᠓ͼᥭᜬ΁fϜϲνάδύ΀᧶ମ᧣ͼᖩႷΤᓓͤΝͥ ͺ͹ͫg • ࿰ᘤᐔᯊď fl aky tests, ᏵᚯᨷͼϋξύͼͻĐΤවΛͫͥͺᷤ͞ΐΞ͸͖ΐͫg ͪ͠ΗͶ · ͧ ͖ • ΐͱfϜϲπξΤ෰ᔭͩ͸f᙮͖ͩᤫʑ͞φ⑲ϥͽࢀ൰ͩfᓺᒽᕥΤḟᓓ͹͟ΝΚ͘ͽͫΝ ͥͺΔ᣾ዳͩΐͫg • ͥ΀኷᧣΀ͱΓͽfϞϲμϋΨ΀ዧ᩼Τᩮပͩfየᔉặͩfରॲ͹͟Νφ⑲ϥ Ϧϸϕ⑲ḟͣ ͸ ͖ ͟ ͱ͖ͩΙ ΀ᨷ࿴᧣ͼձᤋΤ෺ᘿͩΐͫg
  4. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 1.

    Technical debt and team velocity ࿰ᘤ᧣ᐔᯊͺφ⑲ϥ΀ᖩႷ(ϞϲμϋΨ) · ͧ ͖ ͯ ͡ ͻ • ձٞ͸ɺDiscord ΩϞϸύ࿸ၙΤᑿᠭͩ͸fDiscord ΀φ⑲ϥ Ϧϸϕ⑲ͽᴢᬰͧΞΐ Ͷ ͘ ͳ ͫg • https://discord.gg/BS8KZyg • https://github.com/ fl utter/ fl utter/wiki/Chat • ࿆၀΁f1) issue backlogΤệ᤹ͫΝg(ݕ౼͠ʣ2) ഇࢭ(Out of Date)ΐͱ΁࣮ߦ͹͟ ΁ ͖ ͩ ͪ͵ͥ͘ ͼ͡ͼ͵ͱIssueΤ᪾ᇇͫΝg 3) ࢒Γͷ໰୊ͷᠸᔬᘡᢌ᏶ͣͽᙉණΤᑢΖͫᜮᨷ͹ͫg Θͭ͘ΥͪΗΥ͖ Ͷ͖
  5. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 1.

    Technical debt and team velocity ࿰ᘤ᧣ᐔᯊͺφ⑲ϥ΀ᖩႷ(ϞϲμϋΨ) · ͧ ͖ ͯ ͡ ͻ Access: 2023-02-13 Access: 2023-02-13 - Issues - 11,435 Open - 67,061 Closed - PR - 201 Open - 41,183 Closed
  6. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 2.

    Performance ϖϚή⑲ϣϸξ, ᕥၙ ͖ͭ΀͘ 1. ᱠᰮͽ iOS ͹fᮈͽ Android ͺόξδύψϜ͹fďshader compiler jankĐμά⑲ υ⑲ θϸϖΩϮ΀νϨϸδΤៜ᧶ͽᒵ᩹ͩͱ͖ͺວ͚͸͖ΐͫg ͧͪ͡Ι 2. For web, τ⑲ηψύͺͩ͸΀ Wasm ΀κϢ⑲ύͽᲔΜ᪝Υ͹͜Μf multi-threaded ͺ ͡ rendering(ϣϰφξϱψώ ϱϸυϯϸε)΀ᑿᠭΤ᪣ᒕͩf࿥Ꮳ᧣ͼ Flutter ΧϜϯζ⑲ ͩ Κ ͘ ͳΙͧ͘ μϬϸ΀υΫϸϲ⑲ώ κΩοΤවΛͩf custom shaders(ΰξτϥ μά⑲υ⑲΀ϖ Ϛή⑲ϣϸξΤḟᓓͧͭΝຌը͔͞Μΐͫg ͥͪ͘Ι͘ 3. For our VM-based backends, Ԡ౴ᕥͺΧϜϯ΀ပხϖϚή⑲ϣϸξΤ෰ᔭͫΝͱ ͘͜ͺ͖ͭ͘ ͖ͮ͝Υ ΓͽfMemory allocation(ϦϧϯᷡΜ౰͸)ઓུΤ෰ᔭͫΝͥͺΤݕ౼ͩ͸͖ΐͫg Ρ ͔ ͭΥΜΕ͡ ͣΥͺ͘
  7. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 3.

    Quality δίϯϋΨ, ᶦ᭳ ΄ΥͩͶ 1. Accessibility • Flutter ΧϜϯͽඦ୯ͽΧδπξ͹͟ΝΚ͘ͽͫΝͱΓfၞᛡ΀ᴬᥫΤଓͣfͫ΋͸΀ ͱ ͞ ͡ ͺ ͘ ͩ ϜϮψύϚή⑲ϥ͹΀ΧδπμϘϯϋΨ κϢ⑲ύ΀ᶦ᭳Τḟᓓͧͭΐͫg https://docs. fl utter.dev/development/ accessibility-and-localization/ accessibility
  8. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 3.

    Quality δίϯϋΨ, ᶦ᭳ ΄ΥͩͶ 2. Platform • iOS: • ᒡͱͳ΁࿆၀΀CupertinoΫΨνάψύπψύ͹͝ͼΜ΀᭢าΤᗮͤΝͥͺΤ࿴Ⴁͩf ͩ Υ Ώ ͺ • ͯΞΤᱠ᙮΀ঢ়ᴋͽᏂͳfκϢ⑲ύͧΞ͸͖ΝΫΨνάψύ΀਺Τ૿Ζͩΐͫg ͱΔ • Android: • Android's predictive back gesture ͺ Android handwriting input΀κϢ⑲ύΤ࣮ ૷ͫΝᜮᨷ͹ͫg • ΐͱfΰϦϮPlugin(ϜϮεΩϸĐΤAndroid΀ᱠ᙮΀CameraX APIͽᤚᙝͫΝᜮᨷ͹ͫg ͖ͩΙ͡
  9. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 3.

    Quality δίϯϋΨ, ᶦ᭳ ΄ΥͩͶ https://developer.android.com/guide/navigation/ predictive-back-gesture Android’se predictive back gesture
  10. Android handwriting input #115607 Recently, support for Apple Pencil support

    was added to Flutter via the "Scribble" feature. We should also support stylus handwriting input on Android as well, using a common set of framework APIs. Access: 2023-02-13
  11. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 4.

    Security πβϪϯϋΨ 1. SLSA compliance (supply chain integrity) • ࿆၀΀ᒡͱͳ΀ᫌͼϯϢνύϯͽͶ͖͸SLSA-3ͽႯၸͫΝ኷ᶝ͹ͫg ͜Δ ͺ͘ͱͶ Δ͡΄Ι͘ • དྷ೥ͷSLSA-4ͽଓ͡g 2. ΐͱfFlutterϖψζ⑲νͺΧϜϯ෺ൃᥥ͞ჯͪϱϞϰ΀πβϪϯϋΨΤၸᕧ͹͟ΝΚ͘ ͽω⑲ϰΤ֦ுͩͱ͖ͺᒐ͖ΐͫg ͝͡ͳΙ͘
  12. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 4.

    Security πβϪϯϋΨ https://slsa.dev/ Safeguarding artifact integrity across any software supply chain(κϜϮΩφά⑲ϸ) Supply chain Levels for Software Artifacts, or SLSA (salsa). It’s a security framework, a check-list of standards and controls to prevent tampering, improve integrity, and secure packages and infrastructure in your projects, businesses or enterprises. It’s how you get from safe enough to being as resilient as possible, at any link in the chain.
  13. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 4.

    Security πβϪϯϋΨ https://slsa.dev/spec/v0.1/levels#summary-of-levels
  14. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 5.

    Features 3 Motivations(ϧφϞ⑲μϬϸ, ხ࿸᏶ͣ) 1. Popularity • ᒡͱͳ΁f၉ᅪ΀ᠸᔬᘡᢌΤแΓΝ΀ͽ᜽ርͶΚ͘ͽfIssueͽ࿪ͭΛΞͱ|͖͖Ϳ}΀ጫԠ΀ ͻΜΙ͡ Θͭ͘ΥͪΗΥ͖ Κ ਺Τệ᤹ͩΐͫg 2. Parity and Portability (ჯᄑͺ὆ଳᕥ) • 1 Ͷ΀ϜϮψύϚή⑲ϥ͞࿸ၙΤκϢ⑲ύͩͱΛfͻͥ͹Δ࿸ၙͫΝΚ͘ͽͫΝͥͺ͞ᬍ᠓ Ͳͺයͪ͸͖ΐͫg 3. Supporting some other e ff ort. • e.g. ᱮ൰΀ϖϚή⑲ϣϸξḟᓓΤ൱ၙͽͫΝ᙮࿸ၙ΀ᦉᷯg Ͷ ͖ ͝ ͥͪ͘Ι͘
  15. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 5.

    Features 1. Custom asset transformers, because they enable some performance improvements. 2. E ff i cient 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 " fl utter 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.
  16. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 5.

    Features 2. E ffi cient 2D scrolling widgets (e.g. tables and trees), to improve the performance of applications with this kind of interface. (ͥ΀᪽΀Ωϸτ⑲Ϛά⑲ ξ͹ΧϜϯ΀ϖϚή⑲ϣϸξΤḟᓓͧͭΐͫg) Preview: Two-dimensional scrolling in Flutter https://youtu.be/UDZ0LPQq-n8
  17. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 5.

    Features 3. Multiple windows, especially for desktop platforms, because this is a very highly requested feature. (ϯδέξύ΁ᑤᓝͽၞ͡΀࿸ၙͲ͝Λ͹ͫg) Preview: Multiple windows on desktop https://www.youtube.com/watch?v=vtB-teu57vw
  18. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 5.

    Features 5. Drag and drop, also by popular demand. Support drag and drop across Flutter boundary #30719 https://github.com/ fl utter/ fl utter/issues/30719 https://github.com/ fl utter/ fl utter/issues/ 30719#issuecomment-901185947
  19. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 5.

    Features 6. Supporting element embedding (see also #32329), which allows Flutter content to be added to any standard web <div>, by popular demand.
  20. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 5.

    Features Material 3 ΁ͻ͘ͼ͵͸ΝĦ https://github.com// fl utter/ fl utter/issues/91605 Access: 2023-02-13
  21. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 6.

    Research, ݚڀ ͣΥ͟Η͘ 1. Android ͺ iOS ΀ᑌ༯͝ΛᘿΓ͸f᷁Λ͝΀ṟᙚ΀ΧυϜϋΨϛ ϱΩΧΫύͥ͞ΞΛ΀ϐ⑲οͽ ΄ ͝ ͡ ରԠ͹͟Ν͝ͻ͘͝Τ᪣ᒕͩͱ͖ͺວ͚͸͖ΐͫg 2. ᒡͱͳ΀᙮͖ͩ Graphics Backend(εϮϚΨψδ ϕψδέϸώ)΁f᙮࿸ၙ΀࿸ձΤᩮ໊ͩΐͫg • 3D Τ Flutter scenes(μ⑲ϸ)ͽᴡᷯ ͺͦ͘͘ • ࿆၀΁ 3D ΀࣮ݧΤ෺ᘿͫΝᜮᨷ͹ͫg • ᙮͖ͩ Graphics Backend(εϮϚΨψδ ϕψδέϸώ)͞ low-level΀dart:ui APIͺ᙮͖ͩ μά⑲υ࿸ၙΤ෰ᔭ͹͟Νͺᙩͪ͸͖ΐͫg 3. ᒡͱͳ΁᠓ཏ΀ၞ͖࿸ၙͺͩ͸f wide color gamut supportďͯ͜Λ͡iOS͝Λξτ⑲ύĐ΀࣮ ૷Τ᪣ᒕͩ͸͖ΐͫg ͳΙͧ͘ Ωϸτ⑲Ϛά⑲ξΤ᷁ႷΔᦪ࣮૷ͫΝͥͺͼ͡fᏝ ͪ͵ͯ͘ ਺΀ϜϮψύϚή⑲ϥΤκϢ⑲ύͩΐͫg
  22. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 6.

    Research, ݚڀ ͣΥ͟Η͘ 4. ICU4C͝ΛICU4Xď᙮͖ͩRustϞ⑲ξ΀ICUϕψδέϸώĐΊ΀ᤚḝΤ᧤ྵ᧣ͽݕ౼ͩ ͖ ͥ ͘ ͭ͵͟Ι͡ ͣΥͺ͘ ͸͖ΐͫg • Rust Τͫ΋͸΀ϜϮψύϚή⑲ϥ΀Ϙϰώ ϖΩϜϮΩϸͽ᪝ΑࠐΒፖ᎚ͽͶ͖͸᪣ᒕͫ Νᶶ᠓͔͞Μΐͫg • Engine(έϸνϸ)ͺDart FFI ϖψζ⑲νණ͹ Rust θ⑲ώΤ໌ᢶͫΝፖ᎚g • ϖψζ⑲ν͹ᑿᠭͧΞΝ binary code (ϕΩϏϯθ⑲ώ)ͽରͩ͸ tree-shaking (ωϯ⑲ μά⑲βϸε)Τ࣮ḝͫΝፖ᎚g
  23. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 6.

    Research, ݚڀ ͣΥ͟Η͘ • ICU4X Unicode ICU4X 2022
  24. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 6.

    Research, ݚڀ ͣΥ͟Η͘ • Rust • Rust΁f2006၀ͽMozilla Research΀ैᜬᡱ͹͔ΝGraydon HoareͽΚ͵͸෺ᘿͧ Ξͱ෪ᤫϜϲνάδύ͹ᕧᦨͩΐͩͱg • https://www.rust-lang.org/
  25. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 6.

    Research, ݚڀ ͣΥ͟Η͘ 5. ᙮࿸ၙΤớᠭͫΝͱΓͽFlutterΤ๞᙮ͫΝፖ᎚Τ᪣ᒕͫΝᙉණΤᑢΖͫᜮᨷ͹ͫg ͥͩ͘Υ • Dart᜔΁f࿆၀Ⴗͽ records Ζpatterns(ϖτ⑲ϸ)ΤᑿᠭͫΝΚ͘ͽAPIΧψϜό⑲ ύͼͻΤ᭢ΓΝᜮᨷ͹ͫg • RISC-VΤκϢ⑲ύͫΝΚ͘ͽω⑲ϰφά⑲ϸΧψϜό⑲ύΤ᭢ΓΝᜮᨷ͹ͫg • ϜϮεΩϸ͹᙮͖ͩFFI࿸ၙΤᑿᠭ͹͟ΝΚ͘ͽͩΐͫg
  26. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 7.

    Releases, ϯϯ⑲ξ • 2023 ၀ᬊͽ 4 Ͷ΀ᚯᨷᵅϯϯ⑲ξͺ 12 ΀Ϟ⑲τᵅϯϯ⑲ξΤᜮᨷͩ͸͖ΐͫg • 2023 ၀ͽ΁f᙮͖ͩ࿸ၙ͞ᚯᨷᵅ΀ϯϯ⑲ξ φϨϒϰͽͼΝ΀ΤႡͶ΀͹΁ͼ͡fϞ⑲ τ φϨϒϰͽၸͩͱᙉᨨ͹ൃᶡͫΝͥͺͽᤚḝͫΝ൱ၙᕥ͔͞Μΐͫg • ᤼ጽͽf๞᙮κΩδϰΤ᪇Γͱ͖ᦉᷯ΁fϞ⑲τ φϨϒϰΤᑿᠭͫΝͥͺΤ͜קΓͩΐ ͥͩ͘Υ ͫg
  27. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 8.

    Non-goals ኷ᶝΤͩͼ͖ͥͺg 1. Webͽ Hot Reload(Ϡψύ ϯϲ⑲ώ)Τ࣮૷ͫΝ ͪ͵ͯ͘ 2. code push Τ࣮૷ͫΝ ͪ͵ͯ͘ 3. built-in support for wearables (Apple Watch, Android Wear) or automotive integrations 4. built-in support for SEO on web, or installation via homebrew.
  28. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 8.

    Non-goals ኷ᶝΤͩͼ͖ͥͺg 2. code push Τ࣮૷ͫΝ ͪ͵ͯ͘ https://github.com/ fl utter/ fl utter/issues/14330#issuecomment-1279484739 Access: 2023-02-13
  29. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 8.

    Non-goals ኷ᶝΤͩͼ͖ͥͺg https://github.com/ fl utter/ fl utter/issues/46789 • support for SEO on web Access: 2023-02-13
  30. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 8.

    Non-goals ኷ᶝΤͩͼ͖ͥͺg Access: 2023-02-13
  31. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 8.

    Non-goals ኷ᶝΤͩͼ͖ͥͺg • ࢒೦ͳ͕Βɺࢲͨͪ͸༧૝͍ͯ͠ͳ͔ͬͨύλʔϯΛൃݟ͠·͕ͨ͠ɺৼΓ ฦͬͯΈΔͱ໌Β͔Ͱ͢ɻ • ᷁Λ͝΀ሑᣂ͹࿰ᘤ᧣ͽ࣮ḝ͹͟ͼ͖fΐͱ΁࿖͖ͽ͖͡ዧ᩼Τ᩹ͫ͡΋͸΀the ͔Ͷ͖͝ highest-ranked issues(ύψϜϱϞϰ΀ዧ᩼)ΤḑแͫΝͺ͟f • ͯ΀ใໝf࢒͵͸͖ΝᱠີϮϸδ΀ΩμϪ⑲(issue)ͫ΋͸f࣮ḝᏵ൱ၙΐͱ΁᷁Λ͝΀ ṟ͹࿖͖ͽ͖͡ዧ᩼͹ͫg
  32. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) Flutter

    Forward Edition Flutter Forward͹ൃᶡͧΞͱϲ⑲ώϣψϜg(Future Work) 1. Breakthrough graphics performance • Impeller • μά⑲υ⑲: Pixel shaders / Shaders for web and mobile • 3D Support 2. Seamless integration for web and mobile • Element embedding • FFIgen & JNIgen
  33. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) Flutter

    Forward Edition Flutter Forward͹ൃᶡͧΞͱϲ⑲ώϣψϜg(Future Work) GraphX - Fly Dash! Demo https://www.youtube.com/watch?v=T_SkP68BXSY Access: 2023-02-13
  34. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) Flutter

    Forward Edition Flutter Forward͹ൃᶡͧΞͱϲ⑲ώϣψϜg(Future Work) 3. Early to new and emerging architectures • WebAssembly • RISC-V 4. Continued focus on developer experience • Language features (Dart 3) • Sound null safety • Flutter News Toolkit
  35. @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) Dart

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