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

최신 Flutter Desktop 톺아보기 - DevFest 2022 Songdo

JaiChangPark
November 19, 2022

최신 Flutter Desktop 톺아보기 - DevFest 2022 Songdo

JaiChangPark

November 19, 2022
Tweet

More Decks by JaiChangPark

Other Decks in Programming

Transcript

  1. 3

  2. 4

  3. 5

  4. 톺아-보다 동사 1.샅샅이 톺아 나가면서 살피다. • 좀 더 차근차근하게

    상배의 아래위를 톺아보며 밤마다 공동묘지에 숨어들어야 될 셈속을 들춰 보기로 했다. 출처 <<이문구, 장한몽>> https://ko.dict.naver.com/#/entry/koko/7f3f3584722a41a4b7cd38a41c65dd7c 7
  5. “In 2022 we will make good on this promise, and

    further raise our quality on web and desktop. We believe Flutter's growth will increasingly come from web and desktop: ecosystems that each have many millions of developers.” Flutter 2022 Strategy https://docs.google.com/document/d/e/2PACX-1vTI9X2XHN_IY8wDO4epQSD1CkRT8WDxf2CEExp5Ef4Id206UOMopkYqU73FvAnnYG6NAec NSDo9TaEO/pub 접속일자: 22-11-09 9
  6. In H2 2021, we put a big emphasis on team

    velocity, and slowed down feature development to build better infrastructure for Flutter. That work has not ended, even as we ramp back up and take advantage of this work. Particularly as we grow the team, and add web and desktop to our stable channel, along with new hardware like the Apple M1 chipset, it becomes more critical than ever that our testing infrastructure can adequately support our growing demands. Flutter 2022 Strategy https://docs.google.com/document/d/e/2PACX-1vTI9X2XHN_IY8wDO4epQSD1CkRT8WDxf2CEExp5Ef4Id206UOMopkYqU73FvAnnYG6NAec NSDo9TaEO/pub 접속일자: 22-11-09 10
  7. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop Flutter in 2022:

    strategy and roadmap https://medium.com/flutter/flutter-in-2022-strategy-and-roadmap-8c5eaf7c4275 접속일자: 22-11-09 Some examples of this include the work that Sony is doing on embedded Linux; the investments that Toyota and other automotive companies are making on using Flutter in Automotive Grade Linux, and work from Samsung and others to port Flutter to Tizen. 11
  8. 1.0 18.12 Flutter Desktop Flow Desktop Embedding Flutter Live 최신

    Flutter Desktop 톺아보기 12 Desktop Preview -2020 Windows, macOS, Linux Beta 2021
  9. 2.10 3.0 22.02.04 22.05 Flutter Desktop Flow 3.3 22.08 ??

    23.01 Windows Stable Linux, macOS beta Linux, macOS Stable 최신 Flutter Desktop 톺아보기 13
  10. In 2022 we plan to bring our desktop support to

    the stable channel. We plan on focusing on testing and announcing one platform at a time, as they become ready, starting with Windows, then Linux, and macOS. A significant part of this effort is expanding our regression test suite to give us the confidence that enables us to expand on these efforts without breaking existing code. Desktop ✅ https://github.com/flutter/flutter/wiki/Roadmap 접속일자: 22-11-09 14
  11. https://gs.statcounter.com/os-market-share/desktop/worldwide Desktop Operating System Market Share Worldwide Oct 2021 -

    Oct 2022 1. Flutter Desktop 20 • Windows 점유율이 높네요 • macOS는 15-16% Windows macOS
  12. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop • 모바일환경 스마트폰

    사용자가 PC 사용자를 넘어설 정도로 모바일 사용자 수는 상당하다. • 예전에는 데스크톱앱을 많이 만들었지만 이제는 모바일/웹으로도 다 가능한 시대 (저전력, 컴퓨팅파워) ◦ 뭐하러 PC앱만드나요? 모바일앱이나 웹앱 만들지요..? • 하지만 산업현장에서나 임베디드 시스템 및 특수한 경우 에는 데스크톱앱이 필요합니다. 24
  13. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop Supported platforms Support

    Tiers We define three tiers of support for the platforms on which Flutter runs: 1. Google-tested platforms are automatically tested at every commit by continuous integration testing. 2. Best-effort platforms, supported through community testing, are platforms we believe we support through coding practices and ad-hoc testing, but rely on the community for testing. 3. Unsupported platforms, which are platforms that might work, but that the development team doesn’t directly test or support. https://docs.flutter.dev/development/tools/sdk/release-notes/supported-platforms 접속일자: 22-11-07 27
  14. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop Supported platforms https://docs.flutter.dev/development/tools/sdk/release-notes/supported-platforms

    접속일자: 22-11-07 Platform Version Channels Linux Debian, 64-bit All macOS El Capitan (10.11) & above All Windows Windows 7 & above, 64-bit All 28
  15. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop Supported platforms https://docs.flutter.dev/development/tools/sdk/release-notes/supported-platforms

    접속일자: 22-11-07 Platform Version Linux Debian 10 Linux Ubuntu 18.04 LTS macOS Monterey (12) & above Windows Windows 10 Google-tested platforms 29
  16. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop Supported platforms https://docs.flutter.dev/development/tools/sdk/release-notes/supported-platforms

    접속일자: 22-11-07 Platform Version Linux Debian 11 Linux Debian 9 & below Linux Ubuntu 20.04 Linux Ubuntu 22.04 (Aspirational Google-tested platform) Best-effort platforms - Linux 31
  17. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop Supported platforms https://docs.flutter.dev/development/tools/sdk/release-notes/supported-platforms

    접속일자: 22-11-07 Platform Version macOS El Capitan (10.11) - Big Sur (11)* Windows Windows 11 (Aspirational Google-tested platform) Windows Windows 8 Windows Windows 7 Best-effort platforms - macOS, Windows * Flutter 3.3 is the last stable release with macOS 10.11 and 10.12 best-effort support. 32
  18. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop Unsupported platforms https://docs.flutter.dev/development/tools/sdk/release-notes/supported-platforms

    접속일자: 22-11-07 Platform Version Linux Any 32-bit platform macOS Yosemite (10.10) & below Windows Windows Vista & below Windows Any 32-bit platform 33
  19. 최신 Flutter Desktop 톺아보기 1. Flutter Desktop platform-specific https://docs.flutter.dev/resources/architectural-overview#platform-embedding 41

    • On iOS and macOS, Flutter is loaded into the embedder as a UIViewController or NSViewController, respectively. The platform embedder creates a FlutterEngine, which serves as a host to the Dart VM and your Flutter runtime, and a FlutterViewController, which attaches to the FlutterEngine to pass UIKit or Cocoa input events into Flutter and to display frames rendered by the FlutterEngine using Metal or OpenGL. • On Android, Flutter is, by default, loaded into the embedder as an Activity. The view is controlled by a FlutterView, which renders Flutter content either as a view or a texture, depending on the composition and z-ordering requirements of the Flutter content. • On Windows, Flutter is hosted in a traditional Win32 app, and content is rendered using ANGLE, a library that translates OpenGL API calls to the DirectX 11 equivalents.
  20. 최신 Flutter Desktop 톺아보기 44 2. Windows 2022-2Q 1 [devicelab][desktop]

    Add Linux and Windows machines#54295 2 Fix or suppress remaining Windows engine warnings#59199 3 ☔ Remove UWP support#102172 4 [windows] Exception: Bad UTF-8 encoding when running flutter doctor or building/running for Windows#102451
  21. 최신 Flutter Desktop 톺아보기 45 2. Windows 2022-3Q 1 ☂

    On Windows minimizing the app window will modify the contents of the frame#65061 2 [Windows] crash reports in KeyboardKeyEmbedderHandler::KeyboardHookImpl#108731 3 [Windows] Shut down VM when last engine is terminated#109191 4 [Windows] Support high-contrast a11y feature#109802 5 [Windows][a11y] Screen Reader not announcing the state of Switch#111525
  22. 최신 Flutter Desktop 톺아보기 46 2. Windows 2022-4Q 1 Support

    multiple windows for desktop shells#30701 2 Flutter crashes when loading very large files with Image.file widget on Windows#112881 3 Windows Accessibility issue and ReorderableListView crash#103808
  23. Visual Studio 2022 or Visual Studio Build Tools 2022 When

    installing Visual Studio or only the Build Tools, select the “Desktop development with C++” workload, including all of its default components, to install the necessary C++ toolchain and Windows SDK header files. 47 Additional Windows requirements
  24. 최신 Flutter Desktop 톺아보기 50 https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed 2. Windows Flutter Architecture

    - Windows On Windows, Flutter uses exactly the same Dart code, but takes advantage of native Windows APIs.
  25. 최신 Flutter Desktop 톺아보기 54 https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed 2. Windows Flutter Windows

    Support Packages There are already hundreds of packages that have been adapted to support Flutter apps built for Windows. Do not hesitate to use packages
  26. 최신 Flutter Desktop 톺아보기 56 2. Windows share_plus Windows Support

    2022-10-15 https://github.com/fluttercommunity/plus_plugins/pull/1158
  27. 최신 Flutter Desktop 톺아보기 57 2. Windows 배포하기 misx https://learn.microsoft.com/en-us/windows/msix/overview

    the new Windows application package format, provides a modern packaging format and installer. This format can either be used to ship applications to the Microsoft Store on Windows, or you can distribute app installers directly.
  28. 최신 Flutter Desktop 톺아보기 65 2. Windows macOS에서 윈도우즈 사용하기

    1. Virtual Box, UTM 등 원하는 가상화 도구를 설치해주세요 2. Windows 이미지를 다운로드 받아 실행해주세요. 3. Flutter 를 설치합니다. 환경: macbook pro(m1 pro)
  29. 최신 Flutter Desktop 톺아보기 66 2. Windows macOS에서 윈도우즈 사용하기

    - VS설치하기 • 2022 설치가 안되어 2019로 설치했습니다. • 빌드툴은 동일하기에 문제는 없습니다.! 2022-11-11 기준
  30. 최신 Flutter Desktop 톺아보기 67 2. Windows macOS에서 윈도우즈 사용하기

    Android Studio Desktop 만 빌드해서 사용하실거라면 굳이 설치하지 않아도 됩니다. 코딩할 IDE가 필요하면 설치해도 무관합니다. VSC사용해도 괜찮습니다.
  31. 최신 Flutter Desktop 톺아보기 69 2. Windows macOS에서 윈도우즈 사용하기

    1. flutter doctor를 통해 설치상태를 확인해줍니다.
  32. For macOS desktop development, you need the following in addition

    to the Flutter SDK: • Xcode • CocoaPods if you use plugins 74 Additional macOS requirements
  33. 최신 Flutter Desktop 톺아보기 75 2022-2Q 1 ☂ Add support

    for ARM macOS as a target#60113 done 2 Support --local-engine when for single CPU architecture AOT builds on macOS #100804 done 3 [macOS] Switching textfields with IME enabled results in duplicate input#92060 done 4 … 3. macOS https://github.com/orgs/flutter/projects/20/views/1?filterQuery=macos
  34. 최신 Flutter Desktop 톺아보기 76 2022-3Q 1 ☂ [macOS] Support

    building engine on Apple Silicon without Rosetta#103386 open 2 [macOS] Crash on accessibility text zoom on hover#102416 done 3 [macOS][desktop] keyboard Input doesn't work anymore when entering text during hot restart#89748 done 4 … 3. macOS https://github.com/orgs/flutter/projects/20/views/1?filterQuery=macos
  35. 최신 Flutter Desktop 톺아보기 77 2022-4Q 1 Support flavors for

    macOS#64088 open 2 TextField keyboard input is duplicated with MacOS FlutterViewController#105774 done 3 FlutterViewController needs a way to correctly start running before being shown on macOS#74735 done 4 … 3. macOS https://github.com/orgs/flutter/projects/20/views/1?filterQuery=macos
  36. In the Q4 2022 stable release, we expect to drop

    support for macOS versions 10.11 and 10.12. This means that apps built against stable Flutter SDKs after that point will no longer work on these versions, and the minimum macOS version supported by Flutter will increase to 10.13 High Sierra. Sunsetting macOS 10.11 and 10.12 https://medium.com/flutter/whats-new-in-flutter-3-3-893c7b9af1ff 접속일자: 22-11-09 78
  37. 최신 Flutter Desktop 톺아보기 79 3. macOS https://docs.google.com/document/d/1wHqr2cob78VfUKhOFEKjaUM_mnV4gL-mg3gSQCFhF7Y/edit Raise the

    minimum version of macOS from 10.13 to 10.14 for Flutter Desktop applications WHAT PROBLEM IS THIS SOLVING? This change addresses two problems: • The team currently experiences a significant maintenance burden due to having to support older macOS versions that only support OpenGL. • Shipping OpenGL support in the macOS engine increases binary size for macOS Flutter applications. Details on impacted hardware is provided in the User Impact section below.
  38. 최신 Flutter Desktop 톺아보기 80 3. macOS https://docs.google.com/document/d/1wHqr2cob78VfUKhOFEKjaUM_mnV4gL-mg3gSQCFhF7Y/edit BACKGROUND •

    Apple's elimination of OpenGL support for 2012 Mac hardware and later. • Low end-user usage of macOS 10.13 • Lack of test coverage of the macOS OpenGL backend • Maintenance effort in maintaining two separate rendering backends on macOS
  39. 최신 Flutter Desktop 톺아보기 82 3. macOS https://docs.google.com/document/d/1wHqr2cob78VfUKhOFEKjaUM_mnV4gL-mg3gSQCFhF7Y/edit Benefits •

    For features such as external texture support, PlatformViews and any other work affecting the embedder's rendering code, this work will only need to be implemented once. This also significantly reduces code complexity in the macOS rendering code. • Impeller is not fully supported on the macOS OpenGL backend. Effort to implement support could be better spent more productively elsewhere. • As all devicelab hardware supports Metal, the OpenGL backend currently receives no automated testing. Effort to support testing the OpenGL backend could be spent more productively elsewhere. • Flutter developers will only have to concern themselves with testing a single backend
  40. 최신 Flutter Desktop 톺아보기 83 3. macOS https://docs.google.com/document/d/1wHqr2cob78VfUKhOFEKjaUM_mnV4gL-mg3gSQCFhF7Y/edit User impact

    The full list of hardware models which will no longer be supported is: • 2009-2010 MacBook • 2010-2011 MacBook Pro • 2010-2011 MacBook Air • 2010-2011 Mac mini • 2009-2011 iMac • 2010 Mac Pro (if GPU has not been upgraded to metal-capable GPU)
  41. 최신 Flutter Desktop 톺아보기 84 3. macOS https://docs.google.com/document/d/1wHqr2cob78VfUKhOFEKjaUM_mnV4gL-mg3gSQCFhF7Y/edit Plan •

    November 2022: Announce that as of Flutter 3.7, Flutter Desktop apps deployed to macOS will require a minimum of macOS 10.14. • January 2023: Flutter 3.7 is released to stable, dropping support for macOS 10.13.
  42. • Clang • CMake • GTK development headers • Ninja

    build • pkg-config • liblzma-dev This dependency may be required 91 Additional Linux requirements
  43. 최신 Flutter Desktop 톺아보기 4. Linux Flutter in 2022: strategy

    and roadmap https://medium.com/flutter/flutter-in-2022-strategy-and-roadmap-8c5eaf7c4275 접속일자: 22-11-09 Some examples of this include the work that Sony is doing on embedded Linux; the investments that Toyota and other automotive companies are making on using Flutter in Automotive Grade Linux, and work from Samsung and others to port Flutter to Tizen. 92
  44. 최신 Flutter Desktop 톺아보기 105 Summary 1. 2022년 Flutter 3.0

    을 기점으로 모든 데스크톱 플랫폼 Stable이 되었습니다. a. Windows, macOS, Linux 2. Windows a. 요구사항 / 현재 프로젝트. b. 설정 방법과 실행방법 c. 배포방법 3. macOS a. 시스템 요구사항. b. Raise the minimum version of macOS from 10.13 to 10.14 4. Linux a. 설치 및 설정 방법