Slide 1

Slide 1 text

@jaichangpark (Dreamwalker) 2023 Flutter ϲ⑲ώϣψϜ Flutter Meetup Tokyo (#18) / Osaka (#10)

Slide 2

Slide 2 text

ᥦ࿭ᖖ෨ Park Jai-Chang (Dreamwalker) • Dreamus Company • Flutter Seoul • GDG Golang Korea • Flutter/Android/Go/Rust • Twitter: @jaichangpark • Github: @JAICHANGPARK

Slide 3

Slide 3 text

Dreamus Company • Iriver • Astell&Kern • FLO • Astell&Kern SP3000

Slide 4

Slide 4 text

https://roadmap.sh/ fl utter

Slide 5

Slide 5 text

Agenda 1. Technical debt and team velocity 2. Performance 3. Quality 4. Security 5. Features 6. Research 7. Releases 8. Non-goals

Slide 6

Slide 6 text

@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

Slide 7

Slide 7 text

@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 Θͭ͘ΥͪΗΥ͖ Ͷ͖

Slide 8

Slide 8 text

@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

Slide 9

Slide 9 text

@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 Ρ ͔ ͭΥΜΕ͡ ͣΥͺ͘

Slide 10

Slide 10 text

@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

Slide 11

Slide 11 text

@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 ͖ͩΙ͡

Slide 12

Slide 12 text

@jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10) 3. Quality δίϯϋΨ, ᶦ᭳ ΄ΥͩͶ https://developer.android.com/guide/navigation/ predictive-back-gesture Android’se predictive back gesture

Slide 13

Slide 13 text

Android's predictive back gesture #109513 Access: 2023-02-13

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

@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 ͝͡ͳΙ͘

Slide 16

Slide 16 text

@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.

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

@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 Ͷ ͖ ͝ ͥͪ͘Ι͘

Slide 19

Slide 19 text

@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
, by popular demand.

Slide 20

Slide 20 text

@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

Slide 21

Slide 21 text

@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

Slide 22

Slide 22 text

@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

Slide 23

Slide 23 text

@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
, by popular demand.

Slide 24

Slide 24 text

@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

Slide 25

Slide 25 text

@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

Slide 26

Slide 26 text

@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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

@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.

Slide 32

Slide 32 text

@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

Slide 33

Slide 33 text

@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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

@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

Slide 38

Slide 38 text

@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

Slide 39

Slide 39 text

@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

Slide 40

Slide 40 text

@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.

Slide 41

Slide 41 text

Thank you @jaichangpark (Dreamwalker) Flutter Meetup Tokyo (#18) / Osaka (#10)