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

2019년의 플러터: 모바일을 넘어

Ben
July 16, 2019

2019년의 플러터: 모바일을 넘어

Ben

July 16, 2019
Tweet

More Decks by Ben

Other Decks in Programming

Transcript

  1. ೒۞ఠۆ? ೞա੄ ௏٘۽ ݽٚ ٣߄੉झী ࡅܰҊ ইܴ׮਍ জਸ. Dart WEB

    ݽ߄ੌ (Smartphone / Tablet / Foldable / Watch) TV / IoT Desktop (Windows/MacOS/Linux)
  2. ೞա੄ ௏٘۽ ݽٚ ٣߄੉झী ࡅܰҊ ইܴ׮਍ জਸ. ೒۞ఠۆ? ֎੉౭࠳ә੄ ಌನݢझ

    Theming Widgets Rendering Animation Painting Gestures Foundation Framework(Dart) Engine(C++) Skia Dart VM Text Android/iOS runner Hardware
  3. ࢶ঱੸ UI b.setColor(red) b.clearChildren() ViewC c3 = new ViewC(...) b.add(c3)

    return ViewB( color: red, child: ViewC(...),
 ) Imperative style Declarative style
  4. Google I/O 2019ীࢲ੄ Flutter ࣁٜ࣌ Beyond Mobile: Material Design, Adaptable

    UIs, and Flutter Building for iOS with Flutter Programatic State Management in Flutter Beyond Mobile: Building Flutter Apps
 for iOS, Android, Chrome OS, and Web Dart: Productive, Fast, Multi-Platform - Pick 3
  5. Dart 2.3 Dark mode theme Accessibility Flutter for Web In

    App Purchase Material Theming Apple Store Requirements Foldables Flutter ML Kit Flutter for desktop Flutter for Embedded Cupertino Widgets Semantics Adaptive Layout Adaptive UI Material Widgets New webpage for Dart
  6. Flutter : ݽ߄ੌਸ ֈয Flutter for web Themeing Widgets Rendering

    Animation Painting Gestures Foundation Framework(Dart) Browser(C++, JS) Canvas JS Engine DOM Skia ূ૓ਸ ૒੽ ׮ܖ૑ ঋҊ DOM / HTML5 Canvasܳ ੉ਊೞৈ ۪؊݂ Dart2js compiler Your code Hot restart / Devtools / linking
  7. Flutter : ݽ߄ੌਸ ֈয Flutter for web TECHNICAL PREVIEW Plugin

    system੉ ডೣ Flutter APIо ׮ ҳഅغ૑ ঋ਺ ূ૓࢚੄ ಌನݢझ ୭੸ചо ੉ܖয૑૑ ঋ਺ Chrome ࠳ۄ਋੷݅ਸ Ҋ۰ dart:html dart:js dart:svg dart:indexed_db ... അ੤ Flutter repoܳ forkೞৈ ѐߊ੉ ੉ܖয૑Ҋ ੓ਵա(flutter_web) ୭ઙ੸ਵ۽ח ೞա੄ SDK/Frameworkо ؼ Ѫ
  8. Flutter : ݽ߄ੌਸ ֈয Flutter for web TECHNICAL PREVIEW ࢤп؀۽

    غ૑ ঋח ز੘ٜ੉ ݆਺(TextField::onSubmitted(), hover action ١) ఫझ౟ ࢶఖ ޙઁ/Material Icon੉ ӝࠄ੸ਵ۽ ࢎਊ੉ উغח ੼ ١..
  9. Flutter : ݽ߄ੌਸ ֈয Flutter on the desktop Framework(Dart) Engine(C++)

    Platform-specific embedder Hardware Your code flutter.dev/desktop
 https://github.com/google/flutter-desktop-embedding EARLY STAGE DEVELOPMENT
  10. Material Theming Dark Theme Material Widgets Accessibility Adaptive UI Flutter

    1.5 AndroidX 64-Bit Android Apps Material Widgets Flutter 1.7
  11. Material Theming ThemeData( cardTheme : CardTheme( … ) ) ೠߣ੄

    ழझథ ప݃ ੿੄۽ জ ੹୓ীࢲ ӝࠄ ਤઇ੄ झఋੌ ૑੿
  12. Material Theming ೠߣ੄ ழझథ ప݃ ੿੄۽ জ ੹୓ীࢲ ӝࠄ ਤઇ੄

    झఋੌ ૑੿ AppBarTheme ButtonTheme CardTheme ChipTheme DialogTheme IconTheme ... and more
  13. Material Widgets updates Slider ؊ ݆਷ ழझథ UI API ઁҕ

    (౟ۑ / ೩ٜ) SliderTheme( data: SliderThemeData(/**/), child: Slider() )
  14. Adaptive UI ೒ۖಬী ݏח ਤઇਸ
 ف ߣ ࢶ঱ೞ૑ ঋইب
 प೯غח

    ೒ۖಬী ݏѱ. Switch.adaptive( // ) Slider.adaptive( // )
  15. Adaptive UI "Flutter ॳݶ উ٘۽੉٘ জ୊ۢ ࠁ੉ח iOS জ੉ աয়ח

    Ѣ ইצоਃ?" if(Platform.isIOS) { return CupertinoTabBar(items: sections); } else { return BottomNavigationBar(items: sections); }
  16. 64-Bit Android App support Android App Bundles ૑ਗਸ ా೧
 


    32-Bit ৬ 64-Bitਸ ఋѶ flutter build app - -split-per-abi
  17. ETC Game Controller support Better Text Selection Experience Rich Text

    Rendering More Pixel-Perfect Cupertino widgets Clear Indication with write permission error Xcode build system Xcode build system
  18. Dart ݽ؍ - ݣ౭ ಁ۞׮੐ ঱য JavaScript / Java /

    C# ঱যܳ ೧ࠁ࣑׮ݶ
 য࢝ೞ૑ ঋਸ ঱য Flutterח UIࠗఠ ۽૒ө૑ Dart۽ ҳࢿ
  19. Dart Hello world main( ) { var words = ['Hello',

    'world']; print('${words.join(", ")}!'); }
  20. Dart ё୓૑ೱ 
 ௿ېझ ё୓ ࢚ࣘ ஭ङച ੋఠಕ੉झ ೣࣻഋ ೐۽Ӓې߁


    ۈ׮ Ҋରೣࣻ ௿۽ઉ ੿੸ ఋੑ
 ఋੑ Ѩࢎ ઁ֎ܼ झ௼݀౟ ঱য੄ ಞউೣ ੿੸ ఋੑ ঱য੄ উ੿х
  21. Widget build(BuildContext context){ var items = [Text('Contents')]; if (page !=

    pages.last) items.add(Text('Next')); items.add(Text('Index')); return Column(children: items); }
  22. Widget build(BuildContext context){ var items = [Text('Contents')]; if (page !=

    pages.last) items.add(Text('Next')); items.addAll(sections); items.add(Text('Index')); return Column(children: items); }
  23. Widget build(BuildContext context){ var items = [Text('Contents')]; if (page !=

    pages.last) items.add(Text('Next')); for (var section in sections) items.addAll(sections.chapters); items.add(Text('Index')); return Column(children: items); }
  24. Widget build(BuildContext context){ var items = [Text('Contents')]; if (page !=

    pages.last) items.add(Text('Next')); for (var section in sections) items.addAll(sections.chapters); items.add(Text('Index')); return Column(children: items); } Widget build(BuildContext context){ return Column(children: [ Text('Contents'), Text('Next'), Text('Index'), ]); }
  25. Dart 2.3 Widget build(BuildContext context){ return Column(children: [ Text('Contents'), if

    (page != pages.last) Text('Next'), ...sections Text('Index'), ]); }
  26. Dart 2.3 Widget build(BuildContext context){ return Column(children: [ Text('Contents'), if

    (page != pages.last) Text('Next'), for (section in sections) ...sections.chapters Text('Index'), ]); }
  27. Dart 2.3 Widget build(BuildContext context){ return Column(children: [ Text('Contents'), if

    (page != pages.last) Text('Next'), for (section in sections) ...sections.chapters Text('Index'), ]); }
  28. Dart 2.3 Widget build(BuildContext context){ return Column(children: [ Text('Contents'), if

    (page != pages.last) Text('Next'), for (section in sections) ...sections.chapters Text('Index'), ]); }
  29. Dart 2.3 Widget build(BuildContext context){ return Column(children: [ Text('Contents'), if

    (page != pages.last) Text('Next'), for (section in sections) ...sections.chapters Text('Index'), ]); }
  30. Widget build(BuildContext context){ var items = [Text('Contents')]; if (page !=

    pages.last) items.add(Text('Next')); for (var section in sections) items.addAll(sections.chapters); items.add(Text('Index')); return Column(children: items); } Widget build(BuildContext context){ return Column(children: [ Text('Contents'), if (page != pages.last) Text('Next'), for (section in sections) ...sections.chapters Text('Index'), ]); } Dart 2.3
  31. References "Hummingbird: Building Flutter For The Web." https://medium.com/flutter/hummingbird-building-flutter-for-the-web-e687c2a023a8 "Flutter/Flutter_Web." https://github.com/flutter/flutter_web

    "Ins And Outs Of Flutter Web." https://medium.com/flutter-community/ins-and-outs-of-flutter-web-7a82721dc19a "Flutter - Beautiful Native Apps In Record Time."https://flutter.dev/ "Beyond Mobile: Material Design, Adaptable UIs, and Flutter (Google I/O'19)"
 https://www.youtube.com/watch?v=YSULAJf6R6M&list=PLjxrf2q8roU2no7yROrcQSVtwbYyxAGZV "Building for iOS with Flutter (Google I/O'19)" 
 https://www.youtube.com/watch?v=ZBJa-xjZl3w&list=PLjxrf2q8roU2no7yROrcQSVtwbYyxAGZV&index=2 Beyond Mobile: Building Flutter Apps for iOS, Android, Chrome OS, and Web (Google I/O'19) https://www.youtube.com/watch?v=IyFZznAk69U&list=PLjxrf2q8roU2no7yROrcQSVtwbYyxAGZV&index=4 "Google/Flutter-Desktop-Embedding."
 https://github.com/google/flutter-desktop-embedding